Capture MessageID in a Message Map

I am trying to use a custom function within a message map to return the GUID assigned to the message.  I am trying to use the getMessageID() method that SAP provides; however, my message map does not compile.  I get the following error message:
"cannot resolve symbol
symbol  : method getMessageID  ()
location: class com.sap.xi.tf._ItemRequest2UploadQueue_
textGUID = getMessageID(); "
I am specifying com.sap.aii.util.misc.api.GUID; on the imports line of my function.
Any suggestions???
Regards,
Dan Pettingill

Hallo Dan,
unfortunately there is a buck in the compiler of the J2EE engine in XI 3.0.
The error occurs, if the Message Mapping is referencing a program of an Imported Archive or there is a syntax error in the user defined function.
Because you mentioned that the error occurs for a very simple user defined function, I guess there is an other user defined function which uses a program from an Imported Archive.
As a workaround you could put the total code of the used archive program into the user defined function.
Nevertheless, you should open a OSS message under the component BC-JAS-COR.
Regards Franz

Similar Messages

  • How can we pick Message ID at runtime in message mapping?

    Hi Experts,
    I am working on a file to file Scenario.
    Lets say I have a Field called SEQ_NO at target.
    I want to populate it this with Message ID (MONI one) at runtime.
    Is it possible? If Yes, How can we do this?

    Hi,
    No It is not working fine.
    Inside TEST----
    > Parameter Tab< I had input MESSAGE_ID Against MessageId.
    After that I run It, Got the error as Below:
    17:48:17 Start of test
    Runtime exception during processing target field mapping /ns0:MT_BANK_CUST_DET/File_Out/Header/SEQNO. The message is: Exception:[java.lang.StringIndexOutOfBoundsException] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@6ec66ec6] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ns0:MT_BANK_CUST_DET/File_Out/Header/SEQNO. The message is: Exception:[java.lang.StringIndexOutOfBoundsException] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@6ec66ec6].
    It is possible to get MESSAGE ID which we get in MONI for every message pass throught XI in message mapping itself?
    Regards
    Pradeep

  • How to pass GUID in message mapping

    Hi ALL
    I would like to populate one of the target fields with SAP PI GUID or Message ID.
    Can you please let me know, how to get the GUID in my message mapping and map it to the target field.
    Thank you,
    Ritu

    Hi Ritu ,
    its simple you can pick the messageID from the streamtransformation constant and map it to ur target field .
    use this UDF it does not taes any input and its output can be mapped to target field where you want to populate the messageid.
    java.util.Map param = container.getTransformationParameters();
    String MSGID = (String) param.get (StreamTransformationConstants.MESSAGE_ID);
    return MSGID
    Regards,
    Saurabh

  • Parameterized Message Mapping (RFCLookup) test in ESB message behaviour

    Hi Gurus,
    I am using parameterized message mapping using RFCLookup function
    In the TEST tab of the mapping, I've provided my test xml instance message and inputted the Message Mapping Parameter (MMP) value with the RFC Receiver Communication Channel I am using,
    looking at the Trace level in the editor, the source field value was put to the RFC as the import parameter, but the mapping fails with error that the RFC returned my defined exception (no POnumber available for MaterialNumber) --> which is not the expected result because in the ERP backend there is an existing PO for the material.    I tested the RFC in the backend ERP itself and it is performing ok, with a PO number returned for the material (testing in SE37)
    I checked on the Comm Channel and my message is being passed to the RFC adapter, but up to this point only:
    RfcAdapter received a synchronous message. Trying to send sRFC for Z_RFC_NAME.
    RfcAdapter received a synchronous message. Trying to send sRFC for PIREPUSER.
    I have created the Binding for the Operation Mapping.
    Would any of you have an idea on what is missing or what is wrong?
    P.S.   my RFC has a defined exception in it, but currently I am not using it in the RFCLookup  mapping (unchecked "Use Exception" checkbox)

    Hi All,
    Solved the issue by passing the complete length of input parameter as defined in my RFC, e.g. input param in RFC is TYPE to a 12 char field, and the input parameter value being passed by the IDoc is only 6 chars.
    In this case i used formatNumber function to put leading zeroes to complete the input parameter length
    sourceField -->formatNumber --> RFCLookup --> targetField
    Weird behaviour though is that even if my message is successfully received in the receiving system, the RFC CommChannel that my RFCLookup is using is still only showing this:
    2010-12-01 23:14:32 Information RfcAdapter received a synchronous message. Trying to send sRFC for Z_FM_NAME.
    2010-12-01 23:14:32 Information RfcAdapter received a synchronous message. Trying to send sRFC for J2EE_GUEST.
    Why isn't the whole request response of the RFC captured by the RFC adapter?  (e.g. MDT has status DLVG, DLV...)

  • How-to in Message Mapping?

    Hi,
    XI is getting data from SAP in IDOC's and sending this data to Database.
    Now i want to capture(in XI) how many segments(records) XI has sent to database and map it to a field in database.And i want to send XI creation date&time to DB.
    We not using BPM. Have to do it in message-mapping.
    Any suggestion/help would be helpful
    Thank you
    Navin
    I think I have to write user-defined function (just like we write to get Message-ID), if anybody can tell me how to write user-defined function for the above requirement it would be great.
    Message was edited by: navin kumar

    Hi,
    you can do it with abap mapping for example
    add an abap mapping as a second mapping in your interface mapping and inside this abap mapping
    check how many records does the message contain
    and put it in a normal table (from abap mapping)
    then the next message will just add the number
    and so on...
    later on you can get the number from the table using the abap mapping again
    Regards,
    michal

  • NullPointerException encountered when creating Message Mapping

    Hi experts,
    I created 3 messages using a wsdl external definition
    - GetPatientDemographicOutput
    - GetPatientDemographicInput
    - SOAPFaultMessage
    With this, I wanted to to create a message mapping object, to map GetPatientDemographicInput to a pre-defined message format.
    However, when I try to select "GetPatientDemographicInput" as "Source Message" in the "Message Mapping" window, I encounter a NullPointerException.
    The wsdl file I used is:
    === Start wsdl file definition ====================================
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Administrator (Fujitsu) -->
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:y="http://new.webservice.namespace" xmlns:ns="a" xmlns:ns1="b" targetNamespace="http://new.webservice.namespace">
         <types>
              <xs:schema xmlns:ns1="b">
                   <xs:element name="GetPatientDemographicReq">
                        <xs:annotation>
                             <xs:documentation>Request Message</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="Header">
                                       <xs:complexType>
                                            <xs:all>
                                                 <xs:element name="Encoding" type="xs:string"/>
                                                 <xs:element name="SendingApp" type="xs:string"/>
                                                 <xs:element name="SendingFac" type="xs:string"/>
                                                 <xs:element name="ReceivingApp" type="xs:string"/>
                                                 <xs:element name="ReceivingFac" type="xs:string"/>
                                                 <xs:element name="TimeStamp" type="xs:dateTime"/>
                                                 <xs:element name="MessageType" type="xs:string" minOccurs="0"/>
                                                 <xs:element name="MessageId" type="xs:string"/>
                                                 <xs:element name="MessageDesc" type="xs:string" minOccurs="0"/>
                                            </xs:all>
                                       </xs:complexType>
                                  </xs:element>
                                  <xs:element name="PatientID" type="xs:string" minOccurs="0"/>
                                  <xs:element name="InstitutionID" type="xs:string"/>
                                  <xs:element name="SAPPatientID" type="xs:string" minOccurs="0"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:element name="GetPatientDemographicRep">
                        <xs:annotation>
                             <xs:documentation>Reply Message</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:all>
                                  <xs:element name="Header">
                                       <xs:complexType>
                                            <xs:all>
                                                 <xs:element name="Encoding" type="xs:string"/>
                                                 <xs:element name="SendingApp" type="xs:string"/>
                                                 <xs:element name="SendingFac" type="xs:string"/>
                                                 <xs:element name="ReceivingApp" type="xs:string"/>
                                                 <xs:element name="ReceivingFac" type="xs:string"/>
                                                 <xs:element name="TimeStamp" type="xs:dateTime"/>
                                                 <xs:element name="MessageType" type="xs:string" minOccurs="0"/>
                                                 <xs:element name="MessageId" type="xs:string"/>
                                                 <xs:element name="MessageDesc" type="xs:string" minOccurs="0"/>
                                            </xs:all>
                                       </xs:complexType>
                                  </xs:element>
                                  <xs:element name="PatientID" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="20"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="SAPPatientID" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="10"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="LastName" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="50"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="MiddleName" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="50"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="FirstName" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="50"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="DOB" type="xs:date" minOccurs="0"/>
                                  <xs:element name="Gender" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="10"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="Race" type="xs:string" minOccurs="0"/>
                                  <xs:element name="Nationality" type="xs:string" minOccurs="0"/>
                                  <xs:element name="Language" type="xs:string" minOccurs="0"/>
                                  <xs:element name="HomeNumber" type="xs:string" minOccurs="0"/>
                                  <xs:element name="MobileNumber" type="xs:string" minOccurs="0"/>
                                  <xs:element name="BusinessNumber" type="xs:string" minOccurs="0"/>
                                  <xs:element name="PaymentType" type="xs:string" minOccurs="0"/>
                                  <xs:element name="CancelInd" type="xs:string" minOccurs="0"/>
                                  <xs:element name="PatientRef" type="xs:string" minOccurs="0"/>
                                  <xs:element name="VIPInd" type="xs:string" minOccurs="0"/>
                             </xs:all>
                        </xs:complexType>
                   </xs:element>
                   <xs:element name="SOAPFaultMessage">
                        <xs:annotation>
                             <xs:documentation>Fault Message</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="FaultMessage" type="xs:string"/>
                                  <xs:element name="FaultCode" type="xs:string"/>
                                  <xs:element name="FaultDesc" type="xs:string"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
              </xs:schema>
         </types>
         <message name="messageName"/>
         <message name="GetPatientDemographicInput">
              <part name="GetPatientDemographicReq" element="ns1:GetPatientDemographicReq"/>
         </message>
         <message name="GetPatientDemographicOutput">
              <part name="GetPatientDemographicRep" element="ns1:GetPatientDemographicRep"/>
         </message>
         <message name="SOAPFaultMessage">
              <part name="SOAPFaultMessage" element="ns1:SOAPFaultMessage"/>
         </message>
         <portType name="SOAPPort">
              <operation name="GetPatientDemographic">
                   <input message="y:GetPatientDemographicInput"/>
                   <output message="y:GetPatientDemographicOutput"/>
                   <fault name="FaultName" message="y:SOAPFaultMessage"/>
              </operation>
         </portType>
         <binding name="PatientDemoQuerySOAP" type="y:SOAPPort">
              <soap:binding style="rpc" transport="http://schemas.xmlsoap.org"/>
              <operation name="GetPatientDemographic">
                   <soap:operation/>
                   <input>
                        <soap:body use="literal"/>
                   </input>
                   <output>
                        <soap:body use="literal"/>
                   </output>
                   <fault name="FaultName"/>
              </operation>
         </binding>
         <service name="RetrievePatientDemographics">
              <port name="QueryPort" binding="y:PatientDemoQuerySOAP">
                   <soap:address location="http://www.xmlspy.com"/>
              </port>
         </service>
    </definitions>
    === End wsdl file definition ====================================
    The exception stack trace I got is:
    === Start stack trace ====================================
    #19 11:55:30 [AWT-EventQueue-0] ERROR com.sap.aii.utilxi.swing.toolkit.ExceptionDialog: Throwable
    Thrown:
    MESSAGE ID: com.sap.aii.utilxi.misc.api.BaseException
    com.sap.aii.utilxi.misc.api.BaseException: java.lang.NullPointerException
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdSchemaTextable.setSchema(XsdSchemaTextable.java:86)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.setSchema(XsdContainerTextView.java:46)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.<init>(XsdContainerTextView.java:36)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.makeFromTreeDoc(MultiViewEditor.java:216)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.<init>(MultiViewEditor.java:64)
         at com.sap.aii.mappingtool.mf.TransformationPanel.createSourceView(TransformationPanel.java:248)
         at com.sap.aii.mappingtool.mf.TransformationPanel.<init>(TransformationPanel.java:99)
         at com.sap.aii.mappingtool.mf.MappingTool.<init>(MappingTool.java:32)
         at com.sap.aii.mappingtool.api.MappingToolFactory.getInstance(MappingToolFactory.java:96)
         at com.sap.aii.mappingtool.fwutil.util.ToolUtil.restartTool(ToolUtil.java:315)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiTransformationView.loadIfrSchema(XiTransformationView.java:274)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiMappingView.searchForRepositoryObject(XiMappingView.java:245)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.RepObjSearchHelpAction.actionPerformed(RepObjSearchHelpAction.java:90)
         at com.sap.aii.utilxi.swing.framework.mtaction.MTActionGroup.actionPerformed(MTActionGroup.java:44)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.performDefaultAction(IBToolButton.java:326)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.fire(IBToolButton.java:220)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.access$200(IBToolButton.java:49)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton$4.actionPerformed(IBToolButton.java:340)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    Root cause:
    java.lang.NullPointerException: null
         at com.sap.aii.utilxi.xsd.api.XsdHandler.saveSchemaToDocument(XsdHandler.java:61)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdSchemaTextable.setSchema(XsdSchemaTextable.java:82)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.setSchema(XsdContainerTextView.java:46)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.<init>(XsdContainerTextView.java:36)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.makeFromTreeDoc(MultiViewEditor.java:216)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.<init>(MultiViewEditor.java:64)
         at com.sap.aii.mappingtool.mf.TransformationPanel.createSourceView(TransformationPanel.java:248)
         at com.sap.aii.mappingtool.mf.TransformationPanel.<init>(TransformationPanel.java:99)
         at com.sap.aii.mappingtool.mf.MappingTool.<init>(MappingTool.java:32)
         at com.sap.aii.mappingtool.api.MappingToolFactory.getInstance(MappingToolFactory.java:96)
         at com.sap.aii.mappingtool.fwutil.util.ToolUtil.restartTool(ToolUtil.java:315)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiTransformationView.loadIfrSchema(XiTransformationView.java:274)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiMappingView.searchForRepositoryObject(XiMappingView.java:245)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.RepObjSearchHelpAction.actionPerformed(RepObjSearchHelpAction.java:90)
         at com.sap.aii.utilxi.swing.framework.mtaction.MTActionGroup.actionPerformed(MTActionGroup.java:44)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.performDefaultAction(IBToolButton.java:326)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.fire(IBToolButton.java:220)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.access$200(IBToolButton.java:49)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton$4.actionPerformed(IBToolButton.java:340)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    #18 11:55:30 [AWT-EventQueue-0] FINE AutoLog.created.com.sap.aii.utilxi.misc.api.BaseException: com.sap.aii.utilxi.misc.api.BaseException: java.lang.NullPointerException
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdSchemaTextable.setSchema(XsdSchemaTextable.java:86)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.setSchema(XsdContainerTextView.java:46)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.<init>(XsdContainerTextView.java:36)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.makeFromTreeDoc(MultiViewEditor.java:216)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.<init>(MultiViewEditor.java:64)
         at com.sap.aii.mappingtool.mf.TransformationPanel.createSourceView(TransformationPanel.java:248)
         at com.sap.aii.mappingtool.mf.TransformationPanel.<init>(TransformationPanel.java:99)
         at com.sap.aii.mappingtool.mf.MappingTool.<init>(MappingTool.java:32)
         at com.sap.aii.mappingtool.api.MappingToolFactory.getInstance(MappingToolFactory.java:96)
         at com.sap.aii.mappingtool.fwutil.util.ToolUtil.restartTool(ToolUtil.java:315)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiTransformationView.loadIfrSchema(XiTransformationView.java:274)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiMappingView.searchForRepositoryObject(XiMappingView.java:245)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.RepObjSearchHelpAction.actionPerformed(RepObjSearchHelpAction.java:90)
         at com.sap.aii.utilxi.swing.framework.mtaction.MTActionGroup.actionPerformed(MTActionGroup.java:44)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.performDefaultAction(IBToolButton.java:326)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.fire(IBToolButton.java:220)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.access$200(IBToolButton.java:49)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton$4.actionPerformed(IBToolButton.java:340)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    #17 11:55:30 [AWT-EventQueue-0] DEBUG AutoLog.created.com.sap.aii.utilxi.misc.api.BaseException: java.lang.NullPointerException
    #16 11:55:30 [AWT-EventQueue-0] FINE AutoLog.created.java.lang.NullPointerException: java.lang.NullPointerException
         at com.sap.aii.utilxi.xsd.api.XsdHandler.saveSchemaToDocument(XsdHandler.java:61)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdSchemaTextable.setSchema(XsdSchemaTextable.java:82)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.setSchema(XsdContainerTextView.java:46)
         at com.sap.aii.ib.gui.xmleditor.docview.views.XsdContainerTextView.<init>(XsdContainerTextView.java:36)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.makeFromTreeDoc(MultiViewEditor.java:216)
         at com.sap.aii.ib.gui.xmleditor.docview.MultiViewEditor.<init>(MultiViewEditor.java:64)
         at com.sap.aii.mappingtool.mf.TransformationPanel.createSourceView(TransformationPanel.java:248)
         at com.sap.aii.mappingtool.mf.TransformationPanel.<init>(TransformationPanel.java:99)
         at com.sap.aii.mappingtool.mf.MappingTool.<init>(MappingTool.java:32)
         at com.sap.aii.mappingtool.api.MappingToolFactory.getInstance(MappingToolFactory.java:96)
         at com.sap.aii.mappingtool.fwutil.util.ToolUtil.restartTool(ToolUtil.java:315)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiTransformationView.loadIfrSchema(XiTransformationView.java:274)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.XiMappingView.searchForRepositoryObject(XiMappingView.java:245)
         at com.sap.aii.ibrep.gui.mapping.xitrafo.RepObjSearchHelpAction.actionPerformed(RepObjSearchHelpAction.java:90)
         at com.sap.aii.utilxi.swing.framework.mtaction.MTActionGroup.actionPerformed(MTActionGroup.java:44)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.performDefaultAction(IBToolButton.java:326)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.fire(IBToolButton.java:220)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton.access$200(IBToolButton.java:49)
         at com.sap.aii.utilxi.swing.framework.mtaction.IBToolButton$4.actionPerformed(IBToolButton.java:340)
         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
         at java.awt.Component.processMouseEvent(Unknown Source)
         at javax.swing.JComponent.processMouseEvent(Unknown Source)
         at java.awt.Component.processEvent(Unknown Source)
         at java.awt.Container.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    #15 11:55:30 [AWT-EventQueue-0] DEBUG AutoLog.created.java.lang.NullPointerException: null
    === End stack trace ====================================
    Please help.
    I am running PI7.0.
    Thanks.
    Ron

    I've managed to get around this problem.
    The problem is with the namespace definition.
    Apparently, a more correct definition looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:y="http://new.webservice.namespace"
    xmlns:ns="http://new.webservice.namespace"
    targetNamespace="http://new.webservice.namespace"
    >
         <types>
              <xs:schema <b>targetNamespace="http://new.webservice.namespace" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://new.webservice.namespace" xmlns:y="http://new.webservice.namespace" xmlns="http://schemas.xmlsoap.org/wsdl/"</b>>
                   <xs:element name="GetPatientDemographicReq">
                        <xs:annotation>
                             <xs:documentation>Request Message</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="Header">
                                       <xs:complexType>
                                            <xs:all>
                                                 <xs:element name="Encoding" type="xs:string"/>
                                                 <xs:element name="SendingApp" type="xs:string"/>
                                                 <xs:element name="SendingFac" type="xs:string"/>
                                                 <xs:element name="ReceivingApp" type="xs:string"/>
                                                 <xs:element name="ReceivingFac" type="xs:string"/>
                                                 <xs:element name="TimeStamp" type="xs:dateTime"/>
                                                 <xs:element name="MessageType" type="xs:string" minOccurs="0"/>
                                                 <xs:element name="MessageId" type="xs:string"/>
                                                 <xs:element name="MessageDesc" type="xs:string" minOccurs="0"/>
                                            </xs:all>
                                       </xs:complexType>
                                  </xs:element>
                                  <xs:element name="PatientID" type="xs:string" minOccurs="0"/>
                                  <xs:element name="InstitutionID" type="xs:string"/>
                                  <xs:element name="SAPPatientID" type="xs:string" minOccurs="0"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:element name="GetPatientDemographicRep">
                        <xs:annotation>
                             <xs:documentation>Reply Message</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:all>
                                  <xs:element name="Header">
                                       <xs:complexType>
                                            <xs:all>
                                                 <xs:element name="Encoding" type="xs:string"/>
                                                 <xs:element name="SendingApp" type="xs:string"/>
                                                 <xs:element name="SendingFac" type="xs:string"/>
                                                 <xs:element name="ReceivingApp" type="xs:string"/>
                                                 <xs:element name="ReceivingFac" type="xs:string"/>
                                                 <xs:element name="TimeStamp" type="xs:dateTime"/>
                                                 <xs:element name="MessageType" type="xs:string" minOccurs="0"/>
                                                 <xs:element name="MessageId" type="xs:string"/>
                                                 <xs:element name="MessageDesc" type="xs:string" minOccurs="0"/>
                                            </xs:all>
                                       </xs:complexType>
                                  </xs:element>
                                  <xs:element name="PatientID" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="20"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="SAPPatientID" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="10"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="LastName" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="50"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="MiddleName" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="50"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="FirstName" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="50"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="DOB" type="xs:date" minOccurs="0"/>
                                  <xs:element name="Gender" minOccurs="0">
                                       <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                 <xs:length value="10"/>
                                            </xs:restriction>
                                       </xs:simpleType>
                                  </xs:element>
                                  <xs:element name="Race" type="xs:string" minOccurs="0"/>
                                  <xs:element name="Nationality" type="xs:string" minOccurs="0"/>
                                  <xs:element name="Language" type="xs:string" minOccurs="0"/>
                                  <xs:element name="HomeNumber" type="xs:string" minOccurs="0"/>
                                  <xs:element name="MobileNumber" type="xs:string" minOccurs="0"/>
                                  <xs:element name="BusinessNumber" type="xs:string" minOccurs="0"/>
                                  <xs:element name="PaymentType" type="xs:string" minOccurs="0"/>
                                  <xs:element name="CancelInd" type="xs:string" minOccurs="0"/>
                                  <xs:element name="PatientRef" type="xs:string" minOccurs="0"/>
                                  <xs:element name="VIPInd" type="xs:string" minOccurs="0"/>
                             </xs:all>
                        </xs:complexType>
                   </xs:element>
                   <xs:element name="SOAPFaultMessage">
                        <xs:annotation>
                             <xs:documentation>Fault Message</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element name="FaultMessage" type="xs:string"/>
                                  <xs:element name="FaultCode" type="xs:string"/>
                                  <xs:element name="FaultDesc" type="xs:string"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
              </xs:schema>
         </types>
         <message name="messageName"/>
         <message name="GetPatientDemographicInput">
              <part name="GetPatientDemographicReq" element="ns:GetPatientDemographicReq"/>
         </message>
         <message name="GetPatientDemographicOutput">
              <part name="GetPatientDemographicRep" element="ns:GetPatientDemographicRep"/>
         </message>
         <message name="SOAPFaultMessage">
              <part name="SOAPFaultMessage" element="ns:SOAPFaultMessage"/>
         </message>
         <portType name="SOAPPort">
              <operation name="GetPatientDemographic">
                   <input message="y:GetPatientDemographicInput"/>
                   <output message="y:GetPatientDemographicOutput"/>
                   <fault name="FaultName" message="y:SOAPFaultMessage"/>
              </operation>
         </portType>
         <binding name="PatientDemoQuerySOAP" type="y:SOAPPort">
              <soap:binding style="rpc" transport="http://schemas.xmlsoap.org"/>
              <operation name="GetPatientDemographic">
                   <soap:operation/>
                   <input>
                        <soap:body use="literal"/>
                   </input>
                   <output>
                        <soap:body use="literal"/>
                   </output>
                   <fault name="FaultName"/>
              </operation>
         </binding>
         <service name="RetrievePatientDemographics">
              <port name="QueryPort" binding="y:PatientDemoQuerySOAP">
                   <soap:address location="http://www.xmlspy.com"/>
              </port>
         </service>
    </definitions>
    Thanks!

  • Error while activating any message mapping in IR: very strange

    hi forum i m getting an error in IR while activating any messageMapping.
    the error is too long to be posted....i m posting a few lines of that:
    •     Internal error while checking object Message Mapping MM_sdptestFileToFile | http://sdzpoc.com.test/sdptest (ZPOC_TEST, 1.0 of zpoctest); see details (CHECK_EXCEPTION)
    •     Internal error while checking object Message Mapping MM_sdptestFileToFile | http://sdzpoc.com.test/sdptest (ZPOC_TEST, 1.0 of zpoctest); see details (CHECK_EXCEPTION)
    •     /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapdddd0cb0100311dca6090012799eddc6/source/com/sap/xi/tf/_MM_sdptestFileToFile_.java (No such file or directory (errno:2))
    •     /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapdddd0cb0100311dca6090012799eddc6/source/com/sap/xi/tf/_MM_sdptestFileToFile_.java (No such file or directory (errno:2))

    Sudeep,
    Let we try this way. I'm sure you might have some existing mapping objects in IR.
    Try to change that object(Description give some name) and activate again the object.
    Reply your results whether you are getting the same error.
    One sec before changing the object just test the mapping and change the object.
    Best regards,
    raj.

  • Error while activating message mapping

    Hi,
    We are trying to activate message mappings and getting error as CHECK_EXCEPTION and in error details its showing that usr/sap/server.........................../classpath_resolver/Map.......................no such file or directory.........
    What can be the issue?We can activate all other objects(DT,MT,IM,etc)
    Best Regards,
    Harleen Kaur Chadha

    Hi
    Check this thread you can find the reason for this error CHECK_EXCEPTION solved here
    Activating Object in IR - Getting Null Pointer Exception
    Re: mapping test error
    Internal error while checking object Message Mapping...
    Problem Activating Mappings in the IR
    Message Mapping activation Error
    Regards
    Abhishek

  • Error while opening Message Mapping

    Hi All,
    I have one MM in ESR, IDoc to EDI, it has been developed before, and the interface is working successfully.But when I open this MM in ESR, it given a STOP error with desc as 'For input string: ""'.
    and then there is nothing displayed on Screen under Definition,Test and Functions tab of MM.The Signature tab content is visible properly.
    I am working on PI 7.1.
    Is this issue is because of version comapatibilty or missing object. Please provide your inputs to resolve this issue,
    Thanks,
    Ruchi

    Hi All,
    I have checked with my basis team, but they suggested that the patches can not be installed as this problem is happening with single message mapping.
    When I open this MM, it gives the same STOP error :For input string: "". and when I click on Message Mapping -> Check button, it prompts a message 'Parameter #ParamName# has the invalid value null'.
    Please help me to resolve this.As the mapping itself is not getting loaded, so not getting how to set this parameter value(if it is used in MM).

  • PI 7.11: IDoc Message mapping

    Hi there,
    I'm currently working on a graphical message mapping using IDoc HRMD_A06 as source structure (HR master data transferred via PFAL).
    In my result structure I have to fill a field CostCenter with the following logic:
    If field KOSTL (cost center) is filled in node E1P0315, map this field to CostCenter in result structure, otherwise take KOSTL of node E1P0001.
    The end date (ENDDA) has to be '99991231' in each case.
    This is how the result structure looks like:
    <e>                       [1...1]
      <CostCenter>            [1...1]
    </e>
    This is the simplified source structure:
    <E1PLOGI SEGMENT="1">
      <E1PITYP SEGMENT="1">                        [0...n]
         <E1P0001 SEGMENT="1">                     [0...n]
           <INFTY>0001</INFTY>                     [0...1]
           <ENDDA>99991231</ENDDA>                 [0...1]
           <KOSTL>0000012345</KOSTL>               [0...1]
        </E1P0001>
      </E1PITYP>
      <E1PITYP SEGMENT="1">                        [0...n]
        <E1P0315 SEGMENT="1">                      [0...n]
          <INFTY>0315</INFTY>                      [0...1]
          <ENDDA>99991231</ENDDA>                  [0...1]
          <KOSTL>0000024001</KOSTL>                [0...1]
        </E1P0315>
      </E1PITYP>
    </E1PLOGI>
    How can I do the check if field KOSTL of node E1P0315 is null?
    I've tried an existence check for the whole node (E1P0315->exists), but then it fails, because all E1PITYP nodes are processed.
    I hope my problem is clear to you.
    Would it be better to use another mapping type?
    As I'm an ABAP developer, I would of course prefer some lines of code to this graphical drag&drop thing.
    Thanks in advance!

    Cheers, guys!
    I did it now like that:
    http://www.abload.de/image.php?img=mappingflknz.jpg
    Click on the image to enlarge it!
    The logic is as following (ABAP Pseudo-code ):
    IF 0315_KOSTL and 0315_ENDDA are populated.
      IF 0315_ENDDA equals '99991231'.
        map 0315_KOSTL to Cost_Center.
      ENDIF.
    ELSE.
      IF 0001_KOSTL and 0001_ENDDA are populated.
        IF 0001_ENDDA equals '99991231'.
          map 0001_KOSTL to Cost_Center.
        ENDIF.
      ENDIF.
    ENDIF.
    Is that a good way to do that mapping?
    Do I also have to use the removeContexts function or is it ok like that?
    Could I also do that with an ABAP mapping program?
    Thanks in advance!

  • Message Mapping activation error-Source code has syntax errors in UDF

    Hi all,
    I wrote a small UDF for sum of 2 numbers:
    import
    udf.*
    public String getsum(String a, String b, Container container) throws StreamTransformationException{
    int c = Integer.parseInt(a);
    int d = Integer.parseInt(b);
    int e = packageDemo.getSum(c,d);
    return e+"";}
    In imported archives, i imported pack.jar
    In D:\udf , I have packageDemo.java, packageDemo.class, aii_map_api.jar, pack.jar(has the other 3)
    packageDemo.java :-
    package udf;
    public class packageDemo{   
        public static int getSum(int a,int b)
            int c= a+b;
            return c;
    Did i miss anything?? Icant activate message mapping for 2 errors:-
    1.package udf does not exist
    2.Function getsum, Line 3:
    cannot find symbol symbol : variable packageDemo location: class com.sap.xi.tf._xml_mm_int e = packageDemo.getSum(c,d); ^Note: /usr/sap/P7R/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd4214d3099dc11dd9470001d090e4bbe/source/com/sap/xi/tf/_xml_mm_.java uses or overrides a deprecated API.Note: Recompile with -Xlint:deprecation for details.Note: /usr/sap/P7R/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd4214d3099dc11dd9470001d090e4bbe/source/com/sap/xi/tf/_xml_mm_.java uses unchecked or unsafe operations.Note: Recompile with -Xlint:unchecked for details.2 errors
    Edited by: NagaDurga Nannapaneni on Oct 16, 2008 1:07 PM

    Hi ,
    Think the error is coming because the content in imported archive is not being taken into message mapping at all...so package, class, method ..nothing is identified.
    Can anyone suggest the solution..
    Thanks,
    Durga

  • How do I resolve error message "mapi was unable to load aplzod.dll"? Outlook2010 on Win7

    Attempts to open Outlook calendar files (apparently located) on iCloud result in the error message "MAPI was unable to load the information service C:\PROGRA~2\COMMON~1\Apple\Internet Services\APLZOD.dll". Be sure the service is correctly installed and configured."
    I am running Outlook 2010 on Windows 7. I have uninstalled and reinstalled iTunes with no apparent effect. Is this a problem with iTunes or Outlook, how do I resolve it?

    That's part of my problem - I was getting the error message when I tried to click on iCloud in the Calendar portion of Outlook 2010. I don't know where it was generated (iCloud, iTunes, or as an add-in to Outlook).
    After my original post I tried restoring my computer to a date when I knew this worked, the restoration worked, and I can access my calendar. So that problem resolved itself.
    I do have another question, but I'll post it separately. Thanks for your response.

  • How to use the variables used in the message mapping

    Hi ,
    In the message mapping we can declare variables in the JAVA section , these variables could be used across the mapping .
    I have tried using it but I am unable to retrieve the values assigned to the variables in one UDF into the another UDF .
    Please guide me how to use the variables declared in the JAVA section in the message mapping .
    Thanks
    Anita Yadav

    Anita,
    I have worked on the Global variables and i found no issues. Make sure that the variable is declared in the Declaration Section and then initlaized in the Initialization section.
    If you declare a variable in the Declaration Section ,
    int i;
    then in any udf you can use if directly. No need to re declare  the variable in the UDF. If you do this, then it becomes a local variable.
    Regards,
    Bhavesh

  • To get exception value in Message Mapping

    Hi folks,
    I would like catch bpm step exception in one message mapping, for example:
    I have create on ccBPM using one block, in block i have createad "ex" exception variable and set ex in all step (send and transformation), i have created one exception branch in block using "ex" exception.
    How can i get "ex" value and pass for one message mapping ?
    In MM how can i get text values from excpetion ocurred in ccBPM ?
    Im am trying using Global Variables but not found any parameter of exceptions.
    Can anybody help me, please?

    hi,
    >>In MM how can i get text values from excpetion ocurred in ccBPM ?
    this is not possible
    Regards,
    Michal Krawczyk

  • Message Mapping error in UDF

    I am receiving errors when trying to activate my MM.  I believe the issues are in one of two UDF's.  These UDF's do work in another MM without error.  Below are the error's and UDF's.
    ERRORS:
    Activation of the change list canceled Check result for Message Mapping MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE | http://wawa.com/xi/erp/pos:  Starting compilation  Source code has syntax error:  /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map5420e070cabe11dcab4b00306ef38da9/source/com/sap/xi/tf/_MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_.java:3291: cannot resolve symbol symbol : variable container location: class com.sap.xi.tf._MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_ map = container.getTransformationParameters(); ^ /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map5420e070cabe11dcab4b00306ef38da9/source/com/sap/xi/tf/_MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_.java:3293: cannot return a value from method whose result type is void return constant; ^ 2 errors
    UDF's:
    public String getSender(Container container){
    String constant;
    java.util.Map map;
    // get constant map
    map = container.getTransformationParameters();
    constant = (String) map.get (StreamTransformationConstants.SENDER_SERVICE);
    return constant;
    IMPORTS:  com.sap.xi.mapping.parse.dom.;javax.xml.parsers.;java.io.;com.sap.aii.mapping.lookup.;org.w3c.dom.*;
    public String getSeqNum(String fileType,String objNum,String Sender,Container container){
    String request = "<ns0:ZRFC_NUMBER_GET_NEXT xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\"><NR_RANGE_NR>" + fileType + "</NR_RANGE_NR><OBJECT>" + objNum + "</OBJECT><QUANTITY/></ns0:ZRFC_NUMBER_GET_NEXT>";
    InputStream isRequest = new ByteArrayInputStream(request.getBytes());
    SystemAccessor accessor = null;
    String num  = null;
    try{
         // 1. Determine a channel.
         Channel channel = LookupService.getChannel(Sender, "R_RFC_ERP");
         // 2. Get a system accessor for the channel.
         accessor = LookupService.getSystemAccessor(channel);
         // 3. Create a payload according to the data type which the adapter expects.
         //    Use service.getBinaryPayload() for binary payload,
         //    and service.getTextPayload() for text payloads.
         Payload payload = LookupService.getXmlPayload(isRequest);
         // 4. Execute lookup.
         Payload response = accessor.call(payload);
         //Parse response
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         DocumentBuilder builder = factory.newDocumentBuilder();
         InputStream resStream = response.getContent();
         Document doc = builder.parse(resStream);
         Element sequence = doc.getDocumentElement();
         NodeList number = sequence.getElementsByTagName("NUMBER");
         //Extract Number
         num = DOMUtil.getSimpleElementText((Element) number.item(0));
    } catch (Exception e) {
         return e.getMessage();
    } finally {
         try {
              if (accessor != null) accessor.close();
         } catch (Exception e) {
              return e.getMessage();
    GlobalContainer gc = container.getGlobalContainer();
    gc.setParameter("Num", num);
    return num;
    Any help is appreciated.
    Regards,
    Darrell

    Fauver,
    Just to narrow down the problem first remove the first udf and only use the 2nd user defined function. Also in the 2nd udf you have to change this line:
    try{
    // 1. Determine a channel.
    Channel channel = LookupService.getChannel(Sender, "R_RFC_ERP");
    In the above line instead of Sender you use the business service or business system where R_RFC_ERP RFC communication channel is created in Integration Directory. So you are hardcoding it first.
    Once you have done this changes do save and test it once again. If this works then you can change back to original and your first udf needs to be checked.
    Regards,
    ---Satish

Maybe you are looking for