XI map Message ID from Proxy

Hello,
I need to map the Message ID from a Proxy to my outbound documents.  I have one Proxy from R/3 that branches in XI to send out two documents.  I want to map the Proxy's message id in both documents.
I have tried the UDF method mentioned in these forums using StreamTransformationConstant(MESSAGE_ID) but this returns the message id of each outgoing document, I need the message id from the original message.
Any ideas?
Thanks,
Matt

Hi
  That deals with DB look-up, but what you need is RFC look-up
you may need to create a java code, which does the work, compile & have them in your imported archives.
then add it to import section of your UDF & call its method to get the value.
you can have look at this for example
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/user-defined%252bmapping%252bfunction%252bfor%252brfc%252blookup
you can try to use RFC_READ_TABLE FM for your requirement
other pointers are here
https://www.sdn.sap.com/irj/scn/wiki?path=/pages/viewpage.action%3fpageid=79955426
Regards
Vishnu

Similar Messages

  • No messages created from split mapping

    Hello,
    My Scenario is JDBC to Proxy and there is  1:n Mapping
    I had done the multi mapping and done the all the necessary configuration in the MM, IM and ID
    I tested the payload in the MM and IM and it is working fine.
    But while iam doing the end to end testing in the ID --- Test Configuration,It is showing the error at Interface Determinmation and Mapping step.
    In SXMB moni, iam getting error as
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">GENERIC</SAP:Code>
      <SAP:P1>No messages created from split mapping</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>No messages created from split mapping</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    The below is my source payload.
      <?xml version="1.0" encoding="utf-8" ?>
    - <ns:mt_vendor_fusiondb xmlns:ns="http://loreal.com/poc_vendor">
    - <row>
      <ID>1</ID>
      <LIFNR />
      <NAME1>SriTest</NAME1>
      <PSTLZ>07066</PSTLZ>
      <LAND1>USA</LAND1>
      <TELF1>1234567890</TELF1>
      <Status>READY</Status>
      <LastUpdated>2008-11-20 09:20:00.0</LastUpdated>
      </row>
    - <row>
      <ID>2</ID>
      <LIFNR />
      <NAME1>GilderTest</NAME1>
      <PSTLZ>07066</PSTLZ>
      <LAND1>USA</LAND1>
      <TELF1>1234567890</TELF1>
      <Status>READY</Status>
      <LastUpdated>2008-11-20 09:20:00.0</LastUpdated>
      </row>
    - <row>
      <ID>3</ID>
      <LIFNR />
      <NAME1>KarthikTest</NAME1>
      <PSTLZ>07066</PSTLZ>
      <LAND1>USA</LAND1>
      <TELF1>1234567890</TELF1>
      <Status>READY</Status>
      <LastUpdated>2008-11-20 09:20:00.0</LastUpdated>
      </row>
      </ns:mt_vendor_fusiondb>
    Please help me in resolving this error
    Srinivas

    Hi Carlos,
    Now my message mapping is working, the error is in the messagetype i declared 'row' as capital letters,due to this in the runtime it is erroring out in the request message mapping.
    But still I had one more issue,iam getting error in Technical routing, the error is
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Technical Routing
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="OUTBINDING">CO_TXT_MMF_ENGINETYPE</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Messages in multi message format can be sent to one adapter engine only</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    In the ID i checked the radio button extended.
    But still iam getting the above error.Can you guide me in resolving the error

  • Mapping error code from Business service to Proxy

    I am trying to get hands on with 11g and following the book Getting started with Oralce 11G soa suite. The example I have described is based on chapter 11 and chapter 14. I have a proxy service and business service. The business service calls a "ValidateCC" composite which validates the credit card information passed and is proxied by the proxy service. The validation of CC is done by a stored procedure, which returns an error ora-20001 if the credit card info is not found in the database.
    Testing PROXY service from OSB console:
    Here is the REQUEST message sent to proxy service:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    </soap:Header>
    <soapenv:Body>
    <cca:creditcardStatusRequest xmlns:cca="http://www.globalcompany.com/ns/CCAuthorizationService">
    <cca:CCNumber>2234-1234-1234-1234</cca:CCNumber>
    </cca:creditcardStatusRequest>
    </soapenv:Body>
    </soapenv:Envelope>
    Here is the response message received:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server</faultcode>
    <faultstring>BEA-380001: Internal Server Error</faultstring>
    <detail>
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-380001</con:errorCode>
    <con:reason>Internal Server Error</con:reason>
    <con:location>
    <con:node>RouteTo_validationForCC</con:node>
    <con:path>response-pipeline</con:path>
    </con:location>
    </con:fault>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    Testing Business service from OSB console
    Response received for the same message:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header/>
    <env:Body>
    <env:Fault>
    <faultcode>env:Server</faultcode>
    <faultstring>
    Exception occured when binding was invoked.
    Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'validateCC' failed due to: Stored procedure invocation error.
    Error while trying to prepare and execute the VALIDATECC API.
    An error occurred while preparing and executing the VALIDATECC API. Cause: java.sql.SQLException: ORA-20001: UNKNOWN CREDIT CARD
    ORA-06512: at "SOADEMO.VALIDATECC", line 12
    ORA-06512: at line 1
    The invoked JCA adapter raised a resource exception.
    Please examine the above error message carefully to determine a resolution.
    </faultstring>
    <faultactor/>
    <detail>
    <exception>
    ORA-20001: UNKNOWN CREDIT CARD
    ORA-06512: at "SOADEMO.VALIDATECC", line 12
    ORA-06512: at line 1
    </exception>
    </detail>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    What i need:
    I would like to have the exception 20001 populated in faultcode of the response from proxy message. A down stream BPEL process checks the faultcode and processes the message as needed.
    My OSB message flow contains :
    ValidateCredit +> envelope
    PipelinePairNode1
    Request Pipeline
    Report and Validate
    Response Pipeline
    RouteTo_validationForCC
    Service Error Handler
    stage1 with Alert action.
    My question is how to map the actual error occured in the cally be business service handler to the Service error handler in stead of throwing a generic BEA error. Please let me know

    Thank You Swgt for your reply.
    This is what I did:
    When I'm in Edit mode, in the OSB Web Console, I go to my proxy service, click on the Edit Message Flow icon, in the Map of Message Flow window I left-click on my Route icon (which as you already mentioned routes to my Business Service), select Add Route Error Handler (this option only appears if you're in Edit Mode already), click on the Error Handler icon, Add Stage, click on the Stage icon, Edit Stage, click on Add an Action, Flow Control -> Reply. Here I select the Radio Button "With Failure" and then Save All and Activate the change for the session.
    Is this correct?
    I tried this. I no longer get the BEA-380001 error code. However, the fault returned is not a bindingFault as I would have expected, but rather a remoteFault. hence my fault policy never detects it, doesn't rethrow it, and my BPEL error handling never kicks in.
    Is there a way to change this to work more or less in the sense of the tutorial?
    Does using OSB to connect to the service automatically make it a remote fault, instead of a bindingFault?
    Here's the SOAP message handled by my BPEL Component.
    <messages>
    <input>
    <invokeCCStatusService_execute_InputVariable>
    <part name="part1">
    <creditcardStatusRequest>
    <CCNumber>2234-1234-1234-1234</CCNumber>
    </creditcardStatusRequest>
    </part>
    </invokeCCStatusService_execute_InputVariable>
    </input>
    <fault>
    <bpelFault>
    <faultType>0</faultType>
    <remoteFault>
    <part name="summary">
    <summary>Beim Aufrufen des Bindings ist eine Exception aufgetreten.
    Beim Aufrufen des JCA-Bindings ist eine Exception
    aufgetreten: "JCA Binding execute of Reference operation
    'validateCC' failed due to: Fehler beim Aufrufen von
    gespeicherter Prozedur. Beim Versuch, die VALIDATECC-API
    vorzubereiten und auszuführen, ist ein Fehler aufgetreten.
    Beim Vorbereiten und Ausführen der VALIDATECC-API ist ein
    Fehler aufgetreten. Ursache: java.sql.SQLException:
    ORA-20001: UNKNOWN CREDIT CARD ORA-06512: in
    "SOADEMO.VALIDATECC", Zeile 12 ORA-06512: in Zeile 1 Prüfen
    Sie, ob die API in der Datenbank definiert ist und die
    Parameter der API-Signatur entsprechen. Diese Exception wird
    als nicht wiederholbar betrachtet. Sie ist wahrscheinlich auf
    einen Modellierungsfehler zurückzuführen. Um den Fehler
    stattdessen als wiederholbar zu klassifizieren, fügen Sie die
    Eigenschaft nonRetriableErrorCodes mit dem Wert "-20001" zum
    Deployment-Deskriptor hinzu (d.h. weblogic-ra.xml). Um einen
    wiederholbaren Fault automatisch zu wiederholen, legen Sie
    folgende Eigenschaften von composite.xml für diesen Aufruf
    fest: jca.retry.interval, jca.retry.count und
    jca.retry.backoff. Alle Eigenschaften sind Ganzzahlen. ". Der
    aufgerufene JCA-Adapter hat eine Ressourcen-Exception
    ausgelöst. Prüfen Sie die obige Fehlermeldung sorgfältig, um
    eine Lösung zu finden.</summary>
    </part>
    <part name="detail">
    <detail>
    <exception>ORA-20001: UNKNOWN CREDIT CARD ORA-06512: in
    "SOADEMO.VALIDATECC", Zeile 12 ORA-06512: in Zeile 1</exception>
    </detail>
    </part>
    <part name="code">
    <code>{http://schemas.xmlsoap.org/soap/envelope/}Server</code>
    </part>
    </remoteFault>
    </bpelFault>
    </fault>
    <faultType>
    <message>0</message>
    </faultType>
    </messages>

  • No messages created from split mapping - Multimapping

    Hi,
    Getting the error in MONI saying that : No messages created from split mapping
    Sender is :
       <Purchase>
                <Number>007</Number>
                <Desc>RAJ</Desc>
                <Quantity>half</Quantity>
       </Purchase>
    Target should be 3 files such as:
      <Purchase>
                <Number>007</Number>
                <Desc>RAJ</Desc>
       </Purchase>
    <Purchase>
                <Number>007</Number>
                <Quantity>half</Quantity>
      /Purchase>
    <Purchase>
                 <Desc>RAJ</Desc>
                <Quantity>half</Quantity>
    </Purchase>
    Regards,
    Y.Raj.

    Hi,
    In your mapping select the cardinality of source message as 0..1 while that of target message should be 0..unbounded.
    Also since you are not using all the elements of source into all the target messages (seems using only two source elements in each target msg) do the mapping accordingly...i doubt whether you can achieve your requirement in one mapping itself....may be you will have to follow what Tarang mentioned:
    3. have 3 mappings between source structure and MT1(map only num,dec), source struc and MT2(map num,Qty) ....
    Exception to above statement:)
    If you set the target cardinality as 0..unbounded then duplicate the root target node thrice (as per your requirement)....and then map each target section seperately....
    Regards,
    Abhishek.
    Edited by: abhishek salvi on Apr 7, 2009 9:12 AM

  • No messages created from split mapping   error .....

    HI XI Friends..
    In My XML to RFC scenario,,
    i am doing message splitting withput BPM.
    in message mapping ..i changed target message occurance to unbounded
    and same i did in interface mapping also..
    static test is OK..creating multiple target messages in static test.
    in interface determination,using enhanced option i given interface mapping.
    file is picking but in SXMB_MONI ...i am getting error like this
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">GENERIC</SAP:Code>
      <SAP:P1>No messages created from split mapping</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>No messages created from split mapping</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    please guide me..
    regards
    ram

    Hi Ram,
    Check these..
    Split mapping created no messages
    Message Split without BPM - Error
    cheers,
    Prashanth
    P.S Please mark helpful answers

  • Oracle BPM and JMS Queue: How to associate data from Map Messages to Process Data Objects?

    Good Day!
    I'm currently working on a project wherein it tries to get data from a JMSqueue Map Message being populated by CEP.
    After CEP pushes some data in the JMSqueue. I have BPM configured with a JMS adapter to look up whether there are any messages to be processed upon.
    Inside BPM, I want to know how can I correlate the data from the Map Message to my Process Data Object.
    For example, If I have a Map Object wherein it has 3 attributes:
    FirstName:String
    LastName:String
    Age:int
    What is the expression I need to use inside Oracle BPM Data Association screen in order to map the data from the Map Messages into my process data objects?
    Thanks!
    Regards,
    Jeff

    Any ideas? Thanks!

  • Inconsistency in receiveing the messages in inbound Proxy in SAP  from XI

    Hi All,
    We have a Scenario where our Source System is Websphere MQ and target system is SAP Deposit Management System.
    To post the data in SAP DM we are using inbound  ABAP Proxy
    There is an inconsistency in receiveing the messages in inbound Proxy.
    eg  When multiple messages are put into a MQ Queue only few of them are being picked up by Inbound Proxy.
    Thanks in Advance

    Hi Amit,
    This problem can be found only by analysing it in RWB. Just analuse via RWB or MONI and check the payload at sender side and receiver side then you can find the problem.
    I think in the sender communication channel it has the problem. if it is there in Sender side payload then there would be missing in the mapping also. Just check that the top parent of target is gettting generated with some messages which are missing.
    Warm Regards,
    Vijay

  • Query another message payload from graph mapping program

    Hi all,
    I have the following scenario
    Third Party Business System -> XI -> ECC 5.0
    Third Party sends ORDER to ECC and ECC answers with ORDRSP
    When mapping ORDRSP.ORDERS05 to Third Pty format, I need to use info that the Third Party provided us on the ORDERS.
    So... I have to query the ORDERS message payload from ORDRSP message mapping program.
    Any ideas?
    My first idea deal with doing an RFC lookup to search the ABAP Database for this info (my ABAP background raises ) but I'd like to know if there is a more elegant and efficent way of doing this.
    regards,
    David R.

    Hi,
    Let's try again to explain myself with my poor english!
    Time frame
    A) TPart system sends order. XI maps to ORDERS.ORDER05 idoc and is forwarded to ECC.
    B) In ECC users modify Sales order and then triggers the outbound ORDRSP.ORDERS05.
    C) XI has to map ORDRSP.ORDERS05 and include some info (in fact the original message) that was sent in step B).
    The xmls from TPart could be (simplified version):
    Orders (step A)
    <?xml version="1.0" encoding="iso-8859-1">
    <document>
      <header>
      </header>
      <Items>
      </Items>
      <Items>
      </Items>
      </Header>
    </Document>
    The received XML on step C) could be something like this:
    <?xml version="1.0" encoding="iso-8859-1">
    <Document>
      <PurchaseOrder_from_vendor>
      <i>Here I have to include the whole xml sent in step A</i>
      </PurchaseOrder_from_vendor>
      <SalesOrder_from_customer>
      <i>Here the ORDRSP.ORDERS05 mapping stuff</i>
      </SalesOrder_from_customer>
    </Document>
    All the communication will be always async.
    Any ideas?
    regards,
    David R.

  • Dequeuing a Map message from AQ using Java/JMS

    I have a queue in Oracle AQ, created from a queue table with queue_payload_type of SYS.AQ$_JMS_MAP_MESSAGE. I can successfully enqueue a Map message using PL/SQL, but when I try to read a message from the queue using the JMS API (with the Oracle AQ JMS provider JARs) in a standalone Java program, the message is not successfully read. However, the RETRY_COUNT in the queue table is incremented each time I try to read from the queue. I do not receive any error messages on the client side.
    If I change the queue_payload_type of the queue table to SYS.AQ$_JMS_TEXT_MESSAGE instead and enqueue a text message using PL/SQL, I can read the text message successfully in the standalone Java program using JMS. The message is removed from the queue and everything works fine.
    Most Oracle AQ/JMS examples I've found on the web involve text messages. Has anyone been able to read a Map message from an Oracle AQ queue using JMS, or is there a known issue with Map messages?
    I'm running Oracle 10g Standard Edition version 10.2.0.1.0 on Windows XP.
    Thanks for your help,
    Marty

    While you are awaiting an answer you might want to consider applying the 10.2.0.4 patch. Your version is several years old and patches are free.

  • RMI exception calling web service from proxy class

    I am getting the following error attempting to call a web service from a proxy. It appears to relate to the type of objects I am trying to send vs the type that is expected. Following the exception I am adding a copy of the control where calling the web service is sucessful, a copy of the proxy class that I am using to make this unsucessful call, and the controller.jpf that has the formBean where I am creating my objects
    Caught Exception Calling the Web Service from the Proxy. The Exception is the f
    ollowing: java.rmi.RemoteException: web service invoke failed: javax.xml.soap.SO
    APException: failed to serialize class org.openuri.www.CreateAccountCheckingReq
    uestweblogic.xml.schema.binding.SerializationException: type mapping lookup fail
    ure on class=class controls.CheckingService$anyType TypeMapping=TYPEMAPPING SIZE
    =5
    ENTRY 1:
    class: org.openuri.www.CreateAccountCheckingResponse
    xsd_type: ['http://www.openuri.org/']:lcl0:CreateAccountCheckingResponse
    ser: org.openuri.www.CreateAccountCheckingResponseCodec@c0f4da
    deser: org.openuri.www.CreateAccountCheckingResponseCodec@b1dd4
    ENTRY 2:
    class: org.openuri.www.FundingInfoAnonType
    xsd_type: ['http://www.openuri.org/']:lcl0:FundingInfoAnonType
    ser: org.openuri.www.FundingInfoAnonTypeCodec@1d36711
    deser: org.openuri.www.FundingInfoAnonTypeCodec@13a59e
    ENTRY 3:
    class: org.openuri.www.AccountInfoAnonType
    xsd_type: ['http://www.openuri.org/']:lcl0:AccountInfoAnonType
    ser: org.openuri.www.AccountInfoAnonTypeCodec@1de5959
    deser: org.openuri.www.AccountInfoAnonTypeCodec@bbf788
    ENTRY 4:
    class: org.openuri.www.CustomerInfoAnonType
    xsd_type: ['http://www.openuri.org/']:lcl0:CustomerInfoAnonType
    ser: org.openuri.www.CustomerInfoAnonTypeCodec@7824f9
    deser: org.openuri.www.CustomerInfoAnonTypeCodec@1c35fe1
    ENTRY 5:
    class: org.openuri.www.CreateAccountCheckingRequest
    xsd_type: ['http://www.openuri.org/']:lcl0:CreateAccountCheckingRequest
    ser: org.openuri.www.CreateAccountCheckingRequestCodec@1cbcd7b
    deser: org.openuri.www.CreateAccountCheckingRequestCodec@11f60ce
    ; nested exception is:
    javax.xml.soap.SOAPException: failed to serialize class org.openuri.www
    .CreateAccountCheckingRequestweblogic.xml.schema.binding.SerializationException:
    type mapping lookup failure on class=class controls.CheckingService$anyType Typ
    eMapping=TYPEMAPPING SIZE=5
    ENTRY 1:
    class: org.openuri.www.CreateAccountCheckingResponse
    xsd_type: ['http://www.openuri.org/']:lcl0:CreateAccountCheckingResponse
    ser: org.openuri.www.CreateAccountCheckingResponseCodec@c0f4da
    deser: org.openuri.www.CreateAccountCheckingResponseCodec@b1dd4
    ENTRY 2:
    class: org.openuri.www.FundingInfoAnonType
    xsd_type: ['http://www.openuri.org/']:lcl0:FundingInfoAnonType
    ser: org.openuri.www.FundingInfoAnonTypeCodec@1d36711
    deser: org.openuri.www.FundingInfoAnonTypeCodec@13a59e
    ENTRY 3:
    class: org.openuri.www.AccountInfoAnonType
    xsd_type: ['http://www.openuri.org/']:lcl0:AccountInfoAnonType
    ser: org.openuri.www.AccountInfoAnonTypeCodec@1de5959
    deser: org.openuri.www.AccountInfoAnonTypeCodec@bbf788
    ENTRY 4:
    class: org.openuri.www.CustomerInfoAnonType
    xsd_type: ['http://www.openuri.org/']:lcl0:CustomerInfoAnonType
    ser: org.openuri.www.CustomerInfoAnonTypeCodec@7824f9
    deser: org.openuri.www.CustomerInfoAnonTypeCodec@1c35fe1
    ENTRY 5:
    class: org.openuri.www.CreateAccountCheckingRequest
    xsd_type: ['http://www.openuri.org/']:lcl0:CreateAccountCheckingRequest
    ser: org.openuri.www.CreateAccountCheckingRequestCodec@1cbcd7b
    deser: org.openuri.www.CreateAccountCheckingRequestCodec@11f60ce
    Java Control for the web service:
    package controls;
    import weblogic.webservice.context.WebServiceContext;
    * @jc:location http-url="http://localhost:7001/Checking.jws"
    * @jc:wsdl file="#CheckingWsdl"
    * @jc:handler callback="MessageHandler" operation="MessageHandler"
    public interface CheckingService extends com.bea.control.ControlExtension, com.bea.control.ServiceControl
    public static class CustomerInfo
    implements java.io.Serializable
    public java.lang.String FirstName;
    public java.lang.String LastName;
    public java.lang.String MiddleName;
    public int SSN;
    public int CustomerNumber;
    public java.util.Calendar CreationDate;
    public java.util.Calendar LastModifiedDate;
    public static class FundingInfo
    implements java.io.Serializable
    public float Amount;
    public java.util.Calendar CurrentDate;
    public int AccountNumber;
    public static class anyType
    implements java.io.Serializable
    public com.bea.xml.XmlObject[] t;
    public static class AccountInfo
    implements java.io.Serializable
    public int AccountNumber;
    public float Balance;
    public int CustomerNumber;
    public java.util.Calendar LastModifiedDate;
    public WebServiceContext context = CheckingService.context;
    * @jc:protocol form-post="false" form-get="false"
    public AccountInfo CreateAccountChecking (CustomerInfo CustomerInfo, FundingInfo FundingInfo, anyType CommonHeader);
    static final long serialVersionUID = 1L;
    /** @common:define name="CheckingWsdl" value::
    <?xml version="1.0" encoding="utf-8"?>
    <!-- @editor-info:link autogen="false" source="" -->
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/" xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.openuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.openuri.org/">
    <types>
    <s:schema targetNamespace="http://www.openuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema">
    <s:element name="CreateAccountCheckingRequest">
    <s:complexType>
    <s:sequence>
    <s:element name="CustomerInfo">
    <s:complexType>
    <s:sequence>
    <s:element name="FirstName" type="s:string" nillable="false"/>
    <s:element name="LastName" type="s:string" nillable="false"/>
    <s:element name="MiddleName" type="s:string" nillable="true"/>
    <s:element name="SSN" type="s:int"/>
    <s:element name="CustomerNumber" type="s:int"/>
    <s:element name="CreationDate" type="s:dateTime"/>
    <s:element name="LastModifiedDate" type="s:dateTime"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="FundingInfo">
    <s:complexType>
    <s:sequence>
    <s:element name="Amount" type="s:float"/>
    <s:element name="CurrentDate" type="s:dateTime"/>
    <s:element name="AccountNumber" type="s:int"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="CommonHeader" type="s:anyType"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="CreateAccountCheckingResponse">
    <s:complexType>
    <s:sequence>
    <s:element name="AccountInfo">
    <s:complexType>
    <s:sequence>
    <s:element name="AccountNumber" type="s:int"/>
         <s:element name="Balance" type="s:float"/>
         <s:element name="CustomerNumber" type="s:int"/>
         <s:element name="LastModifiedDate" type="s:dateTime"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="string" nillable="true" type="s:string"/>
    </s:schema>
    </types>
    <message name="CreateAccountCheckingSoapIn">
    <part name="parameters" element="s0:CreateAccountCheckingRequest"/>
    </message>
    <message name="CreateAccountCheckingSoapOut">
    <part name="parameters" element="s0:CreateAccountCheckingResponse"/>
    </message>
    <portType name="CheckingSoap">
    <operation name="CreateAccountChecking">
    <input message="s0:CreateAccountCheckingSoapIn"/>
    <output message="s0:CreateAccountCheckingSoapOut"/>
    </operation>
    </portType>
    <binding name="CheckingSoap" type="s0:CheckingSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="CreateAccountChecking">
    <soap:operation soapAction="http://www.openuri.org/CreateAccountChecking" style="document"/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="Checking">
    <port name="CheckingSoap" binding="s0:CheckingSoap">
    <soap:address location="http://localhost:7001/Checking.jws"/>
    </port>
    </service>
    </definitions>
    FOLLOWING IS THE PROXY CLASS THAT IS UNSUCCESSFUL
    import controls.CheckingService.anyType;
    import java.util.ArrayList;
    import java.util.List;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.HandlerRegistry;
    import org.openuri.CreateAccountCheckingResponseDocument.CreateAccountCheckingResponse;
    import org.openuri.www.CustomerInfoAnonType;
    import org.openuri.www.FundingInfoAnonType;
    import weblogic.jws.proxies.*;
    import weblogic.webservice.context.WebServiceContext;
    import weblogic.webservice.context.WebServiceSession;
    import weblogic.webservice.core.handler.WSSEClientHandler;
    import weblogic.webservice.tools.pagegen.result;
    import weblogic.xml.security.UserInfo;
    import weblogic.xml.security.wsse.Security;
    import weblogic.xml.security.wsse.SecurityElementFactory;
    //import weblogic.jws.proxies.WebServiceB;
    //import weblogic.jws.proxies.WebServiceB_Impl;
    //import weblogic.jws.proxies.WebServiceBSoap;
    public class CheckingWSProxy
    public static void CallWS(Controller.CreateAccountCheckingForm form)
    String user;
    String pass;
    try{
    * Instantiate the main proxy class. The proxy class has the same name as the
    * web service, with "_Impl" appended.
    Checking myservice = new Checking_Impl("http://localhost:7001/ConsumerAccountApp/schemas/CheckingService.wsdl");
    WebServiceContext context = myservice.context();
    WebServiceSession session = context.getSession();
    * Registers a handler for the SOAP message traffic.
    HandlerRegistry registry = myservice.getHandlerRegistry();
    List list = new ArrayList();
    list.add(new HandlerInfo(WSSEClientHandler.class, null, null));
    registry.setHandlerChain(new QName("Checking"), list);
    * Set the username and password token for SOAP message sent from the client, through
    * the proxy, to the web service.
    user = form.getUsername();
    pass = form.getPassword();
    UserInfo ui = new UserInfo(user, pass);
    session.setAttribute(WSSEClientHandler.REQUEST_USERINFO, ui);
    * Adds the username / password token to the SOAP header.
    SecurityElementFactory factory = SecurityElementFactory.getDefaultFactory();
    Security security = factory.createSecurity(null);
    security.addToken(ui);
    session.setAttribute(WSSEClientHandler.REQUEST_SECURITY, security);
    * Get the protocol-specific proxy class.
    CheckingSoap msg=myservice.getCheckingSoap();
    * Invoke the web service method
    msg.createAccountChecking((CustomerInfoAnonType)form.getProxyCustomerInfo(), (FundingInfoAnonType)form.getProxyFundingInfo(), (Object)form.get_CommonHeader());
    catch (Exception ex)
    System.out.println("Caught Exception Calling the Web Service from the Proxy. The Exception is the following: " + ex.toString());
    FOLLOWING IS THE FORMBEAN IN THE CONTROLLER.JPF FILE
    * FormData get and set methods may be overwritten by the Form Bean editor.
    public static class CreateAccountCheckingForm extends FormData
    private anyType _CommonHeader;
    private controls.CheckingService.FundingInfo _FundingInfo;
    private controls.CheckingService.CustomerInfo _CustomerInfo;
    private java.util.Date dOut;
    private java.util.Calendar cOut;
    private CustomerInfo proxyCustomerInfo;
    private FundingInfo proxyFundingInfo;
    private String stringDate;
    private String currentDate;
    private String lastModifiedDate;
    private String creationDate;
    private String systemMessage;
    private String username;
    private String password;
    private String accountType;
    private String trashTransferAccount;
    private String trashAccountNumber;
    private boolean secureFlag;
    public void set_CustomerInfo(controls.CheckingService.CustomerInfo _CustomerInfo)
    _CustomerInfo.CreationDate = parseDate(getCreationDate());
    _CustomerInfo.LastModifiedDate = parseDate(getLastModifiedDate());
    this._CustomerInfo = _CustomerInfo;
    public controls.CheckingService.CustomerInfo get_CustomerInfo()
    if(this._CustomerInfo == null)
    this._CustomerInfo = new controls.CheckingService.CustomerInfo();
    _CustomerInfo.CreationDate = dateNow();
    _CustomerInfo.LastModifiedDate = dateNow();              
    return this._CustomerInfo;
    public CustomerInfo getProxyCustomerInfo()
    this.proxyCustomerInfo = (CustomerInfo)this._CustomerInfo;
    return this.proxyCustomerInfo;
    public void set_FundingInfo(controls.CheckingService.FundingInfo _FundingInfo)
    _FundingInfo.CurrentDate = parseDate(getCurrentDate());
    this._FundingInfo = _FundingInfo;
    public controls.CheckingService.FundingInfo get_FundingInfo()
    if(this._FundingInfo == null)
    this._FundingInfo = new controls.CheckingService.FundingInfo();
    _FundingInfo.CurrentDate = dateNow();
    return this._FundingInfo;
    public FundingInfo getProxyFundingInfo()
    this.proxyFundingInfo = (FundingInfo)this._FundingInfo;
    return this.proxyFundingInfo;
    public void set_CommonHeader(anyType _CommonHeader)
    this._CommonHeader = _CommonHeader;
    public anyType get_CommonHeader()
    if(this._CommonHeader == null)
    this._CommonHeader = new anyType();
    return this._CommonHeader;
    public java.util.Calendar dateNow()
    this.dOut = new Date();
    Calendar cOut = this.cOut.getInstance();
    cOut.setTime(this.dOut);
    this.cOut = cOut;
    return this.cOut;
    public java.util.Calendar parseDate( String strDate )
    SimpleDateFormat df4 = new SimpleDateFormat( "MM/dd/yyyy" );
    Calendar cOut = this.cOut;
    df4.setLenient( false );
    try
    this.dOut = df4.parse( strDate );
    } catch ( ParseException e )
    cOut.getInstance();
    cOut.setTime(dOut);
    this.cOut = cOut;
    return this.cOut;
    public void setStringDate( String stringDate )
    this.stringDate = stringDate;
    public String getStringDate()
    return this.stringDate;
    public void setCurrentDate( String currentDate )
    this.currentDate = currentDate;
    public String getCurrentDate()
    SimpleDateFormat df4 = new SimpleDateFormat( "MM/dd/yyyy" );
    this.currentDate = df4.format(_FundingInfo.CurrentDate.getTime());
    return this.currentDate;
    public void setLastModifiedDate( String lastModifiedDate )
    this.lastModifiedDate = lastModifiedDate;
    public String getLastModifiedDate()
    SimpleDateFormat df4 = new SimpleDateFormat( "MM/dd/yyyy" );
    this.lastModifiedDate = df4.format(_CustomerInfo.LastModifiedDate.getTime());
    return this.lastModifiedDate;
    public void setCreationDate( String creationDate )
    this.creationDate = creationDate;
    public String getCreationDate()
    SimpleDateFormat df4 = new SimpleDateFormat( "MM/dd/yyyy" );
    this.creationDate = df4.format(_CustomerInfo.CreationDate.getTime());
    return this.creationDate;
    public void setUsername( String username )
    this.username = username;
    public String getUsername()
    return this.username;
    public void setPassword( String password )
    this.password = password;
    public String getPassword()
    return this.password;
    public void setAccountType( String accountType )
    this.accountType = accountType;
    public String getAccountType()
    return this.accountType;
    public void setTrashTransferAccount( String trashTransferAccount )
    this.trashTransferAccount = trashTransferAccount;
    public String getTrashTransferAccount()
    return this.trashTransferAccount;
    public void setTrashAccountNumber( String trashAccountNumber )
    this.trashAccountNumber = trashAccountNumber;
    public String getTrashAccountNumber()
    return this.trashAccountNumber;
    public void setSystemMessage( String systemMessage )
    this.systemMessage = systemMessage;
    public String getSystemMessage()
    return this.systemMessage;
    public void setSecureFlag( boolean secureFlag )
    this.secureFlag = secureFlag;
    public boolean getSecureFlag()
    return this.secureFlag;
    }

    This exception means that xml namespaces are different.
    Etc. soap has xml element which doesn't belong to namespace of parent xml element and namespace is set without prefix.
    I had such problem.
    Try to set namespace prefix for this element.
    Example:
    <el1>
    <el2 xmlns="http://..."/>
    </el1>
    Should be
    <el1>
    <q:el2 xmlns:q="http://..."/>
    </el1>

  • No mapping logic : soap to proxy scenario

    Hi,
    I have a soap to proxy scneario with no mapping logic.wanted to confirm certain things.
    Wanted to confirm certain things.
    1) So i can exclude mapping and interface mapping step since i just need to pass value to proxy ?
    2) in interface determination ,what i need to provide for interface mapping ?
    3) sync proxy will be generated from one outbound message interface "( there will be only one outbound message interface which will be synchronous  : which will be synchronous ?
    4) in receiver business system , i need not put any message interface since we only have one outbound sync message interface
    Thnx

    how many message interfaces wil be needed for synchronous scneario without mapping ?
    Two....one for Sender (Outbound) and one for receiver (Inbound)
    in case ur answer is 2 for above ? proxy needs to be generated from outbound or inbound interface?
    For your SOAP --> XI/ PI --> PROXY, scenario the proxy should be generated for the inbound interface
    1) So i can exclude mapping and interface mapping step since i just need to pass value to proxy ?
    If both the source and target structures are the same , then you do not need to perform mapping....do not create message and Interface mapping .....you should however create Interface Determination with appropriate Source and Target interfaces.
    2) in interface determination ,what i need to provide for interface mapping ?
    Nothing.....including a mapping is not mandatory.
    4) in receiver business system , i need not put any message interface since we only have one outbound sync message
    interface
    The message interface needs to be associated with the Business System.....it will be the inbound interface for SOAP --> XI --> PROXY scenario.
    Regards,
    Abhishek.

  • File Name and File Content  not gettinng passed from Proxy to Business Serv

    Hi All ,
    I have a requirement in OSB , where i need to pick the file from remote Source and FTP the files to Remote Target .Below are the steps which i did to achieve this.
    1.Created a FTP Adapter in JDeveloper to Get the files from Source and a FTP Adpater to Put the files to Target.Inboth the adapters i have choose 'Shema is Opaque'
    2.Imported the wsdl and jca file to OSB
    3.Generated Proxy Service (PS ) and Business service (BS) out of Step 2
    4.I edited the Message flow such a way that , the PS is routed to invoke the BS
    Aslo i assigned $inbound/ctx:transport/ctx:request/tp:headers/jca:jca.file.FileName to a variable 'FileName' in PS
    and in BS service i passed $outbound/ctx:transport/ctx:request/tp:headers/jca:jca.ftp.FileName = 'FileName'
    When i tried to activate my session , the file that is getting written to the target has 0 byte.Also , the file name is also not getting passed from PS to BS
    Can some one help me with the steps on how to use the Xpath , so as to pass the file name and file body from proxy servive to business service.
    Thanks
    John

     I search multiple shares to find a common file name then create a single output file. I will be doing this search and file creation
    for 5-10 different file names. If there is a better way .. certainly open for suggestions. It's working but having issue with
    the cmd file for every file and folder I check. It puts this error out for each run of the process.
      Error message in LOG file:
    Get-ChildItem : Cannot find path 'F:\powershell\-SearchFor' because it does not exist.
     Thanks.
    I tried your code with little changes and saved in Temp folder.
    My CMD file has the below code
    PowerShell C:\Temp\Untitled1.ps1
    It worked.
    Regards Chen V [MCTS SharePoint 2010]

  • Problem with Mulit Mapping/Message Split

    Hi,
    I am a newbie to XI trying to set up a file2file scenario with multi-mapping/message splitting without BPM.
    System is XI 3.0 SP14
    Scenario is:
    read an XML-File and multiply it and write 2 XML-files using the File adaptor.
    For reference I used "multimapping without BPM".
    - setting occurancy of Message types to unbounded in both Message Mapping and Interface Mapping.
    - using the RB_Split button
    - setting up one business service containing 2 message interfaces and 2 communication channels for output.
    Designing and Konfiguring worked fine.
    File is read but no file is written.
    XML-Moni tells me "Mapping did not create Messages" 
    I did extensive studies in sap.help, forum and various blogs. Also to verify Messagetypes and Kommunication channels I set up similar file2file scenario without splitting. Nothing really helped.
    Any clues?

    Hi again,
    very efficient method to test XML-source file. - Thanks.
    Unfortunately it did not solve my problem.
    Again: "Split mapping did not create messages"
    Below you can find a part of the trace created when processing this message:
    <Trace level="3" type="T">Multi mapping required.</Trace>
      <Trace level="3" type="T">Creating Java mapping com/sap/xi/tf/_MM_data_duplic_async_.</Trace>
      <Trace level="3" type="T">Load ac6179b0-a92e-11da-be15-e51f0a000472, http://MyTutorial/SHeinz05, -1, com/sap/xi/tf/_MM_data_duplic_async_.class.</Trace>
      <Trace level="3" type="T">Search com/sap/xi/tf/_MM_data_duplic_async_.class (http://MyTutorial/SHeinz05, -1) in swcv ac6179b0-a92e-11da-be15-e51f0a000472.</Trace>
      <Trace level="3" type="T">Loaded class com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="2" type="T">Call method execute of the application Java mapping com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="2" type="T">Java mapping com/sap/xi/tf/_MM_data_duplic_async_ completed. (executeStep() of com.sap.xi.tf._MM_data_duplic_async_</Trace>
      <Trace level="3" type="T">Nachrichtentyp 1 Anzahl der Nachrichten 0</Trace>
      <Trace level="3" type="T">Nachrichtentyp 2 Anzahl der Nachrichten 0</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
    - <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST">
      <Trace level="3" type="T">Persisting message after plsrv call</Trace>
      <Trace level="3" type="T">Message-Version = 005</Trace>
      <Trace level="3" type="T">Message version 005</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </Trace>
      <Trace level="3" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="3" type="T">Persisting message Status = 014</Trace>
      <Trace level="3" type="T">Message version 006</Trace>
      <Trace level="3" type="T">Pipeline CENTRAL</Trace>
      </SAP:Trace>
    Test of MM and IM is always successful.
    Any clues?

  • File to IDOC mapping - Message Type WMMBXY

    Hi
       I am working on FILE to IDOC Scenario. I have records like the following in my file:
    301 ABC455559 03.11.2009 02u0391B13 01     OBAF515150 G378378 15 PC   20090311 MIGO
    301 ABC455560 03.11.2009 02u0391B13 01     OBMN515040 437482 50 PC   20090311 MIGO
    Using an ABAP Program I added DTL in front of every record as I have to convert text file to XML mapping.
    DTL 301 ABC455559 03.11.2009 02u0391B13 01     OBAF515150 G378378 15 PC   20090311 MIGO
    DTL 301 ABC455560 03.11.2009 02u0391B13 01     OBMN515040 437482 50 PC   20090311 MIGO
    When I did this my mapping is fine from source side. For the above two records there are two records created in xml format. But only one record is created at target side. I changed message type WMMBXY to unbounded in the external message but still only one idoc is created.
    Please let me know if anyone faced the same issue.
    Thanks
    Naga

    1..Please mapping ur sorce node (has occurance 0..unbound) with target node.
    2...change occurance in message tag in mapping for IDOC message
    3...change occurance in message mapping for IDOC message
    Regards,
    Manisha

  • Get the Error-Message-Number from RFC to SOAP

    Hi All,
    we have implemented a synchronous SOAP-Call to RFC over XI. How can I get the message-number from the raised exception in the RFC-function Module to the SOAP-Caller?
    Thanks a lot
    Matthias

    Matthias,
    For you to have an exception structure when an rfc is imported into Xi, the rfc should have an exception defined. Usually we define an ApplicationError as one of the exceptions.
    The idea is that if there was an exception which you didnt handle in your rfc (BAPI return will be emplty), the exception will be returned to XI and shown in SXMB_Moni as hard error(of course there should be a message mapping avaliable in XI )
    In all the other cases, since you are populating BAPIReturn which is tables parameter, you should be able see the filled structure in your response message from RFC.
    Regards,
    naveen

Maybe you are looking for

  • ERMS work items not visible in IC Web Client Agent Inbox

    We have configured ERMS rule modeler with a routing to an organisation unit if email content contains a specific word. ERMS seems to work fine as workflow is triggered and work items created in the relevant user SAP inbox (any user assigned to the or

  • UTL_SMTP writing to email body after writing to attachment doesn't work

    Read in contents of files and Write text to email body if size is < 10k , otherwise to an attachment. Problem is after writing to an attachment we can't get it to switch to write the next file contents to the message body. Example; we have 6 files in

  • Contacts created in iphone do not synchro to outlook

    Hi everyone, First of all, sorry if this topic is repeated. I have been searching just in case but I did not find it. The problem I have is as follows: the contacts created directly on the iphone are not syncrhonizing with Outlook 2007. So, if I crea

  • Newbie Question DVD usage

    Hi everyone, This is my first Apple. So this is a whole new world for me. I am having some difficulty using the the DVD player in that it won't play them. The error message comes as being an unsupported DVD yet they are store bought DVD's. Titles tri

  • File transfer issues in Skype 6.22?

    Recently updated to 6.22 and lost the ability to decline incoming files. In previous versions you had to options - accept or decline, now the only options seem to be "accept" or ignore and then the file request just sits in the chat window as incompl