cancel
Showing results for 
Search instead for 
Did you mean: 

BPM :: n To 1 Collected Payload Pattern issue

Former Member
0 Kudos

Hi

I am working on following scenario -->

Web Page --> HTTP Adapter --> XI with BPM ( Using n To 1 Payload Pattern ) --> RFC Adapter --> SAP R/3 --> XI With BPM --> File Adapter --> Legacy System with Response from RFC

Now everything is configured & when first time I executed the scenario it gives me " Green Flag " under Outbound Status for interface from Web Page to XI. Also date format error in next 2 messages. So I corrected the date format & execute it again.

But since from than I am getting " <b>Red Flag</b> " ( <i>Message has error status on outbound side</i> ) under Outbound status. I checked my BPM under MONI also & all the mapping & configuration is fine. Even I made the Overall messages as 1 but still getting the same error.

I am able to see the correlation ID of message also.

Pls. suggest.

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

XI environment with SP16

I have a simple scenario with a container operation collecting two messages (identical).

The input to the interface mapping correctly has 0..outbounded and the map is just a java pass through. The process consists of just one receive step, two container operations, a transformation step and a async send step. The output received only contains the first

message in the collection.

Is there any obvious reason why this is happening? (I have checked and rechecked for proper types, attributes, and tested the transformation step individually.

Thanks in advance for any help.

Krish

Former Member
0 Kudos

Hi

In the following WebLog :

Last two statements by Mr. Ravi Appala applied to my scenario also. Each of those messages are going to the same XBQO* Queue & No entries in QRFC Monitor.

Pls. Suggest.

Former Member
0 Kudos

Hi

I would appreciate if someone has faced similar situation & provide some suggestions to resolve this issue.

Thanks

Lalit

Former Member
0 Kudos

hi,

Recheck the occurence of the header (in the target message type) which is to contain these multiple idocs.

It must be 0 to unbounded.

regards,

Smitha.

Former Member
0 Kudos

Hi Smitha

Earlier I was using 0 to Unbounded for " Source Message " under the impression that I am getting multiple messages from this message type.

I am changing the Multi-Mapping suggested by you & will update you regarding this.

Thanks

Lalit

Former Member
0 Kudos

Hi,

You are right. The header in the source message also must be 0 to unbounded since you are going to generate n number of headers for n idocs.And, for each idoc there must be a correponding header in the target which is to be created. This too must be 0 to unbounded.

Regards,

Smitha.

Former Member
0 Kudos

Hi

My Scenario is working now & I am able to correlate the payloads on Vendor Name. But I need to clarify the concept of n:1 Pattern.

In my multi-mapping occurence of source message is 0 to N & Target message is 1. Now when I am sending the message in this format ( coming from web page when i am clicking the SUBMIT button two times ) :

<p3:PurOrder_Request_MT xmlns:p3="http://BpmCollectMsg:AsyncSync:AlertMgt">

<Total_Msgs/>

<HEADER>

<DOCDATE/>

<VENDOR/>

</HEADER>

<ITEMS>

<PURMAT/>

<NETPRICE/>

<UNIT/>

<PRICEUNIT/>

</ITEMS>

<Items_Schedule>

<QUANTITY/>

<DELIVERYDATE/>

</Items_Schedule>

</p3:PurOrder_Request_MT>

<p3:PurOrder_Request_MT xmlns:p3="http://BpmCollectMsg:AsyncSync:AlertMgt">

<Total_Msgs/>

<HEADER>

<DOCDATE/>

<VENDOR/>

</HEADER>

<ITEMS>

<PURMAT/>

<NETPRICE/>

<UNIT/>

<PRICEUNIT/>

</ITEMS>

<Items_Schedule>

<QUANTITY/>

<DELIVERYDATE/>

</Items_Schedule>

</p3:PurOrder_Request_MT>

I am getting results in same format means two different nodes of " PurOrder_Request_MT ".

But I was expecting results in this format ::

<p3:PurOrder_Request_MT xmlns:p3="http://BpmCollectMsg:AsyncSync:AlertMgt">

<Total_Msgs/>

<HEADER>

<DOCDATE/>

<VENDOR/>

</HEADER>

<HEADER>

<DOCDATE/>

<VENDOR/>

</HEADER>

<ITEMS>

<PURMAT/>

<NETPRICE/>

<UNIT/>

<PRICEUNIT/>

</ITEMS>

<ITEMS>

<PURMAT/>

<NETPRICE/>

<UNIT/>

<PRICEUNIT/>

</ITEMS>

<Items_Schedule>

<QUANTITY/>

<DELIVERYDATE/>

</Items_Schedule>

<Items_Schedule>

<QUANTITY/>

<DELIVERYDATE/>

</Items_Schedule>

</p3:PurOrder_Request_MT>

As in target they are coming as two different payloads & I am calling the RFC one time only. RFC is taking the data of first payload only. Right now my scenario is working more as creating a batch of payloads who has same Vendor Name. But my RFC doesn't take batch of payloads.

Can you pls. explain what exactly the n:1 pattern means.

Best regards

Lalit

Former Member
0 Kudos

Hi,

In the target message type - Try making the <Total_Msgs> 0 to 1.

<HEADER> and the other nodes that are occuring more than once to 0 to unbounded.

This way, no matter how many source messages are generated, the target will have one <total_msgs> and under them <header> and other nodes will occur multiple times.

Regards,

Smitha

Former Member
0 Kudos

Smitha

I can't make <HEADER> & other equivalent nodes 0 To N as I am doing multi-mapping between same Message types. If I will make these changes that will be reflected on both the sides.

<Total_Msgs> field contains a number in the payload, which corresponds to the total number of messages to be received in the BPM loop.

- Lalit -

Former Member
0 Kudos

Hi,

Have you tried using split by value and change contexts? I am not sure of the occurences of the headers involved,hence i cant help you much here.

Go through the blog message mapping simplified - part II by sravya talanki. It might help you.

Regards,

Smitha.

Former Member
0 Kudos

Thanks Smitha.

After reading the Sravya weblogs, I am planning to split the messages into "Header" & "Item". Since Header would be same, i will leave it aside & start collecting the items till the loop executes. And than again I have to merge these collected items with the Header to make the single payload.

Does anyone tried this splitting & merging. Let me know what steps you followed.

Best regards

- Lalit -

Former Member
0 Kudos

Thanks Abhy. But I already worked on those Async-Sync Scenarios & they are working fine. Here my issue is with n To 1 Payload dependant Pattern.

Also my sender is same which is sending 3 messages which I am correlating on the basis of Vendor Name.

<u>Sravya</u> :: I treid SWWL but this TCode is asking for Work Item ID, now for my process I know process ID & instance ID only.

Also this is the error I am getting :

<b>com/sap/xi/tf/_PoReqSingleToMultiple_MM_com.sap.ai

i.utilxi.misc.api.BaseRuntimeExceptionRuntimeExcep

tion in Message-Mapping transformatio~</b>

This Multi-Mapping is for combining the Multiple messages into One message which I am using in Transformation Step of my BPM.

Also this mapping is same as " <i>BpmPatternCollectMerge</i> " ( <i>SAP Basis --> SAP BASIS 6.40 -->http://sap.com/xi/XI/System/Patterns</i> )

Pls. Suggest.

Best regards

Lalit

Shabarish_Nair
Active Contributor
0 Kudos

Hi ...

Can you go thru this weblog.

/people/shabarish.vijayakumar/blog/2005/12/07/transformation-error-and-still-stuck

It would help you with the SWWL transaction.

~ShaBZ~

Former Member
0 Kudos

Hi Lalit,

I have the steps involved for a similar scenario.....see if it helps you.

The steps to be followed to have 2 senders and 1 receiver in your case, we need to follow the following steps:

1) RFC from A will trigger the BPM.

2) Receive step

3) Send step (sync) to call RFC in B

4) Transform step map response from B and A's data to C

5) Send step send the output to C.

Think these 2 blogs can help you to configure a BPM using RFC synchronous call.

/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit

https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken] [original link is broken]

http://help.sap.com/saphelp_nw04/helpdata/en/43/65d4dab39b0398e10000000a1553f6/content.htm

http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm

http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/content.

I hope it has helped you in some way.

Regards,

Abhy

STALANKI
Active Contributor
0 Kudos

delete the old ccBPM instance from SWWL transaction and then execute it again.It might work.other wise paste the error.