Topic
  • 2 replies
  • Latest Post - ‏2013-02-16T12:48:42Z by SystemAdmin
SystemAdmin
SystemAdmin
5842 Posts

Pinned topic while processing an inbound record skip an invalid field with error

‏2012-04-26T11:09:22Z |
I have a requirement to process a Workorder record coming from external system skipping the invalid fields in it which maximo is does not accept. e.g. if the actual start date, in the inbound xml, is not valid, then it should skip the actual start date field and process rest all fields. I think we might have to capture the invalid field in one variable and then skip it from processing. Not sure how to achieve. May be writing an inbound user exit class will work?? Currently, Maximo is rejecting the whole record from processing with an error message.
Updated on 2013-02-16T12:48:42Z at 2013-02-16T12:48:42Z by SystemAdmin
  • maxvil
    maxvil
    7 Posts

    Re: while processing an inbound record skip an invalid field with error

    ‏2012-05-04T14:40:39Z  
    An inbound user exit class is exactly what you need. Inside the logic of the class you can apply your validation rule for the actual start date and correct it (example removing it from the xml) the data will then be processed by standard MIF chain. I've applied this approach for an inbound xml in which the SITEID was sent by an external system in mixed case and I needed to correct it in uppercase before entering MIF, it's very basic but you can see the overall structure of what you need:

    package psdi.iface.migexits.amm;

    import java.rmi.RemoteException;
    import java.util.List;

    import org.jdom.Element;
    import org.jdom.Namespace;

    import psdi.iface.mic.StructureData;
    import psdi.iface.mic.StructureObject;
    import psdi.iface.migexits.UserExit;
    import psdi.util.MXException;
    public class UpdateWorkOrderUserExit extends UserExit {

    public StructureData setUserValueIn(StructureData erData) throws MXException, RemoteException {

    if(integrationLogger.isInfoEnabled()) {
    integrationLogger.info(erData);
    }
    erData.breakData();

    erData.moveToFirstObjectStruture();

    boolean structureIsPresent = true;

    while (structureIsPresent) {

    erData.setCurrentData("SITEID",erData.getCurrentData("SITEID").toUpperCase());
    structureIsPresent = erData.moveToNextObjectStructure();
    }

    return erData;
    }
    }

    Hope this helps
    Massimo V.
  • SystemAdmin
    SystemAdmin
    5842 Posts

    Re: while processing an inbound record skip an invalid field with error

    ‏2013-02-16T12:48:42Z  
    • maxvil
    • ‏2012-05-04T14:40:39Z
    An inbound user exit class is exactly what you need. Inside the logic of the class you can apply your validation rule for the actual start date and correct it (example removing it from the xml) the data will then be processed by standard MIF chain. I've applied this approach for an inbound xml in which the SITEID was sent by an external system in mixed case and I needed to correct it in uppercase before entering MIF, it's very basic but you can see the overall structure of what you need:

    package psdi.iface.migexits.amm;

    import java.rmi.RemoteException;
    import java.util.List;

    import org.jdom.Element;
    import org.jdom.Namespace;

    import psdi.iface.mic.StructureData;
    import psdi.iface.mic.StructureObject;
    import psdi.iface.migexits.UserExit;
    import psdi.util.MXException;
    public class UpdateWorkOrderUserExit extends UserExit {

    public StructureData setUserValueIn(StructureData erData) throws MXException, RemoteException {

    if(integrationLogger.isInfoEnabled()) {
    integrationLogger.info(erData);
    }
    erData.breakData();

    erData.moveToFirstObjectStruture();

    boolean structureIsPresent = true;

    while (structureIsPresent) {

    erData.setCurrentData("SITEID",erData.getCurrentData("SITEID").toUpperCase());
    structureIsPresent = erData.moveToNextObjectStructure();
    }

    return erData;
    }
    }

    Hope this helps
    Massimo V.
    Thank you so much for en-lighting on this. This seems feasible. My another question is: if I am using a webservice, and any exceptions (such as data validation failures BMX error) are currently returned to source system in a response messsage. Is it possible to capture the error message and the xml message inside maximo? Any help is much appreciated.