Processing of multiple messages Using BPM
Hello everybody,
I am pretty much a newbie to this XI technology. I am currently testing a File to File scenario Concerning BPM. The source file contains multiple messages in an XML structure. How can each of these XML messages be posted as individual files? I have reffered to this <a href="/people/narendra.jain/blog/2005/12/30/various-multi-mappings-and-optimizing-their-implementation-in-integration-processes-bpm-in-xi on BPM as a guideline; but here the number of messages are restricted and I want to dynamically determine how many messages are contained in the XML file. Anybody has any idea how to achieve this?
Thanks and Warm Regards,
Hello,
The blog you mentioned is for cutting one file into 2 files.
I think you need to use the "<b>ParForEach</b>" step in the BPM. This step is used to loop on a multiple line message and create a single message in one branch. Then you can add a send step in this branch and end only one message.
<u>See the Flight Demo :</u>
http://help.sap.com/saphelp_nw04/helpdata/en/5a/cede3fc6c6ec06e10000000a1550b0/frameset.htm
<u>Object in IR :</u>
BASIS -> http://sap.com/xi/XI/Demo/Agency -> BPM -> MultipleFlightBookingCoordination
Regards,
Chris
Similar Messages
-
File to RFC with multiple records using BPM Scenario Error...!!!
Hello Guru's,
I have done the File to RFC with multiple records using BPM scenario as per the Materiel available in the sdn.sap. This involves BAPI (BAPI_MATERIEL_AVAILABILITY). I have done exactly the same what is their in the materiel. SXI_CACHE is also giving return value " 0 ". File is getting deleted from the source directory, but no file in target directory. SXMB_MONI is also showing no error (black Flag). BPM is also error free. Checked the interfaces also.
Can any one tell me what mistake would i have done.
Thanks in advance.Hi,
There is one similar discussion I found,
FTP TO RFC using BPM
Thanks
Swarup -
hi,
I am not able to see the split in BPM when using SWITCH.
Scenario: IDOC->XI->Multiple Receivers with error handling using BPM
In BPM SWITCH i have 2 steps.
1st branch step has Transformation0, Receiver Determination0 and Send0
2nd branch step has Transformation1, Receiver Determination1 and Send1
Receivers will be differnt. Container elements have 2 receivers for Receiver0 and Receiver1
When the IDOC is triggered i can see only one message in SXMB_MONI.
I don't see any failure steps in SXMB_MONI_BPE.
In the ID, i have 2 receivers configured.
Why aren't the messages being processed?
Thanks,
TirumalHi Tirumal,
Switch is condtional step. It is not for Split. It is like If-Else condition. If you want to split the messages in the same time, then go for Fork step.
http://help.sap.com/saphelp_nw2004s/helpdata/en/24/e2283f2bbad036e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/6a/db283fd0ca8443e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/14/d5283fd0ca8443e10000000a114084/frameset.htm
Hope this helps,
regards,
Moorthy -
Hi,
I have 4 file senders to send message of same structure to BPM to process it.
There is no corelation between the messages.
But I am wondering, will it work, if I add multiple receivers using fork step and initiating each one as 'start process'?
Can we have multiple receivers in BPM with any corelation?
Please advice
Thanks,
Karthik
Edited by: Karthik Kaveriselvan on May 31, 2009 10:10 AMBut we need not bundle the messages.
agreed....but since the messages are coming from different sources and if you need to collsct the messages separately you will need to define correlation
As you mentioned that the messages have the same structure...check if you can cheat the BPM and use the following concept...not sure whether it will work...give it a try:
http://help.sap.com/saphelp_nw70/helpdata/EN/08/16163ff8519a06e10000000a114084/content.htm
The only reason of having two senders in the same BPM, the way these messages to be treated are same.
could not make what you exactly mean by the above statement.
Regards,
Abhishek. -
Hi Experts
I am getting the request through HTTP which i want to split using BPM and send each splitted message to synchronous step and get the response for each splitted message
I have gone through the following blog
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
I am able to split the message into multiple messages but unable to send each splitted message to synchronous step and get the response.
I am getting " NO Receiver Found" error.
How to send each splitted message to synchronous step and get the response.
Please suggest.
Regards
SowmyaHi Sowmya,
I referred to the same blog and the scenario was a success. Please note that in this scenario
"Receiver Determination plays a key role.
Three Receiver Determinations are required. One for the Sender to BPM and two others for BPM to the corresponding output files.
In the Interface Determination for the two Receivers, specify the corresponding Interfaces."
You are just a few steps from success.
Rgds
joel -
Hi all,
Am doing a collect message pattern using BPM. After collecting messages wen mapping is called its throwing exception. CAn you help me out in this. I ll explain.
the input i give is :
<Root>
<Name> asd </name>
<ID> A </ID>
</Root>
i sent thid message 5 times to BPM (using collect pattern).
the stop message is of the format
<Stop>
<ID> A</ID>
</Stop>
wen i send this the collect block is exited and the flow comes to a transformation step which does a n:1 mapping
ie. in my mapping i add the source message type and changed its occurence to unbounded in messages Similarly in IM also i changed the occurence of source MI to unbounded. wen i test the message mapping with this
<Root>
<Name> asd </name>
<ID> A </ID>
</Root>
as input it gives the exception. But if i gve like this ten its showing successful.
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<Root>
<Name> asd </name>
<ID> A </ID>
</Root>
</ns0:Message1>
</ns0:Messages>
But how can wedo that as transforamtion happens in BPM. PLease help me out in thisHi,
Check these links
/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm
/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm
http://help.sap.com/saphelp_nw2004s/helpdata/en/76/5d373f5e550456e10000000a114084/frameset.htm
Regards,
Kumar -
Splitting of messages using BPM
Hi
Suppose we have a source Data structure with 3 nodes: Customer details, Site details and MPRN Details. Now I want to split the data into 3 data structures
( Customer Details, Site details and MPRN Details) and want to send them to 3 individual systems. Basically I am using BPM to do this. But I heared that even we can implement this scenario without BPM. Could you plz confirm me whether it is possible to do this scenario without BPM ?? If so and if you have any blogs or links known plz do send me the same.
Thanks
KumarAbout Multi-mapping:
After the split using multi-mapping, the generated messages are sent using Adapter Engine. Thats why only those adapters could be supported which resides on adapter engine. Therefore, IDOC/HTTP adapters at inbound side is not supported
About the sender and receiver agreements:
The choice of sender agreement depends upon which information from the adapter configuration in the sender channel is required for successful inbound processing.
It is not obligatory for all adapters.
Receiver agreement is always required bcoz it is the responsiblity of the receiver channel to transform the XI compatible message to receiver compatible message.
Regards,
Prateek -
Problem initiating process with multiple operations using HTTP/SOAP
Hi,
I have defined a process which has multiple operations. My process starts with a pick activity containing onMessage branches for each possible operation. When I initiate this service using the BPEL console, I choose one of the operations and everything works fine.
However, when I initiate this process using an HTTP/SOAP web service call using JMeter, always the first branch is executed regardless of the message I send.
My operations are document/literal. Due to some restrictions, I cannot define a SOAPAction for the operations. Could this be the problem? Is there a workaround for this? If this is not the problem, what could be the cause?
I'm using version 10.1.2.1.
Any help will be appreciated. Thanks in advance..hi i am using 10.1.3 and still i can not initiate a process with multiple operations. Is there anybody to tell if pick activity works fine and if there are some points to consider?
If there is a problem is there any solution to make a process with multiple operations? -
** How to deliver multiple files using BPM (From RFC output)
Hi Friends,
I am doing File-RFC-File scenario using BPM. I am using BAPI_SFLIGHT_GETLIST as my RFC (Standard RFC). If we execute this RFC, it will return the results in tables form. Assume that, the inputs to RFC is like below.
FromCountryKey : US
FromCity: NEW YORK
ToCountryKey: DE
ToCity: FRANKFURT.
The outputs from the RFC is like below.
26 Entries
CAR
CONN
FLDATE
AIR
AIR
DEPTIME
SEATSMAX
SEATSOCC
|
DL
0106
19.05.2008
JFK
FRA
19:35:00
280
266
UA
3516
20.05.2008
JFK
FRA
16:20:00
380
364
LH
0401
23.05.2008
JFK
FRA
18:30:00
220
209
LH
0401
28.05.2008
JFK
FRA
18:30:00
220
208
UA
3516
28.05.2008
JFK
FRA
16:20:00
380
367
DL
0106
16.06.2008
JFK
FRA
19:35:00
280
261
UA
3516
17.06.2008
JFK
FRA
16:20:00
380
357
LH
0401
20.06.2008
JFK
FRA
18:30:00
220
213
DL
0106
14.07.2008
JFK
FRA
19:35:00
280
1
UA
3516
15.07.2008
JFK
FRA
16:20:00
380
86
LH
0401
18.07.2008
JFK
FRA
18:30:00
220
123
DL
0106
11.08.2008
JFK
FRA
19:35:00
280
56
UA
3516
12.08.2008
JFK
FRA
16:20:00
380
67
LH
0401
15.08.2008
JFK
FRA
18:30:00
220
114
DL
0106
08.09.2008
JFK
FRA
19:35:00
280
0
UA
3516
09.09.2008
JFK
FRA
16:20:00
380
164
LH
0401
12.09.2008
JFK
FRA
18:30:00
220
64
DL
0106
06.10.2008
JFK
FRA
19:35:00
280
80
UA
3516
07.10.2008
JFK
FRA
16:20:00
380
8
LH
0401
10.10.2008
JFK
FRA
18:30:00
220
16
DL
0106
03.11.2008
JFK
FRA
19:35:00
280
11
UA
3516
04.11.2008
JFK
FRA
16:20:00
380
33
LH
0401
07.11.2008
JFK
FRA
18:30:00
220
53
DL
0106
01.12.2008
JFK
FRA
19:35:00
280
0
UA
3516
02.12.2008
JFK
FRA
16:20:00
380
45
LH
0401
05.12.2008
JFK
FRA
18:30:00
220
25
|
We need to create output file for each record. In this case, the system should generate 26 output files.
I imported the RFC and created the required interfaces and designed BPM also.
Start --> Receive step --> Synchronous Send --> Asynchronous Send
But, I stuck in how to deliver each record to the output file from BPM.
Any idea, friends. (like using BPM Multi-line option. or 'Receiver From' property in the Send Step)
Kindly help me friends to solve this issue.
Thanking you.
Kind Regards,
Jeg P.Hi
You can do it by creating one another message interface having structure same as your table.
What you have to do is create a mapping in such a way that for each record in table one message(newly created) must be created.
Use that mapping in an interface mapping, remember occurence of target message should be 0..Unbounded both in message mapping and interface mapping.
Now create one single line message and one multiline message in BPM for newly created message.Use transformation step with new interface mapping, mention source(RFC response) and target message(use multiline element of new message) for the transformation step.
Use send step inside a block,set block mode to "forEach", and attach new message to that send step.
Use multiline and single element of new message in the property window of block.
Now your BPM will look like
Start ---> Receiver ---> Synchronous send ---> Transformation ---> Block ---> Async Send(within block)
I think in this way you can implement what you want.
Regards
Sami
Reward points if helpful. -
Many files to one file Processing in XI without using BPM
Hi XI Experts,
Greetings!!
I have one requirement in which I have to send three files from ERP system to some Third Party system via XI without using BPM.
I seached many threads..but not got the solutions.
Please help me.
many thanks.Hi Arya,
> the sturcture of the Target file will be diffrent.
I assume you have only one target structure but three different input structures. So create one interface for each 3 different sender files and in the output use the same file receiver communication channel in append mode. So when ever your interface is run it will keep appending to the same file comm channel. There is no blog or document for this integration.
If I were you I will go with BPM which is best solution for this scenario. With BPM you have the standard help and design in your SAP BASIS component only:
http://help.sap.com/saphelp_nw04/helpdata/en/0e/56373f7853494fe10000000a114084/content.htm
Regards,
---Satish -
Collecting and bundling messages from multiple interfaces using BPM
Hi friends,
I am currently working on bpmpatternmultilf(without condition).
In my source i have 3 messages having same message type.
Message type:
ID
Overall no
In the source i am placing 3 files like
message1.txt ID 100 Overall no 200
message2.txt ID 100 Overall no 300
message3.txt ID 100 Overall no 400.
I have used correlation element as ID.
But in the target file I am getting the result as ID 100 Overall no 200.
Overall no 300 and 400 are not present?
I understand that the messages are not getting collected and bundled?
Please help me out on this.
Thank you in advanceHi, deepak:
To collect the message of same message interface, if you know that all the files will exist for a while,
and next bundle of file will come to the folder after a period of time saying 30 minutes.
You can have your receive step, followed by container operator to append individal messages to multi-line elements.You will need deadline block, put timeout to saying 10 minutes.
This to say that you collect all the messages in 10 minutes, and put them in multi-line elements, now you collected all the messages with different ID.
Next you need to design you multi-mapping, since your message is based on ID, you multi-mapping is m:n
Eventually, you will need transformation step to call the multi-mapping, map the multi-line elements to n target messages. Your final send step send n files to your target system.
Regards.
Liang -
Configuring receiver determination with multiple messages in BPM
I am configuring a BPM scenario which uses 3 abstract interfaces, one for receiving, 2 for sending. I need 2 abstract interfaces while sending because they use different message types. I have created a Receiver Determination for the 1st interface, but the problem is that when I try to create the second Receiver Determination the 2nd abstract interface is not listed after I select the Integration Process. Just the 1st interface is listed under the Integration Process. What might be the problem?
Did you try to delete and reimport the BPM with the same name ?
SKM -
How to post multiple message using file adapter in XI2.0
We have to post multiple IDOCS.We have scenario as below.
We will have file structure like as shown below.
VKORG,VTWEG,SPART,BSART,PARVW,PARTNER,BSTDK,MATNR,MENGE,VSART,BSTZD,POLINE,BSARK
BE10;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
BE10;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
BE30;10;10;OR;SP;1000033;;M184-ISS01;2;G;131;0002;
For this we want that 2
messages should be created.In first message there will be first 2 records
with VKORG BE10 and in second message there will be last record with VKORG BE30.
We can do it through FILE2XMBWITHSTRUCTURECONVERSION and using some options.
I am sending the configuration that I have done for my adapter.
classname=com.sap.aii.messaging.adapter.ModuleFile2XMB
mode=FILE2XMBWITHSTRUCTURECONVERSION
#mode=FILE2XMB
XMB.TargetURL=http://20.60.53.36:8000/sap/xi/engine?type=entry
XMB.ReceiverBusinessSystem=sapdev210
#XMB.ContentKind=B
XMB.ContentKind=T
#XMB.ContentType=application/xml
XMB.ContentType=text/xml
#XMB.ContentType=text/plain
XMB.QualityOfService=EO
##xml conversion properties if mode FILE2XMBWITHROWCONVERSION specified (example, see docu)
xml.recordsetStructure=IDOC,*
xml.recordsetName=SALESDATA
xml.recordsetsPerMessage=1
xml.documentName=SALESDATA
#xml.fieldFixedLengths=
xml.IDOC.processFieldNames=fromConfiguration
xml.IDOC.fieldNames=VKORG,VTWEG,SPART,BSART,PARVW,PARTNER,BSTDK,MATNR,MENGE,VSART,BSTZD,POLINE,BSARK
xml.keyFieldName=VKORG
xml.keyFieldType=CaseSensitiveString
xml.IDOC.keyFieldValue=BE10.
xml.IDOC.fieldSeparator= ;
What I have tried is hardcoding 2 in xml.recordsetStructure=IDOC,2.It works fine
Since I already knew this.
Butin real scenario we wont be knowing this that is why I have given * in configuration , and
given
xml.keyFieldName=VKORG
xml.keyFieldType=CaseSensitiveString
xml.IDOC.keyFieldValue=BE10.
With this it should identify on key field and its value and put first 2 records in one message
and last record in second message.
It is not giving any error when we start adapter but no XML message is created.Can u plz help me
for the above problem.
My datatype in repository is like
SALESDATA
IDOC
VKORG
VTWEG
and allother remaining fields.
Is this scenario possible in XI 2.0.If yes then will it be done through above approach or something else.
Thanx.
Rekha.Hi,
I think you can not handle this problem with keyFieldName/keyFieldValue.
In my opinion with keyFieldName/keyFieldValue you can create different substructures of the same XML, but you can not seperate messages with the same substructure.
But I don't know how to handle your problem ;-(
Another point is that I see a dot after xml.IDOC.keyFieldValue=BE10.
My be this is a problem too.
Christoph -
Doubts in validating message using BPM
1)Have to check the response message has not been sent twice for the same id,
if wrong stop processing the message further.
2)Have to check the values coming in message is valid or not by comparing the values with R/3 table.
3) When sending Email alert, some of the values of the invalid message also has to be send with alert.
4) Have to check the details sent back and sent are same.
eg: if i send vendorid and some more values for which inturn they sent back are same
or not.
5) I have configured deadline branch there I have given the alert category, description.
I have configured only one recipient for the alert. so if delay in response am getting the mail in particular id.
So when i send message to particular system its fine.
But in my scenario, one system connected to more than four system.
When i send message to morethan two system how to send email alert to particular
system where delay to send response.
Can anyone guide me how can i approach these validations.
Thanks in advance,
SakthiHi,
1)Have to check the response message has not been sent twice for the same id,
if wrong stop processing the message further.
--> If you have a synchronous call you EVER have just one reponse message. So in SYNC this should not be necessary. In ASYNC mode you don't have a response, so this is also not neccessary
2)Have to check the values coming in message is valid or not by comparing the values with R/3 table.
>>>You need a RFC in R/3 that gives you table records. In this case see, if a RFC is already available; otherwise you have to develop the RFC
3) When sending Email alert, some of the values of the invalid message also has to be send with alert.
>>> Design a sender step and send the interface which caused the error. The message will be attached.
4) Have to check the details sent back and sent are same.
eg: if i send vendorid and some more values for which inturn they sent back are same
or not.
>>> I would suggest that you inspect the samples delieverd by SAP. In Integration Repository goto SWC SAP BASIS. There are samples.
5) I have configured deadline branch there I have given the alert category, description.
I have configured only one recipient for the alert. so if delay in response am getting the mail in particular id.
So when i send message to particular system its fine.
But in my scenario, one system connected to more than four system.
When i send message to morethan two system how to send email alert to particular
system where delay to send response.
Regards Mario
null -
Collecting multiple idocs using BPM
Hi,
I have a scenario where idocs sent from R/3 system are collected in Xi and posted as a single message in the file. We have done all the configurations both in XI and R/3 pertaining IDOC.
When we trigger an idoc in the R/3 system,we are able to see the message that IDOC has been sent to XI system. But we are unable to see any of the message transfers in SXMB_MONI.
(In simple words our interfaces are not getting triggered.)
Could anyone help us in rectifying the problem?
Thanks & Regards,
Vishnu.When you trigger the IDOC from R/3
--Did u complete the configuration part of sending the IDOC to XI, have you created the TRFC POrt in R/3, cross check the RFC dest which you are using here is pointing to Right Xi box?
Your configration looks fine for atleast to take IDOC in XI, rest i am not sure at this point.
---No errors in the SM58 on R/3?
---IDOC metadata is loaded in XI? do u c any entry in the IDX5?
--Is your IS been configured wth the tracle level parameters, if yes set it to 3 value
--is runitme paramter LOGGING, LOGGING_PROPOGATION,LOGGING_SYNC present in SXMB_ADM?
if you have these then atleast you should c an entry in SXMB_MONI with with either sucessfull or failed state.
More importanatly the LS name of the R/3 is according to standards what SAP says in SLD?
Edited by: Nisar Khan on Feb 28, 2008 11:00 AM
Maybe you are looking for
-
How to login from mobileme to Icloud, on Macbook Pro?
-
Preventing garbage-collection of a RMIRegistered server object
I am developping a client/server RMI application, and keep facing occasional ObjectNotFioundException: no such object in table, when the client tries to invoke method on the server stub retrived from the RMIRegistry. The Javadoc and online documentat
-
Hi all, I am looking for T-code list uses in CRM. Please do let me know if you have any. Thank, Sush
-
Messages Not Saving Whole Conversations
I noticed that Messages was not saving whole conversations (where it asks you to "load earlier messages" at the top). In the settings for Spotlight I had Messages checked off. Is the Spotlight setting for having access to Messages directly related to
-
Is it possible to downgrade a new Mac Mini from OS X 10.7 to OSX 10.5? If so, how is this done?