Collect messages in BPM
Hi experts,
Need to create one scenario to collect payload of XML files, I have done this work in Design and Configuration :
data types : test_collect
Message Types : test_collect
Message Interfaces : Test_collect_1 (abs asy), Test_collect_2 (abs asy)
I need to collect Test_collect_1 and pass it to Test_collect_2
Message Mapping : Test_collect_1 - Test_collect_1
Interface Mapping : Test_colect_1 - Test_collect_2
Integration Process is created as example in Standard Process in SAP BASIS
--> http://sap.com/xi/XI/System/Patters --> BpmPatternCollectPayload
Need to created more mappings or not.
How I will created proper Configuration Steps,
mean no. of Sender Agreements, receiver agreements, Receiver Determinations and Interface Determinations etc.
Regards,
Study SAP
hi study sap,
check the below blogs to have a cleat understanding
Check these
BPM:
Walkthrough with BPM - Walk through BPM
BPM in XI https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/integrationProcess%28ccBPM%29inXI&
BPM-1 Walkthrough with BPM
BPM-2 Reconciliation of Messages in BPM
BPM-3 RFC Scenario using BPM --Starter Kit
BPM-4 The specified item was not found.
Schedule BPM Schedule Your BPM
Use of Synch - Asynch bridge in ccBPM Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
Use of Synch - Asynch bridge in ccBPM https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
without BPM Sync/Async scenarios without BPM
without BPM1 Sync/Async communication in JMS adapter without BPM (SP19)
IDOC BPM IDOCs (Multiple Types) Collection in BPM
multimapping without BPM /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
/people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible---- Multi Map With out BPM
Various multi-mappings and Optimizing their Implementation in Integration Processes (BPM) in XI. Various multi-mappings and
Optimizing their Implementation in Integration Processes (BPM) in XI.
Illustration of Multi-Mapping and Message Split using BPM in SAP Exchange Infrastructure --- Illustration of Multi-Mapping
and Message Split using BPM in SAP Exchange Infrastructure
IDOCs (Multiple Types) Collection in BPM (N:1 Mapping )
regards
kummari
Similar Messages
-
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 -
Xpath in the collect message of BPM
Hi,
I created a BPM collect message. My source message has a field which is in the format of XXXX-NN such that XXXX can be any 4 letters and NN is a number 01 - 99. In the loop of the BPM, I made use of an Xpath command in the condition editor for the loop condition. The command is /header/segment1/segment2[(substring(field1,6,2))] for the left hand operand and comparing it as not equal to a counter variable.
When I look at my graphical workflow log, there is an error in the Transformation step. In SXMB_MONI, I have a red flag with an error of "Message has error status on outbd. side" in the process view of SXMB_MONI.
If I change the Xpath command to /header/segment1/segment2/field1 and change the value of my field to just use NN without changing anything else, my BPM is working properly. Is there something wrong with the added Xpath command? I followed the blog in /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination but I wonder if this only works for Receiver Determination. Please help.
Regards,
ElbertHi Elbert,
the expression
means a condition and requires a
=
For example:
[//person/name[../no='123'] code]
means: select element person/name where person/no "123" is.
Because of unclear results regarding the namespace i wouldnt put the full path. Use for example [code]substring(//segment2/field,6,2)
The substring expression is ok, i m shure.
<b>substring(X-Path on String value, No of letter in string, length of searched substring)</b>
If the string is not long enough, it might give you strange errors, he, he. Cant cut 1m of 20 cm salami.
Regards,
Udo -
Hi everybody,
I need to know if it is possible to develop a integration process to collect messages without using correlation, until now I only developed that scenarios using correlation, but I have a special case that is not necessary identify a key to make a relation among the messages
Thanks in advance.
Ivan
Edited by: Jose Iván Reyes Arteaga on Dec 3, 2008 10:42 PMIf you do not need any key field for correlation, then you can go for dummy correlation in BPM.
In the expression editor (properties column of the Correlation editor), select the "Constant" radio button and give some dummy name.
For more explanation, refer Siva Maranani's post in the thread:
/message/426236#426236 [original link is broken]
Thanks,
Geetha -
I am trying to recreate and understand the BPMPatternCollectPayload. What I don't understand is We have a interface mapping in which we tryiing to append all the message into one inetrafce. so we create a one to one mapping between both the interface. The only difference is one is o to unbounded and the other one is just 1. Now how do I change the occurance in the interface mapping or in the message mapping given that both have the same data type. Please help.
in teh message mapping
under Messages tab u change the occurance to 0..unbounded
similarly in interface mapping under Design tab where u select the Message interface u change the occurance to 0...unboundd -
Hi All,
I am doing a scenario for collecting messages using BPM, the objective was i need to collect the input messages and to be stored, when the message reaches 10, then it should deliver all these 10 messages to the target.
for this, i have designed bpm with the
1. Receiver Step
2. Container Operation
3. Transformation and Send.
but i am getting the following error while activating
Exptession must not return an multiline value
Expression must return the interface type MI_OUT_A
Expression must return the interface type MI_IN_A
Container element var1 in step Receive1 is initialized but is not used.
Here var1 is the abstract interface
the datatype& message type was DT_A and MT_A and the interfaces are MI_OUT_A and MI_IN_A.
could anyone clarify regarding this issue..
regards,
SaiHi,
Check some links on BPM.
/people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
/people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
/people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps
/people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
Regards,
Phani
Reward points if Helpful -
Hi,
I would like to send a packet of iDocs from the R/3 to a legacy system using the XI. What should I do in order to perform this ?
Can I see an example somewhere ?
Thanks, Nir.Hi Nir,
In Software Component "SAP Basis 640" there is an example to Collect Messages with BPM.
Namespace: http://sap.com/xi/XI/System/Patterns
Integration Process: BPMPatternCollectMessage
Regards,
Robin -
Hi,
when i perform a check to standard BPM patterns BpmPatternCollectMessage. I get the following info am i wrong some where do any changes needed to be done.
Container element stopmessage in step receive terminating message is initialized but not used
Container element collectmessage in step *receive * message is initialized but not used...
kindly helpI did the above scenario as told.
It is a bpm message dependent scenario. It keeps collecting messages till a particular message is received.
I more or less used the message dependent pattern given in SAP BASIS.
The data types are as follows.
Dt_In
Name
OverallID
Dt_In
Name
OverallID
1 to 1 mapping
I used the OverallId for correlation. The receive step inside the infinte loop collects the messages with OverallID '1' while the receive step below collects messages with OverallId '2'.
In the container elements i defined 2 separate message interfaces. One for OverallID '1' and the other for OverallID '2. The 2 message interfaces have the same Message type. Only values will be different.
For the parallel fork step i have given end condition OverallID = 2.
When i execute the scenario the messages are all comingin a queue. The status is wait for event.
What could be the problem?
Thanks
Edited by: pratichi chauhan on Sep 24, 2008 2:46 PM -
Hi Experts,
Collection of messages in BPM is not working,IP is executing for each Idoc.Actually i have done the sceanrio Idoc to File,Here I am getting multiple IDocs of same type from R3 when run a transaction and i would be generate a single file for all the IDocs.For this i have changed the occurence of Idoc from 1..1 to 1..unbounded and done the mapping betweeen these two. i have done bpm just like as standarad bpm pattern "BpmPatternCollectTime".I mentioned the time as 1 minute.in transformation step i had mentioned interface mapping for 1..1 Idoc to 1..unbounded Idoc and the real mapping conditions of this sceanrio is carried out after the bpm. The Idoc's are generating from R3 with the time diffrence of 3 secs.So it should generating a single file what ever the no.of idocs populating within a minute.
In monitoring it showning for bpm, its trigerring for each incoming Idoc and procesing successfully.
For Ex: Two idocs are coming from R3 then BPM triggers twice
What could be the possible reasons for this or i have done any thing wrong.
Any ideas.., Thanks in advance
Cheers
Tiger Woods.HI,
Try to Use Idoc packaging. also see the below links
/people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm - Collection of IDoc to Single File
/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm - collecting IDocs without BPM
/people/prateek.shah/blog/2005/06/08/introduction-to-idoc-xi-file-scenario-and-complete-walk-through-for-starters - IDoc to File
Regards
Chilla -
BPM Collect Message dependent AND time dependent
Hi
I have a IDOC to file scenario where I have to collect all the IDOC until I receive a stop IDOC.
Once the End collect IDOC is received I have to do a n:1 transformation and write the file to the FTP.
The problem is, at times the IDOC which is suppose to end the collect loop gets stuck in ECC R3 system.
So Im wondering If I can do something like say, we have two options inside BPM both time dependent and message dependent.
In this case which ever comes first (the Stop/END IDOC or the Time say 3 mins) will end the collect process.
Can anyone pls suggest will it work and if so what are the additional steps I have to introduce in the BPM.
Pls advice.
Right Now these are the steps in the BPM Collect Message dependent.
1. Block (I have used correlation)
2. Fork inside the block
3. Fork branch one has a look with end condition as 1=1; then a receive step and a container operation inside the loop.
4. Fork branch two receives the end collect idoc.
5. Transform step outside the block.
6. Send step.
Thanks
PrasannaHi Abhishek/ Raj
Thanks!!
I have done the changes let me confirm after testing it once. In the mean time I have one more question regarding the same BPM, as I have mentioned in the first post, the BPM contains the 6 steps mentioned but the the 6th step is inside another block (Block2).
The steps 1 to 4 are inside Block1.
The step 5 ie the transformation step (n:1) is in between the Blocks ie not inside any block (hope im not confusing).
The second block is for sending the file to the FTP and based on the acknowledgement (transport level) I have to send an email.
So Block2 already contains a deadline branch, it is to wait for the positive acknowledgement for say 3 mins and send the error email if incase we dont get positive ack within the time limit.
My doubt is,
1. Is it the only way (having two block and two wait steps) to achieve this.
(one block for collecting and one block for ack)
2. Is there any way I can have a single Block in the BPM insted of two. If so what are the steps.
Having single block, Will improve anything??
Thanks
Prasanna -
Time dependant message collecting in a bpm
I have a bpm setup to collect messages. I want to collect messages until a specific time daily (eg. 18h00 everyday) and then send them.
I have used the BpmPatternCollectTime pattern but cannot specify a daily time. Does anyone have suggestions on how to accomplish this.
Ta.
RodneyHi Rodney,
We also had this same design implemented. But the BPM is not flexible enough to provide the get the current date and collect till a particular time.
One another way will be to use the design BpmPatternCollectMessage and send in a stop proxy message using a ABAP proxy message triggered from the ABAP stack at 18:00hrs every day so that the collection process will end and will send the data to the target system.
Cheers
JK
PS: Award points if this helps you -
BPM collects messages, and should terminate at a given time
Hi,
i'm trying to create a scenario where a business process collects messages. At a certain time each day this process must transform this messages into one message and terminate.
(I used the BpmPatternCollectTime process as a template)
My problem is:
how to tell the deadline branch it should rais an exception every day at a given time, lets say 10pm?
I already tried to configure this branch with "Reference Date/Time=Expression" and set date and time to 2008-10-04 14:30:00. But the process won't stop at this time.
Any ideas?
Thanks in advance,
msHi,
I am not sure if you could use this pattern for stopping at a given time?
Maybe you could configure a report that sends a message every day at the given time to the PI and your process stops with receiving this message.
Regards
Patrick -
Collect message till particular point of Time in BPM
Hi,
I want to collect messages till particular point in time like till 6 oclock evening.
In deadline branch i have to use Expression and should give date and time.
What is the format of date and time if it is not coming in payload.
What is the difference between: Creating the step and Creating the process property.
Any help is apreciated.
Thanks and regards,
SatishThe date and time format will be the standard XSD date and time format
Date:
YYYY-MM-DD or YYYY-MM-DDZ
Time:
HH:MM:SS or HH:MM:SS.x
But since your requirement is to collect the messages till 6pm everyday, I guess there is a problem with the mandatory date field.
Maybe you can use a datatype which holds the current time in a field and use the field as the loop variable.
- Kannan -
Stateful messages in BPM(Urgent)
hi,
BPM is used for handelling stateful messages.But what is the maximum no. of messages it can handle,without reducing the performance.Hi,
Business Process Management provides SAP Exchange Infrastructure with functions for stateful message processing: The status of an integration process is persisted on the Integration Server. This means that you can specify how long an integration process must wait for further messages to arrive, for example. Furthermore, this enables you to process messages within an integration process further still; for example, you can collect certain messages and then send them in a particular order.
For Performance fine tunning avaoid having message mapping inside BPM,do it either before the BPM or after BPM
BPM is used for Stateful communications,suppose u have to delay message processing,or wait for other messages to arrive and then semd them all together,in that case use BPM.
go thru this: https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3bf550d4-0201-0010-b2ae-8569d193124e
Performance is not only depend on the usage of BPM, it also depends on the message volume inside the BPM. So it depends on the memory size, message size i.e payload size , design , mapping used etc
This basically means SAP XI as a EAI tool without the BPM provides stateless message. this means that one message coming in SAP is not dependtent on another message.
BPM in SAP XI is used to make messages stateful and this allows us to do functionalities like collecting message , splitting message, waiting for a message etc. -
Splitting and Collecting Messages
Hi,
I have a scenario in which I get a message from SAP. In this message their are multiple item structures and 1 header structure. Now I have to sent these items to a WS seperately and collect the messages from the WS response in one message with a header.
Something like:
Receive Message -> split message (message mapping) -> send all to WS / receive response for everyone -> collect messages from response in a new message -> send the new message to another WS
How can I do this in BPM?Hi Chris,
Your design should be like this:
Start --> Receive --> Transform1 (Do the split and multimapping) --> Send Step1 (Synchronous) --> Send 2 (Send Response from send1 to the output) --> Stop.
Regards,
---Satish
Maybe you are looking for
-
Cannot connect to iTunes store when trying to update or download apps, I have tried updates and adjusting the date
-
Personalization Server: Reference session variable in cm:select
<%=String X=(String)session.getAttribute(y)%> How do we get X into a cm:select tag? I attempting to do a query and want to pass X into it. Tried doing <%=X%> and it's causing a JSP compile error. So, I guess I need to know how to pass a session varia
-
Specify pool name in radius reply
hello all . I have 2 pools of IPs on the router ans have dialup vdpn sessions on it , I need some specific users get from a pool and other users from the other pool. Can I return the pool name in the radius reply when the user is authenticating ? and
-
Declaring as an Interface?
What would be the reason for declaring a variable such as "List list = new ArrayList();" as oppose to "ArrayList list = new ArrayList();"? I realize either way you have a reference to an ArrayList object. I've seen this done few times, and the only r
-
Starting a video from the middle
I tried searhing the forums first... but couldn't find an answer. I'm at the gym, watching a movie (not from iTunes store). I get through half of it, go home and listen to music. Charge/sync my ipod and then the next day at the gym, I want to watch t