Asynchronous RFC calling using BPM

Hi to all,
I have this scenario:
FILE -> XI -> RFC -> XI
I want to use the BPM to do this, thus I have built this BPM:
START -> RECEIVE -> BLOCK1(SEND) -> BLOCK1(RECEIVE) -> STOP
My problem is that I want to use an asynchronous scenario and, thus, when XI sends message to RFC, BPM seems to become inactive and the BPM is not able to receive the RFC Response. How can I solve this problem? How can I mantain BPM active to receive the RFC Response?
Thanks to all!

Hey,
I suppose you are trying to do a similar senario
The scenario must be executed asynchronously, but there needs to be an automatic confirmation that the business data was successfully processed (this would be the equivalent of an applicationacknowledgement). Cross-component BPM (ccBPM) will be used to process the confirmation message.
How To… Use BAPI wrappers in asynchronous scenarios with ccBPM
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/59ef6011-0d01-0010-bfb0-b51381e00509
<b>Cheers,
*RAJ*
*REWARD POINTS IF FOUND USEFULL*</b>

Similar Messages

  • Error with Asynchronous RFC call to JDBC

    Hi all,
    We are working on a scenarion where in we have to make an asynchronous RFC call to JDBC.
    We have configured RFC sender adapter following this weblog
    /people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
    We have created data types only for the database as RFC does not require any data types.
    And also we have created message types,message interfaces accordingly.
    In Message Mappping,we mapped the export parameters of RFC to the access fields of database message type.
    Also we have created sender agreement,interface determinations etc.... accordingly
    And for sending RFC request asynchronously we followed this weblog
    /people/swaroopa.vishwanath/blog/2006/12/28/send-rfc-to-sap-xi-150-asynchronous
    Once done with all the above steps we could able to trigger the RFC call and caught with the following errors in SXMB_MONI and no errors are seen in communication monitoring
    SOAP Error:
    +<?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>Application</SAP:Category>
       <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_curr_exg_mm2_</SAP:P1>
    <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" /> <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_curr_exg_mm2_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Also trace shows the following error thogh the interface determinations are properly configured
    <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">--start sender interface action determination</Trace>
      <Trace level="1" type="T">select interface BAPI_EXCHRATE_GETCURRENTRATES*</Trace>
      <Trace level="1" type="T">select interface namespace urn:sap-com:document:sap:rfc:functions</Trace>
      <Trace level="1" type="T">no interface found</Trace>
      <Trace level="1" type="T">--start receiver interface action determination</Trace>
      <Trace level="1" type="T">Loop 0000000001</Trace>
      <Trace level="1" type="T">select interface *</Trace>
      <Trace level="1" type="T">select interface namespace</Trace>
      <Trace level="1" type="T">no interface found</Trace>
      <Trace level="1" type="T">--no sender or receiver interface definition found</Trace>
      <Trace level="1" type="T">Hence set action to DEL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----</Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
    the above errors are shown as part of request mapping..
    Can any one please let me know what other configurations do we need to do?
    I did not map the RFC import parameters,do we need to do that
    Any help in this regard is really appreciated
    Rgds,
    Santhosh

    Hi,
    I am really happy to hear that the problem with mapping is resolved.
    Now as per your requirment It needs to be aynschornous RFC--> XI ---> JDBC call. In XI you should map the RFC Export parameters to the traget structure of JDBC.
    then the question is to how to trigger the RFC Function Module in R/3 to XI.
    Plesae follow below steps to trigger it from SAP R/3
    1. Create a RFC in the R/3 system
    2. Configure the SM59 and Sender Communication channle as given in the Michal's blog. Also test if it is succesful.
    /people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
    3. Import the RFC in XI
    4. Do the mapping to the target strucutre
    5. Configure the JDBC receiver adapter
    /people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
    6. You can trigger the RFC from R/3 sytem by using
    Async Call - in ABAP program use below syntax to call RFC. Here the export parameters will be passed on to XI which further have mapped to JDBC.
    CALL Function "RFC Name" IN BACKGROUND TASK destination <sm59 destination>
    COMMIT WORK.
    Sync Call
    CALL Function "RFC Name" destination <sm59 destination>
    Thanks
    Swarup
    Edited by: Swarup Sawant on Jan 27, 2008 9:14 AM

  • Send multiple records to rfc without using BPM

    Dear Experts,
    Could you please help on the following scenario.
    I need to send multiple customer master data records from a file  to rfc without using BPM.
    The following is the mapping i am using
    source                                                 Target( RFC)
    ======                                          =============
    Tree             occurance   type           Tree occurance              
    cust_mt        1..1        
       customer     0..unbound -
    >          ztest_cust( rfc )  1..1
          cname     1..1             -
    >            cname   0..1
          cno          1..1            -
    >            cno       0..1
           bank           -
    >            bank    0..1
                                                                    item :  0..unbound
             code      -
    >                                   code   0..1
             name     -
    >                                    name  0..1
             location   -
    >                                      location 0..1
    1. Multiple banks possible for one customer
    2. Multiple customers possible in datafile from mdm
    Problem 1:Only one customer record from file is being sent to RFC thouth many records are in the file, the second, third .. and so on records not being sent to rfc.
    Problem 2:
      if add o.. unbound for the rfc occurance, <messages>,<message1> tags are getting added in message mapping, and no single customer record sent to rfc..
    Your help is rewarded with good points.
    Appreciate your help.
    Thanks.
    sravya.

    Hi VJ,
    Thank you for the immediate reply.
    one more thing, when i tried to change the occurences of   ztest_cust( rfc) to 0..unbound,
    I am not seeing the occurances updated in the imported rfc structure.
    The following is the wsdl for rfc, could you please help me to add occurances 0..unbound.
    Thanks a lot.
    sraya.
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:rfc="urn:sap-com:document:sap:rfc:functions" name="ZTEST_CUST" targetNamespace="urn:sap-com:document:sap:rfc:functions">
         <wsdl:documentation>
         test for mdm
         </wsdl:documentation>
         <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions">
                   <xsd:element name="ZTEST_CUST">
                        <xsd:complexType>
                             <xsd:all>
                                  <xsd:element name="CNAME" minOccurs="0">
                                       <xsd:simpleType>
                                            <xsd:restriction base="xsd:string">
                                                 <xsd:maxLength value="10" />
                                            </xsd:restriction>
                                       </xsd:simpleType>
                                  </xsd:element>
                                  <xsd:element name="CNO" minOccurs="0">
                                       <xsd:simpleType>
                                            <xsd:restriction base="xsd:string">
                                                 <xsd:maxLength value="10" />
                                            </xsd:restriction>
                                       </xsd:simpleType>
                                  </xsd:element>
                                  <xsd:element name="BANK" minOccurs="0">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="item" type="ZST_CUST" minOccurs="0" maxOccurs="unbounded" />
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:all>
                        </xsd:complexType>
                   </xsd:element>
                   <xsd:element name="ZTEST_CUST.Response">
                        <xsd:complexType>
                             <xsd:all>
                                  <xsd:element name="BANK" minOccurs="0">
                                       <xsd:complexType>
                                            <xsd:sequence>
                                                 <xsd:element name="item" type="ZST_CUST" minOccurs="0" maxOccurs="unbounded" />
                                            </xsd:sequence>
                                       </xsd:complexType>
                                  </xsd:element>
                             </xsd:all>
                        </xsd:complexType>
                   </xsd:element>
                   <xsd:complexType name="ZST_CUST">
                        <xsd:sequence>
                             <xsd:element name="CODE" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="60" />
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="NAME" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="60" />
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                             <xsd:element name="LOCATION" minOccurs="0">
                                  <xsd:simpleType>
                                       <xsd:restriction base="xsd:string">
                                            <xsd:maxLength value="60" />
                                       </xsd:restriction>
                                  </xsd:simpleType>
                             </xsd:element>
                        </xsd:sequence>
                   </xsd:complexType>
              </xsd:schema>
         </wsdl:types>
         <wsdl:message name="ZTEST_CUST.Input">
              <wsdl:part name="parameters" element="rfc:ZTEST_CUST" />
         </wsdl:message>
         <wsdl:message name="ZTEST_CUST.Output">
              <wsdl:part name="parameters" element="rfc:ZTEST_CUST.Response" />
         </wsdl:message>
         <wsdl:portType name="ZTEST_CUST.PortType">
              <wsdl:operation name="ZTEST_CUST">
                   <wsdl:input message="rfc:ZTEST_CUST.Input" />
                   <wsdl:output message="rfc:ZTEST_CUST.Output" />
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="ZTEST_CUST.SAPBinding" type="rfc:ZTEST_CUST.PortType">
              <rfc:binding style="rfc" />
              <rfc:type name="ZST_CUST">
                   <ifr:container xmlns:ifr="urn:sap-com:ifr:v2:metamodel" xmlns:xlink="http://www.w3.org/1999/xlink">
                        <ifr:descriptor>
                             <ifr:description language="EN">
                             test
                             </ifr:description>
                        </ifr:descriptor>
                        <ifr:properties>
                             <ifr:sourceSystem />
                             <ifr:sourceClient>
                             020
                             </ifr:sourceClient>
                             <ifr:release>
                             640
                             </ifr:release>
                             <ifr:category>
                             structure
                             </ifr:category>
                             <ifr:unicode1>
                             true
                             </ifr:unicode1>
                             <ifr:unicode2>
                             true
                             </ifr:unicode2>
                             <ifr:isFlatStructure>
                             true
                             </ifr:isFlatStructure>
                        </ifr:properties>
                        <ifr:definition>
                             <ifr:internalLength1>
                             180
                             </ifr:internalLength1>
                             <ifr:internalLength2>
                             360
                             </ifr:internalLength2>
                             <ifr:fields>
                                  <ifr:field name="CODE" category="simple">
                                       <ifr:descriptor />
                                       <ifr:properties>
                                            <ifr:helpValuesSupported>
                                            false
                                            </ifr:helpValuesSupported>
                                            <ifr:offset1>
                                            0
                                            </ifr:offset1>
                                            <ifr:offset2>
                                            0
                                            </ifr:offset2>
                                       </ifr:properties>
                                       <ifr:definition>
                                            <ifr:scalarType>
                                                 <ifr:definition>
                                                      <ifr:type>
                                                      CHAR
                                                      </ifr:type>
                                                      <ifr:abapType>
                                                      C
                                                      </ifr:abapType>
                                                      <ifr:length>
                                                      60
                                                      </ifr:length>
                                                      <ifr:internalLength1>
                                                      60
                                                      </ifr:internalLength1>
                                                      <ifr:internalLength2>
                                                      120
                                                      </ifr:internalLength2>
                                                      <ifr:decimals>
                                                      0
                                                      </ifr:decimals>
                                                 </ifr:definition>
                                            </ifr:scalarType>
                                       </ifr:definition>
                                  </ifr:field>
                                  <ifr:field name="NAME" category="simple">
                                       <ifr:descriptor />
                                       <ifr:properties>
                                            <ifr:helpValuesSupported>
                                            false
                                            </ifr:helpValuesSupported>
                                            <ifr:offset1>
                                            60
                                            </ifr:offset1>
                                            <ifr:offset2>
                                            120
                                            </ifr:offset2>
                                       </ifr:properties>
                                       <ifr:definition>
                                            <ifr:scalarType>
                                                 <ifr:definition>
                                                      <ifr:type>
                                                      CHAR
                                                      </ifr:type>
                                                      <ifr:abapType>
                                                      C
                                                      </ifr:abapType>
                                                      <ifr:length>
                                                      60
                                                      </ifr:length>
                                                      <ifr:internalLength1>
                                                      60
                                                      </ifr:internalLength1>
                                                      <ifr:internalLength2>
                                                      120
                                                      </ifr:internalLength2>
                                                      <ifr:decimals>
                                                      0
                                                      </ifr:decimals>
                                                 </ifr:definition>
                                            </ifr:scalarType>
                                       </ifr:definition>
                                  </ifr:field>
                                  <ifr:field name="LOCATION" category="simple">
                                       <ifr:descriptor />
                                       <ifr:properties>
                                            <ifr:helpValuesSupported>
                                            false
                                            </ifr:helpValuesSupported>
                                            <ifr:offset1>
                                            120
                                            </ifr:offset1>
                                            <ifr:offset2>
                                            240
                                            </ifr:offset2>
                                       </ifr:properties>
                                       <ifr:definition>
                                            <ifr:scalarType>
                                                 <ifr:definition>
                                                      <ifr:type>
                                                      CHAR
                                                      </ifr:type>
                                                      <ifr:abapType>
                                                      C
                                                      </ifr:abapType>
                                                      <ifr:length>
                                                      60
                                                      </ifr:length>
                                                      <ifr:internalLength1>
                                                      60
                                                      </ifr:internalLength1>
                                                      <ifr:internalLength2>
                                                      120
                                                      </ifr:internalLength2>
                                                      <ifr:decimals>
                                                      0
                                                      </ifr:decimals>
                                                 </ifr:definition>
                                            </ifr:scalarType>
                                       </ifr:definition>
                                  </ifr:field>
                             </ifr:fields>
                        </ifr:definition>
                   </ifr:container>
              </rfc:type>
              <wsdl:operation name="ZTEST_CUST">
                   <ifr:container xmlns:ifr="urn:sap-com:ifr:v2:metamodel" xmlns:xlink="http://www.w3.org/1999/xlink">
                        <ifr:descriptor>
                             <ifr:description language="EN">
                             test for mdm
                             </ifr:description>
                        </ifr:descriptor>
                        <ifr:properties>
                             <ifr:sourceSystem />
                             <ifr:sourceClient>
                             020
                             </ifr:sourceClient>
                             <ifr:release>
                             640
                             </ifr:release>
                             <ifr:package>
                             $TMP
                             </ifr:package>
                             <ifr:akhNode />
                             <ifr:released>
                             external
                             </ifr:released>
                             <ifr:outbound>
                             false
                             </ifr:outbound>
                             <ifr:synchronous>
                             true
                             </ifr:synchronous>
                             <ifr:asynchronous>
                             false
                             </ifr:asynchronous>
                             <ifr:unicode1>
                             true
                             </ifr:unicode1>
                             <ifr:unicode2>
                             true
                             </ifr:unicode2>
                        </ifr:properties>
                        <ifr:definition>
                             <ifr:parameters>
                                  <ifr:parameter name="CNAME">
                                       <ifr:descriptor>
                                            <ifr:description language="EN">
                                            Character Field Length = 10
                                            </ifr:description>
                                       </ifr:descriptor>
                                       <ifr:definition>
                                            <ifr:scalarType name="CHAR10">
                                                 <ifr:properties>
                                                      <ifr:helpValuesSupported>
                                                      false
                                                      </ifr:helpValuesSupported>
                                                      <ifr:fixedValuesListDefined>
                                                      false
                                                      </ifr:fixedValuesListDefined>
                                                      <ifr:mixedCaseSupported>
                                                      false
                                                      </ifr:mixedCaseSupported>
                                                      <ifr:signedNumber>
                                                      false
                                                      </ifr:signedNumber>
                                                 </ifr:properties>
                                                 <ifr:definition>
                                                      <ifr:type>
                                                      CHAR
                                                      </ifr:type>
                                                      <ifr:abapType>
                                                      C
                                                      </ifr:abapType>
                                                      <ifr:length>
                                                      10
                                                      </ifr:length>
                                                      <ifr:internalLength1>
                                                      10
                                                      </ifr:internalLength1>
                                                      <ifr:internalLength2>
                                                      20
                                                      </ifr:internalLength2>
                                                      <ifr:decimals>
                                                      0
                                                      </ifr:decimals>
                                                      <ifr:outputLength>
                                                      10
                                                      </ifr:outputLength>
                                                 </ifr:definition>
                                            </ifr:scalarType>
                                       </ifr:definition>
                                       <ifr:properties>
                                            <ifr:direction>
                                            in
                                            </ifr:direction>
                                            <ifr:class>
                                            import
                                            </ifr:class>
                                            <ifr:type>
                                            scalar
                                            </ifr:type>
                                            <ifr:optional>
                                            true
                                            </ifr:optional>
                                            <ifr:basedOnDictionaryReference>
                                            true
                                            </ifr:basedOnDictionaryReference>
                                       </ifr:properties>
                                  </ifr:parameter>
                                  <ifr:parameter name="CNO">
                                       <ifr:descriptor>
                                            <ifr:description language="EN">
                                            Character Field Length = 10
                                            </ifr:description>
                                       </ifr:descriptor>
                                       <ifr:definition>
                                            <ifr:scalarType name="CHAR10">
                                                 <ifr:properties>
                                                      <ifr:helpValuesSupported>
                                                      false
                                                      </ifr:helpValuesSupported>
                                                      <ifr:fixedValuesListDefined>
                                                      false
                                                      </ifr:fixedValuesListDefined>
                                                      <ifr:mixedCaseSupported>
                                                      false
                                                      </ifr:mixedCaseSupported>
                                                      <ifr:signedNumber>
                                                      false
                                                      </ifr:signedNumber>
                                                 </ifr:properties>
                                                 <ifr:definition>
                                                      <ifr:type>
                                                      CHAR
                                                      </ifr:type>
                                                      <ifr:abapType>
                                                      C
                                                      </ifr:abapType>
                                                      <ifr:length>
                                                      10
                                                      </ifr:length>
                                                      <ifr:internalLength1>
                                                      10
                                                      </ifr:internalLength1>
                                                      <ifr:internalLength2>
                                                      20
                                                      </ifr:internalLength2>
                                                      <ifr:decimals>
                                                      0
                                                      </ifr:decimals>
                                                      <ifr:outputLength>
                                                      10
                                                      </ifr:outputLength>
                                                 </ifr:definition>
                                            </ifr:scalarType>
                                       </ifr:definition>
                                       <ifr:properties>
                                            <ifr:direction>
                                            in
                                            </ifr:direction>
                                            <ifr:class>
                                            import
                                            </ifr:class>
                                            <ifr:type>
                                            scalar
                                            </ifr:type>
                                            <ifr:optional>
                                            true
                                            </ifr:optional>
                                            <ifr:basedOnDictionaryReference>
                                            true
                                            </ifr:basedOnDictionaryReference>
                                       </ifr:properties>
                                  </ifr:parameter>
                                  <ifr:parameter name="BANK">
                                       <ifr:descriptor>
                                            <ifr:description language="EN">
                                            test bank type
                                            </ifr:description>
                                       </ifr:descriptor>
                                       <ifr:definition>
                                            <ifr:complexType xmlns:xlink="http://www.w3.org/1999/xlink" name="ZST_CUST" type="structure" xlink:role="type" xlink:href="/Content?TYPE=type&amp;NAME=ZST_CUST" />
                                       </ifr:definition>
                                       <ifr:properties>
                                            <ifr:direction>
                                            inout
                                            </ifr:direction>
                                            <ifr:class>
                                            tables
                                            </ifr:class>
                                            <ifr:type>
                                            structure
                                            </ifr:type>
                                            <ifr:optional>
                                            true
                                            </ifr:optional>
                                            <ifr:basedOnDictionaryReference>
                                            true
                                            </ifr:basedOnDictionaryReference>
                                       </ifr:properties>
                                  </ifr:parameter>
                             </ifr:parameters>
                        </ifr:definition>
                   </ifr:container>
              </wsdl:operation>
         </wsdl:binding>
    </wsdl:definitions>

  • Blogg RFC scenario using BPM - starter kit (more detail on BPM required)

    I follow this blog to the letter - because it is the same as my scenario:
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    The problem is I have no experience with BPM. I have setup the Integration process as I think it should be but I get an error.
    Could one of you experts go through the BPM steps in more detail? Screen shots/details of the properties and containers on each step would be very useful. Thanks.

    Hi Lynn!!
    Check this SAP help for certain requirements when to use BPM:
    http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/11/13283fd0ca8443e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/ca/7c5c41fe06cf1ee10000000a155106/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e8/8e2d4233c8db2ce10000000a1550b0/content.htm
    Take a look at this blog by Michal,
    /people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm - Walk through BPM
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm - Schedule BPM
    /people/sriram.vasudevan3/blog/2005/01/11/demonstrating-use-of-synchronous-asynchronous-bridge-to-integrate-synchronous-and-asynchronous-systems-using-ccbpm-in-sap-xi - Use of Synch - Asynch bridge in BPM
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] - Use of Synch - Asynch bridge in BPM
    Check this weblog for a step by step procedure:
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    or case study go thru this blog:
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    for checklist:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3bf550d4-0201-0010-b2ae-8569d193124e
    Take a look at this blog for some very good guidelines on when to use BPM's and when not to use BPM,
    /people/swen.conrad/blog/2006/12/22/xi-ccbpm-performance-under-perform-or-out-perform
    Thanks !!
    Pls reward if useful

  • RFC Scenario using BPM

    I did whatever mentioned in that blog(/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit). Also I do have some experience in BPM.
    After testing I don't see the file inthe outbound directory. So I started analysing from all sides.
    1. First checked the message in my sxi_monitor, it black and white flag showed that the message processed successfully.
    2. I opened the message and saw the message from CENTRAL Client passed to PE ADAPTER Client with tooltip showing "Transfer to Process engine".
    1. First I checked whether my BPM is correct by pressing F7. There is no syntax error.
    2. I checked in sx_cache, the ReturnCode was 0.
    3. In smq2 I saw a message stuck in the PE queue. I double clicked the queue and saw the status text as "Permanent error in BPE inbound processing".  So I kept debugging by pressing F8 and after that the message got disappeared.
    4. I opened the message in sxi_monitor, and after the CENTRAL Client the message passed to PE ADAPTER, which measn the meesage has got transferred to process engine. But i'm not seeing any change in the file.
    5. Also what I      did was use transaction SXMB_MONI and chose process radio button and execute. Located my message but there is no task value which starts with 'WS..' in Process def column.
    Can you please pinpoint where i went wrong and anything else?
    One more thing, everytime i test the new file the file goes and gets stuck in the queue and I have got to follow the item 3 mentioned above.
    Thanks,

    Hi Kishore,  The second block is a synchronous send block in the BPM triggers the call to RFC.  I've done it as per the blog.  There is no transformation step in the BPM.  Anyway I fixed the issue. In the receive block whatever container value I used should be used in the send block also. Earlier I was getting some warning. Now my BPM is clean and it worked.
    Lesson learnt: Ensure there is no warning in the BPM. Thanks again Kishore.
    Thanks,
    Edited by: XISearch on Apr 29, 2011 5:20 AM
    Edited by: XISearch on Apr 29, 2011 5:24 AM
    Edited by: XISearch on Apr 29, 2011 5:24 AM
    Edited by: XISearch on Apr 29, 2011 5:25 AM

  • Asynchronous RFC call from R/3

    I need to make an asynchronous RFC call from R/3. I receive an error message in R/3 stating that my RFC destination can only be of type I (Internal) or type 3 (R/3 system). In order for it to reach XI I need it to be of type T (TCP/IP). Any help would be appreciated.
    Here is the function call.
    CALL FUNCTION 'Z_B2B_R3_FUNCTIONAL_ACK' starting new task 'SESSION1'
       destination 'RFC2XMBSERVICE'
          EXPORTING
               MSG_TYPE            = msg_type
               ORDER_HEADER_RETURN = order_header_return
          TABLES
               RETURNCODE          = i_return.
    the RFC desitnation RFC2XMBSERVICE is of type TCP/IP which by default makes it synchronous.
    Thanks,
    Jim

    hi,
    have you tried:
    CALL FUNCTION 'Z_B2B_R3_FUNCTIONAL_ACK'
    in background task
    destination 'RFC2XMBSERVICE'
    EXPORTING
    MSG_TYPE = msg_type
    ORDER_HEADER_RETURN = order_header_return
    TABLES
    RETURNCODE = i_return.
    commit work.
    Regards,
    michal

  • File-To-RFC without using BPM

    hey guys
    is a File-To-RFC scenario possible without using BPM? i have gone through the blog by Arpit Seth ( /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit ) but it uses BPM.
    i am new to XI and not very comfortable with BPM.
    please let me know if BPM is the only way out or are there some other methods too.
    Also under what circumstances one should use BPM?
    thanx in advance.
    aamir suhail

    Hi,
    it's a standard non BPM scenario
    (you can find many weblogs like this)
    the only different thing is the RFC signature import
    (inside repository)
    and the use of different channels (file and RFC)
    you can find many examples in my XI FAQ
    (document section)
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • File to RFC scenario using BPM : a synchronous one

    Hi All
    I am doing File>RFC>File scenario using BPM with help of the blog
    RFC Scenario using BPM --Starter Kit
    here everything is explained but i am getting error while the processing of BPM part
    Input file is being picked (this part is success) but rest BPM and response i am not getting back in .
    interface names
    filereq_MI >Filetoabstract_MI>Sync_MI>RFCtoabstract_MI>Fileres_MI
    (abstract means its an abstract interface)
    i have configuered the Integration process as follows
    Start>Recieve>synch_send>send>end
    step :  Recieve
    mode : asynch
    message:Filetoabstract_MI
    step :  synch_send
    mode : synch
    synch interface : synch_send
    req message:Filetoabstract_MI
    res message : RFCtoabstract_MI
    step :  send
    mode : asynch
    message:RFCtoabstract_MI
    and i have given interface mapping during second (synch_send) step but here mapping is giving problem its showing exception error during mapping
    error is there
    1) Integration process ---> file
    2) Integration process-->R/3 system

    Hi,
    Configure the Integration Engine According to this Blog and Trigger the Process again
    Configuration of a Central Integration Server
    Regards
    Seshagiri

  • RFC call through BPM

    Hi,
    Iam trying to build a scenario like this. WMQSeries->XI 3.0->SAP R/3--->WMQSeries.
    Can someone please tell me whether my approach is right or wrong.And the steps iam missing.WMQ>XIBPM>R/3>XIBPM>WMQ.
    Totally created 5 interfaces.
    MQ Request -->Refering to MQ Request Message Type
    MQ Response -->Refering to MQ Response Message Type
    BAPI_SYNC_ABS -->Refering BApI Request and Response
    BAPI_REQUEST_ABS -->Refering BAPI Request
    BAPI_RESPONSE_ABS.-->Refering BAPI response.Last 3 Abstract Interfaces created from the BAPI imported to XI.
    Created 2 Interface Mapping Between   MQ Request <> BAPI_REQUEST_ABS and BAPI_RESPONSE_ABS<>MQ Response.
    Created Integration Process with 3 steps(Async Receive, Syc Send to SAP, Asyc Send to WMQ) and
    created 2 container elements for hoding BAPI_REQUEST_ABS and BAPI_RESPONSE_ABS.
    In ID, created 2 service's of type business service one for sending&receiver of MQ Request&Response and second one for SAP system.
    Created 3 ReceiverDeterminations,3 Interface dterminations, 1 Sender Agreement and 2 Receiver Agreements.
    When i send the message from WQ, it goes through BPM well, after that iam getting error in Receiver determination.
    Can anyone please tell me when am doin worng??? I did go through the weblog /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    Navin

    Hi,
    we have the same requirment and run into the same problem.
    We stuck at the point where the response message from the
    RFC has to send back to MQ.
    It must link the conversation ID to the Response message.
    There we need the possibility to set the ConversationID
    into the response message. The ConversationID is taken
    from the Request Message.
    The problem is how to set the field ConversationID or
    RefToMsgID in the Mapping or BPM. Could it be done via
    Java or ABAP-Maping?
    Is the header field only readable and can not be set
    in the mapping? Maybe somebody have ane idea or a solution.
    thanks,
    Ly-Na Phu

  • Help SOAP to RFC Scenario using BPM (Synchronous communication)

    Hi,
    I am doing a scenario from SOAP to RFC scenario(Synchronous communication).  Here I am creating a PM Notification in the SAP system through a webservice. 
    I am using three BAPI'S here,
    1. BAPI_ALM_NOTIF_CREATE 
    2. BAPI_ALM_NOTIF_SAVE
    3. BAPI_TRANSACTION_COMMIT
    I am successful in calling the first BAPI from the Web Service.  For this I have not used BPM.  But to commit the transaction(PM notification in this case), I have to execute the other two BAPI's as well.  I have to pass the output of first BAPI to the second BAPI and then execute the 2nd BAPI.  And finally have to execute the 3rd BAPI.     FYI, 3rd BAPI is not dependent on any output.  It has to be executed independently after execution of the first two BAPI's.
    How can I execute this scenario?  Do I have  to use BPM?  If yes please let me know the steps in detail.  I have not done any BPM scenario till now.  So please answer me in detail.
    Thanks in Advance,
    Vijay
    p.s. reward points are must

    Hi Vijay,
    Yes, You will indeed need a BPM in this case...
    Based on my understanding of the Scenario u have explained, here are the steps that would be needed.
    1. Receive With the Sync-Async Bridge open.
    2. Transformation Step (Between the source Request and The BAPI_ALM_NOTIF_CREATE Request)
    3. Send Synchronous
    4. Fork
    5. In one Branch of the fork - Transformation (Between the BAPI_ALM_NOTIF_CREATE Response and API_ALM_NOTIF_SAVE Request)
    6. In the other branch of the fork - Transformation (Between a Dummy Source and the BAPI_TRANSACTION_COMMIT Request)
    7. Send Synchronous (to make the 2nd BAPI Call)
    6. Transformation ( BAPI_ALM_NOTIF_SAVE Response and the source Response)
    7. Send Asynchronous (to make the 3rd BAPI call)
    8. Send the Source Response and close the Sync-Async Bridge.
    There might be alternative ways also of doing it...
    Also a better design would be to take care of the 2nd and the 3rd BAPI call within the code of the 1st RFC Function Module.
    Regards,
    Abhy Thomas

  • MessageExpiredException error in JDBC - RFC scenario using BPM.

    <b>Scenario:</b> JDBC( Asynch)- RFC( Synch)- JDBC (Asyc)
          We are using XI to read oracle table records to insert the records in R/3 and after the insert in R/3 we return a sap code to update in oracle db.
    When we try to process 10 or less rows from db, the process is successfully running, but when we try processing more records we are getting the following error. We tried increase the timeout setting in RFC adapter as per the SAP note and forum. 
    <u>Detailed error: </u>
    <b>com.sap.aii.af.ra.ms.api.MessageExpiredException: Message 443jdjsd-e432-2ec8-e100-000046eb2e5f(INBOUND) expired.</b>
    If I use correlation in asynchronous RFC instead of synchronous RFC, will this solve the problem or is there any better solution for this ?
    Any useful steps to change the synchronous RFC to asynchronous RFC in BPM would be great.
    Thanks
    Steve

    Hi,
    <i>1. Any suggestions to meet this requirement in XI ?</i>
    >>>One option is using ABAP Proxy . Instead of calling Sync. RFC, call synchronous Proxy. So your client proxy, should receive all 200-300 rows at a time, and inside the proxy, and call the RFC. Once all the reocrds are processed, send the response back to BPM
    You can try out this.
    I think, probably you may require to do looping for each Row.i.e For each row the call the RFC.. As of now try to go with Proxy.
    Also try to findout, why the RFC is taking that much of time.. So check for the provision of  tuning in the RFC side..
    Hope this helps,
    regards,
    Moorthy
    Message was edited by: Krishna Moorthy P

  • It is possible to get a response of a asynchronous RFC call thru wait loop

    Hi Experts,
    The requirement is that i queue up all the requests from a web services ( One queue per plant for example) which i set in the HTTP sender URL ( i mean the queue name ). and i am posting the records thru a RFC call.
    1. Let the RFC call be synchronous and in case the R/3 system is done.. Will the XI queue keep the Call and keep on retrying it till the R/3 system is up.
    2. Otherwise if the RFC call be asynchronous, is it possible to introduce a wait loop in BPM to listen to the RFC till i get some response ( i think this is not possible).
    Need your suggestion on the same...
    The requirement demands that no single request from the web service should be lost.. in case of failure of R/3 they should be queued up and re tried.. Forget about the error because of exception in RFC this will be taken care manually..
    Thanks for your response in advance.

    Hi Rajesh,
    you can queue and restart only asynchronous messages. I think you can build a Business Process, where you repeat sending a message til you have success or maximum number of tries is reached. But no good idea, coz you will get timeout at HTTP sender. Aynchronous messages dont have a response.
    May be, XI can solve your task in the standard: In transaction SMQR you can just configure what you describe. All asynchronous messages will be queued and restartet in case of receiver not reachable. You can configure no of retries and intervall between.
    Regards,
    Udo

  • File to RFC Multiline using BPM

    Hi Experts,
    I am working on File To RFC Multiple Records using BPM. I am getting the below error. When i am activating Integration Process. I got the error as Element should not return Multiline Value. So i have changed the Message Mapping Occurance in Signature Tab to O to Unbounded. I am getting the below error in SXMB_MONI. Please check and guide me how to proceed further.
    Regards,
    GIRIDHAR
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--
    Call Adapter
    --> 
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand=""> 
    <SAP:Category>XIAdapter</SAP:Category>  
    <SAP:Code area="BPE_ADAPTER">UNKNOWN_MESSAGE</SAP:Code>  
    <SAP:P1 />  
    <SAP:P2 />  
    <SAP:P3 />  
    <SAP:P4 />  
    <SAP:AdditionalText />  
    <SAP:Stack>No object type found for the message. Check that the corresponding process is activated</SAP:Stack>  
    <SAP:Retry>M</SAP:Retry>  
    </SAP:Error>

    Hi Giridhar,
    Check below thread:
    BPE_ADAPTER UNKNOWN_MESSAGE
    Regards,
    Krupa

  • Dynamic queue selection with Asynchronous RFC call

    Hi Experts,
    I have a new requirement in designing the business process thru XI. The scenario is posting production orders from a web service thru XI to R3 ( RFC calls). The requirement is that the production orders may come from different plant (Plant and production line combination). So in order to faciliate the load balancing we need to dynamically allot all the process orders from a Plant to single or two queues ( by queues i mean the queuing of the RFC requests with QoS = EO or EOIO). So dynamic selection of queues (XBIXnn) is possible in XI ?.
    Please let me know in case you need further clarification on this
    Thanks in advance

    Rajesh,
    Some more interesting read from,
    http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm
    <i>Define Quality of Service (EOIO)
           8.      Specify EOIO (Exactly Once in Order) as the quality of service, as required.
    Messages are then delivered in the same sequence that they are sent in by the integration process.
                                a.      Specify a queue in the Queue Name field.
    You can choose the name of the queue yourself.
    Max. length: 16 characters
    Permitted characters are alphanumeric characters and the following special characters:
    / (slash)
    _ (underscore)
    - (hyphen)
    All send steps that have the same queue name are delivered in the sequence that they are sent in by the integration process.</i> 
    Should be possible if you use a BPM.
    Regards
    Bhavesh

  • RFC Scenario using BPM -- Performance

    Greetings,
      I've implemented a File->XI->RFC->XI->File scenario.
    I use a BPM which transforms the lines of my inbound file into multiple sales orders & line items, then loops through them in a ForEach block to call an RFC and then output the RFC's return structure to a file.
      It takes about an hour for a thousand sales orders to go through & get created.
    That really doesn't sound so bad to me except for the fact that there is a good probability that I will occasionally be receiving files containing up to 10,000 sales orders.
      Could anyone with experience with this type of XI processing please suggest any performance enhancements that have provided results.
    Thanks,
      Doug -

    Hi Doug,
    For effectively using BPM, plz have a look at this checklist
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3bf550d4-0201-0010-b2ae-8569d193124e
    An add on
    http://help.sap.com/saphelp_nw04/helpdata/en/43/d92e428819da2ce10000000a1550b0/content.htm
    1 Mapping inside a BPM could affect performance. If u have transformation step in ur Integration Process, then try to perform this mapping outside BPM. It will greatly improve the performance if mapping is complex.
    2. Reduce Tracing - parameter: LOGGING in SXMB_ADM
    Have a look here
    SAP note 857530
    And monitoring all these is always required
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e7bc3a5a-0501-0010-1095-eb47159e169c
    Regards,
    Prateek

Maybe you are looking for

  • Elements Error 150:30

    I am running Photoshop elements 8 on windows 7 It has been fine for a very long time, Now when I boot it up it gives me the error 150:30 I have tried uninstalling and re installing to no avail. Can anyone help me get this resolved ? Thanks

  • Reg : Using ABAP OO in Workflow

    Hi All, I have very simple question and this is the place where I am still lacking in workflow? 1. How do I identify when to use ABAP class and when to use BOR in workflow? 2. How do I identify which class to be used? Do we have any similar to BOR (S

  • Inconsistent selection behavior when deleting files in Cover Flow

    I love browsing through my pictures folder using Cover Flow. However, I've noticed that deleting a file by pressing Cmd-Delete produces inconsistent selection results. Sometimes Finder will select the next file down the list, and sometimes it will se

  • Dbus session not starting up [solved]

    hi there! installed a clean arch system with gnome.... then I use "exec dbus-launch --exit-with-session /opt/gnome/bin/gnome-session" in my .xinitrc but dbus doesn't work I mean, it DOES start up, but it doesn't create any entry in the /tmp directory

  • How to install c++ in Mac

    how can i install c++ in my macbook pro??