BPM - 2 Transformation Steps

Hi,
I have created a BPM which is very similar to the BPMPatternCollectTime design. The only difference is that I have 2 Transformation Steps. Now I gave one step in the Interface Determination Step of the IP->Receiver Config. What should I do with the next Transformation step? If I give the Operation Mapping in the second line of Interface Determination Step it gave me an error when I executed the scenario. Any help in this regard is highly appreciated.
Thanks,
Geetha

Hi All,
My issues is resolved.
Thanks,
Geetha

Similar Messages

  • BPM Collect Transformation Step Raise Alert need help

    Hi,
    Scenario BPM Collect.
    Block 1 - Multiple xml messages received and collected into multiline container.
    Block 2 - Transform multiline container element into single message. Mapping Error throw Transformation Exception.
    Block 2:Exception Branch - Transform multiline container element to error multiline container element (based on BpmPatternReqRespTimeOut with a twist).
    Block 2:Exception Branch - Send multiline container element to Communication Channel for further error analysis.
    Block 2:Exception Branch - Throw Alert BPM_ALERT Transformation Failure message.
    Getting Compilation errors because I am not allowed to output a multiline container element...?
    Behaviour without the Exception Branch Transform and Send is that the first message collected in the ccBPM goes to Green Flag and the others goto chequered flag when the BPM_ALERT is thrown. This is not desirable behaviour.
    Would like to output multiple line container element so I easily know which group of messages failed ie file 1,2,3... so that I can go to the Error folder and repost them in the Sender Communication Channel if required.
    Once this is working I am trying to identify which file had the conversion problem so I can filter if out from the others and process the others attempting to pass information from a UDF as to which item in the multiline container element I reached before I had a problem int he original mapping...?
    I have read Michal Krawcyzk's blog on ALERT variables and Help on Throwing Alerts etc but I am progressing slowly with my solution...
    thanks,
    V

    Thankyou Chirag for those Blogs.
    The first is the one I have looked at most recently and the second has given me an idea.
    If I change my mapping of the multiline container element each line holds an xml message to the error element by calling a UDF to map the payload across then at least I would have output my Payload that errored? I will try it and see Java coding is not my forte currently.
    thanks,
    V

  • Exception is not showing in transformation step in BPM after activating

    Hi ,
    I want to cancel the process if any mapping error occur in transformation step for that I designed by below steps.
    1.Block step ( mentioned exeption)
    2. transformation step ( Inside block mentioned block step exception)
    3. exception branc inside block
    4. contorl step (Cancel process inside exception branch)
    after activating the BPM , in transformation step exception is not showing .
    How to resolve this issue how
    Please help me
    Regards

    2. transformation step ( Inside block mentioned block step exception)
    Did you define the Exception Handler properly and also used the same in the Exception Branch? If you do a check in IR for your BPM (F7) do you get any error/ warning messages?
    Regards,
    Abhishek.

  • Expression must return the interface type in Transformation Step in BPM

    hi,
    We are getting below while activating the IP,
    Expression must return the interface type SI_Send_AA
    Expression must return the interface type SI_Get_AA
    No semantic errors found
    We have a Transformation Step in BPM,
    In OM, Source is SI_Send_AA and Target is SI_Get_AA
    Also Container variable points to  the same Abstract SI's.
    Few Thread's for Same are error are:
    Error in  BPM
    expression must return the interface type
    Transformation step in ccBPM scenario
    Error while compiling Business Process
    Even after checking these i am getting this Exception.
    Please Help!
    Thanks,
    Mayank

    Also Container variable points to the same Abstract SI's
    Are you sure that you are using Abstract Message Interfaces only and that these are referring to relevant container variables.
    Normally it happens that there is some mis-match between the message types/ interfaces that we use in the mapping and that we use in the BPM.
    If still not solved, then delete the Transformation step --> save --> activate......then again Edit the BPM to include the Transformation Step.
    Regards,
    Abhishek.

  • Error in Transformation step of BPM

    Hi all,
    In BPM, I have defined a transformation step. For this, I have specified the Interface mapping which is between 2 abstract asynchronous interfaces. The Message Mapping for this Interface mapping involves multi-mapping (1:n) of the messages used.
    Also, for naming convenience, I have kept the names of the abstract async interface and its message type same.
    I have created containers for the message types of the both interfaces. The container for target message is of type 'multi-line'.
    When I checked the integration process, errors (red boxes) appear for both - the source and target messages in the transformation step properties window. The error text says <b>"Expression must return the interface type < Name of abstract message interface >"</b>
    What could be the cause of this error ?
    Any help would be appreciated.
    Thanks in advance.
    -Shankar

    Hi Shankar,
    Are you splitting the messages i.e 1 message into N messages ? If so, do  you have multiple message types in the Message Mapping in the target side ?
    Anyway, just recheck the Abstract Interfaces are activated. And reassign the container variables with Source message Absract Interfaces and Target message Abstract Interfaces.
    The error tells that, there is somewhere occurence problem.. So that is mismatch with the Message Interfaces..because you have selected the Multiline in the COntainers right ? Check without that..if it is ok, to narrow down the debugging..
    Regards,
    moorthy
    Regards,
    Moorthy

  • Multiple source messages in transformation step in bpm

    Hello,
    I am using a transformation step in bpm, I have two source messages and 1 target message, I got an error 'expression must return the interface type XXXX(in source message)', I checked my source message in interface mapping and the container element, the types do match.
    All the interfaces in the OM as well as in the bpm container definition are of type abstract.
    It seems to have something to do with the interfaces belonging to different software components?
    I declared a usage dependency from one swcv (holding the bpm) to another (holding the abstract interfaces which cause the error in the transformation step), so that I can reference them in the bpm.
    I thought it might have something to do on how  the message interfaces are selected in the operation mapping. so I tried to select the messages through the depencency path, but that was of no help either.
    Have I been clear?
    Any ideas?
    Thanks
    Matthias

    Since no receiver information is available in the transformation step, there can be no value mapping within the transformation  step. If the messages to be transformed give values in different formats, for example different date formats, you must first normalize the values before the messages can be processed in the process. To do so, define a message mapping with a corresponding value mapping.
    Check the help page below for reference
    http://help.sap.com/saphelp_nwpi71/helpdata/en/27/db283fd0ca8443e10000000a114084/content.htm

  • BPM problem: mapping in a transformation step

    Hello,
    In my current BPM scenario....
    1)I created the interfaces below for the Receive step (receives MT_Request):
    -MI_async_BPM
    -MI_async_abstract
    2)Then I created the interface and mapping for the transformation step:
    -MI_JDBC_async_abstract
    MM(MT_Request to MT_Request2)
    IM(MI_async_abstract to MI_JDBC_async_abstract)
    3)Then I created the interface and mapping for the Send step:
    -MI_JDBC_async_in
    MM(MT_Request2 to MT_DB_Insert)
    IM(MI_JDBC_async_abstract to MI_JDBC_async_in)
    Problem:
    However, after I executed the scneario, it appeared the step 2) didn't go through correctly(error message:<b>NO_RECEIVER_CASE_ASYNC</b>).  Did I set up the configuration wrong in Integration Process?
    Also, I went back to ID to create a Receiver Determination for step 2) (thought this may clear the problem), but in the Sender tab of Integration Process object, MI_async_abstract was not in there.  Please give me a hand on this problem.  Thanks.
    Regards,
    Steve
    Message was edited by: steve peng
    Message was edited by: steve peng

    Hi Steve,
    Below is the explanation for correlation by Anand Torgal which i think will be helpful to u....
    To explain you the correlation in simple terms...take a simple example of BPM with a send step(async request) and receive step(async response). I am sending a PO request using the send step and waiting for a PO response using the recieve step. Assume that i have two instances of this BPM running i.e two PO request's going simultaneously. when i get the response back for these two requests , there will be two recieve steps waiting for the response since there are two instances of BPM running. the response need to be assigned the corresponding requests. This is where correlation comes into picture. I can use PO number as my correlation field. i.e I activate my correlation in the send step and use this correlation in receive step (this is configurable in BPM).
    Example: PO number needs to be part both request and the response message structure.
    BPM instance1:
    send step -> activate correlation -> send message with PO Number1
    Receive step -> use correlation -> receive response message with PO Number 1.
    BPM instance1:
    send step -> activate correlation -> send message with PO Number2
    Receive step -> use correlation -> receive response message with PO Number 2.
    There are many different scenario's whre you can use the correlation..this is one of them...The weblog shows another way of using correlation.
    Also Refer SAP help...
    Correlating Messages
    Use
    You use a correlation to assign messages that belong together to the same process instance. A correlation joins messages that have the same value for one or more XML elements. A correlation is therefore a loose coupling of messages: at design time, it enables you to define which message a receive step must wait for, without knowing the message ID.
    For example, in a process, receivestep_1receives the message purchaseorder, while receivestep_2receives the message salesorder. Receivestep_1creates a correlation that defines that the corresponding sales order must have the same purchase order number. Receivestep_2uses this correlation. This means that an instance of the process processes a purchase order and the corresponding sales order, which has the same purchase order number.
    If it satisfies the relevant correlations, a message can be processed in multiple processes. However, a message is only delivered once per process.
    http://help.sap.com/saphelp_nw04/helpdata/en/a5/64373f7853494fe10000000a114084/content.htm
    Regards,
    Abhy

  • BPM Error in Transformation Step: Interface Mapping not found

    Hi,
    Can you help me on this? I have a tranformation step in my BPM that combines a request and response message of a previous Send step to create a Source message for the next Send step. However, on my transformation step, I got the mapping error in workflow log: Interface mapping http://gl.euhreka.com/learning/skillsoft/catalogSy.YGLXI_OM_MergeRequestAndHandleResponseAB_To_PollFo (SWCV=DF8549309ECE11DFB58DF3570A341E0F) not found
    Do you have any idea about this error? My mapping program is working fine. I also checked if the container elements assigned to the transformation steps are correct. 
    Can you suggest of other way on how can I achieve on merging 2 messages (request and response) and set it to the Request for another send step?
    Thanks,
    Jenny

    Hello,
    I already solved the problem. The namespace and Operation mapping name is too long that's why it cannot be located at runtime.
    After the rename, another error appeared.
    "Incorrect XML format after mapping: Root-Tag expected instead of Messages"
    There are no useful information on the trace:
      <?xml version="1.0" encoding="utf-8" ?>
    - <MappingTrace>
      <Trace level="1" type="T">Mapping http://test YGLXI_OM_Merge , Software Component Version DF8549309ECE11DFB58DF3570A341E0F</Trace>
      <Trace level="1" type="T">Mapping Step 1 , Type XSLT , Program PollForReport_Merge</Trace>
      <Trace level="2" type="T">Call XSLT processor with stylsheet PollForReport_Merge.xsl.</Trace>
      <Trace level="2" type="T">Returned form XSLT processor.</Trace>
      </MappingTrace>
    Here is myXSLT program:
    <?xml version='1.0' encoding='utf-8' ?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  >
         <xsl:template match="/">
              <YGLXI_MT_PollForReportRequest>
                   <customerID>
                        <xsl:value-of select="//customerID"/>
                   </customerID>
                   <customerPassword>
                        <xsl:value-of select="//customerPassword"/>
                   </customerPassword>
                   <reportIDHandle>
                        <xsl:value-of select="//reportHandle"/>
                   </reportIDHandle>
              </YGLXI_MT_PollForReportRequest>
         </xsl:template>
    Here is my source message:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
       <ns0:Message1>
          <ns1:YGLXI_MT_InitiateFullCourseListingRequest xmlns:ns1="http://gl.euhreka.com/learning/skillsoft/catalogSynchronization">
             <customerID>ZZZ</customerID>
             <customerPassword>XXX</customerPassword>
             <reportFormat>VVV</reportFormat>
             <mode>VCC</mode>
             <userName>CC</userName>
          </ns1:YGLXI_MT_InitiateFullCourseListingRequest>
       </ns0:Message1>
       <ns0:Message2>
          <ns1:YGLXI_MT_InitiateFullCourseListingResponse xmlns:ns1="http://gl.euhreka.com/learning/skillsoft/catalogSynchronization">
             <reportHandle>SADA</reportHandle>
          </ns1:YGLXI_MT_InitiateFullCourseListingResponse>
       </ns0:Message2>
    </ns0:Messages>
    I tested my program in Operation mapping and it is working. How come it is not in BPM?
    Thanks,
    Jenny

  • Handling Java Mapping Exception in BPM Transformation step

    Dear SDN members,
    I have developed a File to File scenario using BPM as follows.
    Step 1:
    Sender file adapter picks the file from FTP server and using file content conversion mapped to XML structure.
    Step 2:
    BPM will recieve the XML payload , immediately in the block a transformation step is called with an interface mapping. In the interface mapping a Java mapping will be executed with certain data validations on the XML payload. If found any invalid data is there a suitable excptions will be raised . Here the transformation step should be catch the error and control should be sent to exception block to place the recived file as a error file.
    else if the transformation is executed with out any issues, the file will be placed in success folder.
    But in the transformation step, though java mapping thorwing exceptions, the control not going into exception block, instead it is continuing to next step i.e the file is placing in the success folder.
    Can anybody tell me, how to handle the exceptions raised in java mapping in the BPM transformation step?
    I have refered all the SDN blogs, forums related to this issue, but could not able to find the answer. Please help me?
    Thanks & Regards
    Vijayanand Poreddy

    Hi Abhishek,
    Once the file is picked from FTP server then sent to BPM,
    the BPM steps
    Step1:
    -->Recive
    Step 2:
    Block Starts
       ---Block Start: New Transaction
       ---Block End : New Transaction
       ---Exception : Error
    Step 3 
    Inside the Block
    Transformation Step
       --Interface Mapping: <IM Name>
       -- Check box ticked for Create New Transcation
       -- Exceptions
          --System Error: Error
       --Source Message: Message recieved in Recieve Step (Step 1)
    Step 4:
      --Send
      --Source Maessage: Output message from the Transformation Step
    Block End
    Inserted a Exception Branch for Block
    Steps inside Exception Branch
      -Control
        --Throw Alert
       --Alert Name
    In the above scenario
    The transformation step is not throwing error even my interface mapping going to error. The same transformation step if i place outside the block next to recieve step, then the transformation step is throwing error and BPM stops the process.
    Also, when transformation is inside the block, i have used the exception handling on the send step inside the block. here it is throwing error as the source message payload is empty. because in the preceding transformation step the interface mapping is failed due to which there the target will not be filled. But even though it is not entered into exception block.
    Regards
    Vijayanand Poreddy

  • ** Transformation step - 1:n mapping error - BPM

    Hi friends,
    In my BPM transformation step I am doing 1:n mapping. I created & tested the message mapping and Interface mapping for this. Its working fine there. But, while I put the payload, the message is not splitted. Instead only the first message is splitted.
    Source Payload
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:PurchaseOrder xmlns:ns0="http://www.XYZ.com/ABCD/SDFunctions">
    <row>
    <PONO>5005</PONO>
    <PODATE>2008-06-09</PODATE>
    <VENDOR_CODE>0000100614</VENDOR_CODE>
    <REFERENCE>PENA</REFERENCE>
    <MATERIAL_CODE>100-00</MATERIAL_CODE>
    <ORDER_QTY>1</ORDER_QTY>
    </row>
    <row>
    <PONO>5006</PONO>
    <PODATE>2008-06-09</PODATE>
    <VENDOR_CODE>0000100614</VENDOR_CODE>
    <REFERENCE>PENA-1</REFERENCE>
    <MATERIAL_CODE>100-100</MATERIAL_CODE>
    <ORDER_QTY>4</ORDER_QTY>
    </row>
    </ns0:PurchaseOrder>
    But, only the message is splitted comes in SXMB_MONI with the following error.
    HTTP response contains status code 500 with the description Timeout Error while sending by HTTP (error code: 500, error text: Timeout)</
    What could be the problem ? Why second message is not splitted. Is it required to add any Receiver Determination step in ID ?
    Kindly tell me, friends.
    Thanking you.
    Kind Regards,
    Jeg P.

    Hi friends,
    I have corrected Message Mapping and Interface Mapping. If I send 2 message (source), I will get only 1 message in the target side. (after transformation)
    In my BPM design, after 'Transformation' step, one block is there, I set property Mode as 'For Each', and I set Multiline Element.
    Now, the 500 Internal Server problem has gone. But, why the 2nd message is not entered into block ?

  • Alert for BPM Transformation Step

    Hi I am trying to think of a way to get the information from my alert transformation step into my Alert Message.
    The scenario is a multiline container called XML_Collect mapping to XML_Output a single container with the XML messages merged.
    If I encounter an error with mapping, currently I am raising an Alert with Process <Process ID> and Long Text Transformation Failure.
    I have the Transform step in a Block and an exception branch for the Alert. I am going to instigate a Container Operation step to fill my Container variables with information about the error.
    In the BPM Workflow Log I can see the Transformation1 Container Instance with variables such a MAPPING and MESSAGES_IN and _EXCEPTIONS in it.
    Can I reference this container in my Container Operation.
    Ideally I would like to know which XML message from the multiline container generated the mapping error. This would help in correcting.
    I have read some information on a UDF calling Alerts but I am not sure if this is the method to use.
    thanks,

    It is MESSAGES_IN
    We have
    MAPPING MAPPING http://<company>.com/msghdr IM_T_MSGHDR_V3_to_T_MSGHDR_V3_Multi-<...>-1-
    TRACE <?xml version="1.0" encoding="utf-8" ?>
    <MappingTrace><Trace level="1" type="T">Mapping-Namespace:http://company.com/msghdr </Trace>
    <Trace level="1" type="T">Mapping-Name:IM_T_MSGHDR_V3_to_T_MSGHDR_V3_Multi </Trace>
    <Trace level="1" type="T">Mapping- ...
    This trace is what appears in the XML trace also
    MESSAGES_IN MESSAGES_IN < 1 Entry >
      MESSAGES_IN[1] MESSAGES_IN[1] 0000000001-<...>
        NUMB Parameter ID 0000000001
        MESSAGES MESSAGES < 3 Entries >
    XC     ZXI_PROXY_MI_MSGHDR_V3_0001     E0630F307D7B11DCA23700145E6916E5
    XC     ZXI_PROXY_MI_MSGHDR_V3_0001     E035BDA07D7B11DCB90500145E6916E5
    XC     ZXI_PROXY_MI_MSGHDR_V3_0001     BA2A92307D7511DCB09900145E6916E5
    then the XML Header and Payload.
    _EXCEPTIONS _EXCEPTIONS < 3 Entries >
    _EXCEPTIONS[1] EXCEPTIONS[1] Component MAPPING has reported an error-The exception occurred (program: CLSW..
    _EXCEPTIONS[2] EXCEPTIONS[2] com/sap/xi/tf/MM_T_MSGHDR_V3_to_T_MSGHDR_V3_Mult~com.sap.aii.utilxi.misc.api...
    I have just tried the variable &_WORKITEM.WORKITEMID& and this gives the work item ID of the starting step for the Process.
    My MESSAGE_ID variable that I am updating with the container variable straight after the Transformation step has the first message id from the multiline container but I know this isn't my incorrect message.

  • Accessing Transformation Step Input in a BPM from SXMB_MONI

    Hi,
    <u><b>Environment : PI - SPS 09</b></u>
    I am trying to access the Inbound Payload of my Transformation step of BPM. I am able to navigate to the "MESSAGESIN" container , but, when I try to access the same, I get the message "Nested Table can be accessed from the Context Menu".
    I have perviously been able to access the payload from MONI as shown in Michal's blog <a href="/people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios">How to test your mapping (in real life scenarios)</a> , but the navigation window and display seem to have changed from PI SP 9. Any idea as to what I am missing here and how I can view the payload?
    Regards
    Bhavesh

    Issue resolved.
    Double Click on the step type,Right Click on the "Message"  Button in the Display Work Item Window --> Container --> and then you can access the payload as shown in Michal's blog.
    Regards
    Bhavesh

  • BPM Idoc collection without transformation step

    Hello
    I have a simple scenario of outbound invoice idocs. The tricky thing now is that I want to collect them within a BPM process.
    The BPM is basically working as long as I have a transformation step before the sending wich transforms from a multiline idoc to a "non-multiline" file.
    My problem is that I don't want to put a mapping in the BPM, because depending on the values in the idoc I need to run different mappings.
    What I really want to do is to send back the collected files to the IE and process them with separate receiver determination per receiver.
    In this way I would only need 1 BPM and the configuration is done in the directory.
    Problem is already that I can't specify a multiline message in the sending step - not allowed.
    Anyone with a similar scenario who can help? I'm not sure what the receiverDetermination step does in a BPM, could this solve my issue?
    thanks
    David

    Hello
    I tried the ForEach block, but now the BPM is first collecting the idocs and sends them out individually in the send step.
    I've never used the forEach before, so the chance is good I made something wrong.
    After collecting I'm running
    1. Block - forEach
    - MultiLineElement = collected idocs
    - CurrentLine = wasn't sure, used abstract interface of the single idoc
    - local correlation = same correlation than in the collecting step
    2. Sending (inside block)
    - message = single idoc
    - Receiver from = send context
    - Conversation ID = I've choosen an Xpath expression
    - correlation = same than for collecting
    What I'm missing here as well is how to diferenciate the idocs I send back to the IE in the receiver determination since all come from the same service with the same interface? That's why I tried to set te Conversation ID, but it didn't appear anywhere in the XML trace.
    any idea?
    thx!

  • BPM - Transformation Step

    In one of our BPM scenarios, while defining
    <b>Transformation</b> step.
    I have defined the interface mapping in IR. After refering the interface mapping from IR, the source and target messages are read from the interface mapping.
    the values for both source and target messages are empty.
    Should the values be given here or are they read during runtime.
    -Naveen.

    Hi Julio,
    BPM understands only abstract interface. So you will have to define a abstract interface for each message going into BPM and inbound interface going out of BPM.
    Also you can only declare asynchronous abstarct interface as the container elements. So no synchronous abstract interfaces can be defined as container element.
    So in your case you will need following interfaces:
    In case your scenario is IDOC -->  XI  -->  RFC.
    You will need:
    1) IDOC_Outbound_Aysnc
    2) IDOC_Abstract_Aync
    3) RFC_Inbound_Sync
    4) RFC_Abstract_Sync (This for sunchronous send to RFC system)
    5) RFC_Abstract_Request (This is to be used as target message in Interface mapping step in BPM)
    6) RFC-Abstract_Response
    In your transformation step the mapping would be between IDOC_Abstract_Aync and RFC_Abstract_Request  as only abstract asynchronous messages can be used in the scenario. Then the send sync will send the message sync to rfc system and the response can again be used further in BPM only in abs_async mode.
    Hope this helps.
    Regards,
    Ashish

  • BPM Transformation Step Failed

    Hi All,
    We have a scenerio-1 developed where we use the BPM. I have tranforted the Scenerio-1 from Development system to the QA system. The scenerio is based on FILE TO FILE using BPM. I have process the file after the transport and found that the scenerio works fine.
    Now, i have deleted one perticular MT/DT/ from scenerio-2  but this is used by the scenerio-1. Now i have reimport all the objects in Scenerio-2/Scenerio-1 and everything looks smiliar.
    Now when i am trying to process one file by Scenerio-1 the message process without performing the transformation steps.
    In BPM i have te following steps..
    1= Receive the messages.
    2= Loop to receive next message
    3= Append the messages in a container.
    4=Transform the message to three other messages.
        a. One with -ve items
        b. One with +ve items.
        c. one with control details.
    5= Send the messages through sends steps.
    Adding to the above condition, i have also cehcked the testing of MM at IR which is sucessful.
    NOW WHEN I AM TRYING TO PROCESS ONE FILE IT FAILED IN THE TRANSFORMATION STEP AND THE MESSAGE GET PROCESSED WITHOUT ANY BRANCHING..
    Can anyone guide me how can i check the exact error in the complete process.
    Thanks,
    Jay

    If your BPM is syntactically correct then you need to check the properties of each step in the flow properly.
    As you mentioned that you have copied  objects ,pls make sure the name spaces are mentioned correctly.
    check your configuration also
    refer toublesooting guide if it helps
    http://wiki.sdn.sap.com/wiki/display/BPMT/BPMTroubleshootingGuide
    Regards,
    Srinivas

Maybe you are looking for