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,
MayankAlso 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. -
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!
GlennGlenn,
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 pengHi 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 PoreddyHi 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 -
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
sriramHi,
<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,
MilanA 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
BhaveshIssue 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
DavidHello
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! -
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,
Akhilhi 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
SaraHey,
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 -
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,
GeethaHi All,
My issues is resolved.
Thanks,
Geetha
Maybe you are looking for
-
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?