Transformation step in ccBPM scenario

Hi There,
I have a scenario like this:
File -> ccBPM -> BAPI
I am using the Transformation step(1:1) in the ccBPM Scenario. I have supplied, interface mapping, source  message (File name), target message (name) in the properties of the 'Transformation step'.
The scenario is currently failing at the Transformation step with a error message,"Expression must return the interface type Z_MYBAPI"
Any thoughts on this issue?
Thanks,
Raghu

Hi Raghu,
Check these:
1) Interface Mapping (shoould be between Abstract Interface).
2) Source Message and Target Message in transformation should be Abstract.
Hope these will help you.
Regards
Suraj

Similar Messages

  • 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.

  • Simple collect ccBPM scenario

    Hello everyone!
    Here's my scenario:
    Multiple IDOCs (of the same message type DEBMAS) may be triggered by a scheduled program (RBDMIDOC). The mapping I created in XI results into individual files being sent to an FTP folder. What I want to happen is for all the IDOCS that were sent to be collected in XI and sent as ONE file to the FTP folder. I understand this can be done using ccBPM, but all the blogs I've seen so far deal with more complex scenarios. Would anyone be willing to show me the basic steps (abstract interfaces to create, creating containers and processes, etc.) to make my scenario possible. I hope y'all can be as simple as possible.
    Thanks in advance!
    Glenn

    Glenn,
    Cool.  Keep the Time Dependant example as reference which I've given above.
    Import your IDOC DEBMAS into Imported Objects.
    Data type and Message type  for Target (File)
    Create two Interfaces
    Abstract Asynchronous Interface --- use IDOC DEBMAS(Interface1)
    Abstract Asynchronous Interface --- File Target Message(Interface2)
    Message Mapping
    Source : IDOC
    Target: File Message
    Change the occurrence of source message to 0..Unbounded.
    Interface Mapping
    Source :Interface1
    Target : Interface2
    Change the occurrence of Source message to 0..unbounded.
    BPM
    Container Elements
    Receive -
    Interface1
    Receive_ML -
    Interface1
    Send -
    Interface2
    Click on the Receive Step -- choose Receive Container element
    Clikc on Container Operation --  choose Receive_ML Container element as Target and Receive as Expression
    Click on the deadline branch and give 15 mins
    Click on Transformation step : Source: Receive_ML , Target : Send
    Click on Send Step : use Send Container element
    Hope it helps!
    raj.

  • 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

  • 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

  • Error in transformation steps

    Hi
    I have a scenario where i need to send to source messages  to ont target message ,I am tring to do using BPM.
    I have used steps
    1)recive step to recive the file(I am giving here 1 msg type from two)
    2)Transformation step to transform two sources to 1 target
    3)Send file to pick the file.
    I am not doing any configuration for the transformation step...
    Error in bpm work flow technical details at mapping error..
    *****com/sap/xi/tf/_eadress_mm_com.sap.aii.utilxi.misc.
    api.BaseRuntimeExceptionRuntimeException in
    Message-Mapping transformatio~******
    I have tested messape mapping & interface mapping they where no errors..
    Can any please help me how to work with transformation or can any one please send sample weblogs which explains transformation step in detail...
    Thanks
    sriram

    Hi,
    <i>1)recive step to recive the file(I am giving here 1 msg type from two)</i>
    >> Do you mean, you are getting 2 files of same message type ? i.e multiple messages of same message type,then you need to collect it and send it one message ? So you need to execute N:1 mapping ?
    If so, you need to go for bpmCollectPatterns available in the SAP BSAIS Software comoponent in the Repository.
    Refer this part of SAP Help-
    http://help.sap.com/saphelp_nw2004s/helpdata/en/08/16163ff8519a06e10000000a114084/frameset.htm
    If you  have 2 types(i.e 2 different Interfaces) of files then you can look into this Pattern-
    http://help.sap.com/saphelp_nw2004s/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
    >>>the error looks like , mapping is not done properly.i.e did you test the mapping with the live data from the SXMB_MONI.
    Also check the Occurence levels of the messages in the mapping, if you are collecting the messages
    Hope this helps,
    Regards,
    Moorthy

  • Synchronous send step from ccBPM

    Hello Experts,
    I'd like to ask you if you have an idea how to configure synchronous send step from ccBPM. So scenario is quite simple:
    1. async start of process
    2. sync send to system A
    3. continue of process
    What I already did is:
    I define abstract sync interface everything including names is the same as target sync service interface. Then I define async abstract SI with a name of Request Message type and async abstract SI with a name of Response Message. I of course use Receiver From property set to Send Context...
    In monitoring it looks like this: I successfully call sync interface, but the way back???... First of all process does not wait for response but continue with other steps and response doesn't not have service interface, namespace and receivers properties set(service, interface, namespace)...
    Does anyone already face this problem or do you know how to send sync message from ccBPM in PI 7.1?
    Many Thanks,
    Milan

    A BPM cannot process further without receiving the response message of the SYnc Send......
    In the req and resp tabs of the Sync Step of BPM you have to use the correspoding Container Variables (which you have defined with the ABS Async Req and Resp MIs).
    I am having few Sync steps defined in some BPMs on PI7.1 and all are waiting for the response and then only proceeding....if any error then BPM wont progress (rather should not).....below are the settings of my Sync Step:
    Mode: Synchronous
    Create New Transaction: Unchecked
    Synchronous Interface: FileDetails_sync_AI
    Request Message: Container variable for Req MI
    Response Message: Container variable for Resp MI
    Receiver From: Send Context
    Regards,
    Abhishek.

  • 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

  • Capture Error in transformation Step and send it by email without Alerts

    Hi all,
         I have a problem in my BPM.
         I need to capture an error in transformation Step and send it by email with a send step without alerts. 
    Is there a way to do this in BPM?

    Hi Mariano,
    Please check the standard pattern in IR under software component SAP BASIS ->Integration process
    -->BpmPatternReqRespAlert.Hope this will help you for building the scenario.
    In this process we define a deadline branch to monitor the deadline. If the deadline is missed, an alert is triggered and this can be sent to an email too.
    Alert Configuration
    http://help.sap.com/saphelp_nw04/helpdata/en/80/942f3ffed33d67e10000000a114084/frameset.htm
    Alert Inbox
    http://help.sap.com/saphelp_nw04/helpdata/en/80/942f3ffed33d67e10000000a114084/frameset.htm
    Alert Notification Step-by-Step
    http://help.sap.com/saphelp_nw04/helpdata/en/49/cbfb40f17af66fe10000000a1550b0/frameset.htm
    Hope this helps.
    Best regards,
    Sharath
    Edited by: sharath Girmaji on Dec 19, 2008 7:17 PM

  • Not able to give multiline container variable in transformation step.

    Hello,
    I'm doing a simple collect pattern in BPM.
    I have three container variables, one- the source interface, second the multiline of source interface and third-the target interface.
    Now, i have block in which i have the exception and deadline steps and then a loop in which i have my receiver which collects the message and gives it to the container to keep it to the list. Outside the block i have my transformation step which takes the relevant interface mapping. When i try to give the multiline container variable the box turns red, but of give the normal source container variable it accepts it.
    If i do a check by F7, Expression must not return a multiline value.
    The scope of the container variables is maintained as Process.
    What could be wrong, please help.
    Thanks and regards,
    Akhil

    hi akhil,
    think in transformation it sees source messages and target messages.
    if u have n:1 scenario then n interfaces to one interface right
    thats is each interface will have one message type
    so if u are using interace mapping in transformation it is expecting n interface variables to one interface variable.
    it will display n source messages to one source message jsut check.
    so transformation step is expecting one n sub message types to be embedded in one message type
    <messages>
    <message 1>
    <meessage n>
    </messages>
    this one is mapped with one XML target messgae
    so if u have n different messages see that u compress them in to one message type like the above and give it in trasnformation step.
    if you have n different messages then u can alwasy go for n different interfaces to one single interface
    then u can see in tranformation step n diff source messages and one target message
    was just confused with reciever step which allows multiline receivers
    Thanks & Regards,
    Rama Krishna
    Edited by: rama krishna talluri on Mar 6, 2008 1:48 PM
    Edited by: rama krishna talluri on Mar 6, 2008 1:49 PM

  • Receiver Determination steps for BPM scenario

    Hi Experts,
    Scenario : SOAP -> Calling different webservices
    1. SOAP Client Request
    2. Call the Initial webserive to get the unique Id. No need to pass any request to call this webservice, but it will give the response.
    3. Take the Initial websrevice's response as a request to second webservice
    4. Pass the SOAP client request to Third webservice
    BPM steps
    1. Receive Step for SOAP Request
    2. Send Step for the Initial webservice call.
    3. Transformation step Initial webservice response to request change.
    4. Send Step for Second webservice (Pass the the Transformation step's target interface as a request)
    5. Send Step for Third webservice ( Pass SOAP client request)
    I am done with the BPM flow. Could you please help to do the Receiver Determination steps.
    Usually I follow the below steps.
    1. Sender Service to BPM
    2. BPM to other services. I have a doubt with the second step. I am not passing the SOAP client request to Initial webservice. So, please tell me how to proceed further for the BPM Receiver Determination steps..
    Thanks & Regards
    Sara

    Hey,
         First, what is th purpose of your SOAP client request.
    Is it just to trigger the BPM.
    Second on what basis are you fetching the unique Id from initial web service.
    If it is a normal scenario then, the reciever determination will be like this.
    Soap client-> BPM
    BPM->initial webservice
    BPM->second webservice
    BPM->third webservice
    but in this particular scenario i dont know which data is being used to fetch the unique Id.
    regards,
             Milan

  • 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

Maybe you are looking for

  • SSL VPN Group-Lock problem

    Hi, I am trying to lock groups to a specific tunnel group but unfortunitly no matter what I do the group-lock feature doesnt seem to work. Basically here is what I want to do: 1-Users detail is pulled from AD through LDAP 2-AD group is mapped to the

  • Mac mini won`t update and kernel panic

    Hello guys, I have a last gen mac mini running OSX 10.7.2. It`s not able to do any apple update since 1 month ago, and i have no ideia why. And since today morning it refuses to recognize my magic trackpad, when i try to use it i get a Kernel Panic.

  • Remittance for check to vendor with multiple invoices paid

    SBO 2007A, PL15 If I print a vendor check to pay 10 or more invoices, the remittance portion prints 9 invoices on the stub and then prints the remainder of the invoices on the next check in the check run. How can I make the stub stop at 9? Edited by:

  • What is the best way to change the flooring in an image keeping perspective?

    For example, I have an image of a lounge room and want to show a client different flooring options including tiles, floorboards. Key is keeping the perspective and being able to easily select and replace the floor. Thank you!

  • Will MYOb V9 be compatible with osx Lion?

    I currently have MYOB V9 and would like to upgrade my operating system to Osx Lion.  Will the software be compatible?