cancel
Showing results for 
Search instead for 
Did you mean: 

BPM: Multiple records

Former Member
0 Kudos

Hi All,
I am having a requirement where i am using BPM. Sender will send a xml file having customer number in it along with other fields. I have to check whether the customer number exist in ECC or not. If customer number exist then i have to send the XML file in CRM and if in case customer does not exist i have to first create a customer in ECC and then send the xml file to CRM. For this i have configured a BPM which will work for a xml file having one record

                                                   (if customer exist) Send(to CRM)
                                                                /
Receive(XML file)--SyncSend(to ECC)--Switch(parse the resposne)-
                                                                \
                                           (if customer does not exist) Send (to ECC,create customer)--Send (to CRM)

Now the issue is i am able to handle the above scenario for one input record but my xml file will be having multiple records and each record will be having one unique customer.  Suppose i am having 5 records and each record is having customer as :101,102,103,104 and 105.

Now 102 and 104 customer number does not exist in ECC system, so i have to create 102 and 104 customer in ECC and then send the whole XML file to CRM system.

So, how can i change my above BPM so that it will work for the above mentioned situtaion?


Thanks!!

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Arun/Imanuel

Thanks for the response.

Let me tell you something more about the scenario.

My synchronous proxy will check (Sync Send) for each customer and return a response something like exist and does not exist and in the "Switch step"  i will check if any of the response field coming in the proxy response structure is having value as "Does not exist" i will make the BPM to run in the otherwise branch of "Switch" step (Send ECC -> Send CRM).

But my concern is how my BPM will identify for which customer i need to update the table in ECC system ( i can use RFC lookup and then send only the non existing customers in ECC, but i dont want to do it).

Please share your thoughts.

Thanks!!

Former Member
0 Kudos

Hello.

You will need to investigate the scenario to fully understand it.

Basically - what it does is first split your multiple records file into many one record messages (using the 1 to 0..unbound message mapping and operation mapping you can see in the demo)

Then - you make a Block with ParForEach mode - that will process each of the splitted records in a loop. in that block you will send the RFC check to the ECC, process the result, and act accordingly.

notice that in the bloke you are processing one record only! the block is your loop on the records.

This is the idea in general - you need to learn and understand the technicalities

try to look at help.sap.com, and other blogs here.

Former Member
0 Kudos

HI,

The file will be having thousands of records, so do you actually think that the above design of splitting into multiple messages will help??

What i thought is i will try to determine all the non existing customers and then update ECC table only with records for those NE customers rather then checking for each customer again.

Thanks!!

Former Member
0 Kudos

Hmm...

I am not sure what are the limitation of messages in the BPM.

regarding your idea:

it seems that you want to make thousands of RFC calls - as you call the RFC for each user.

If you want this to be effective - try to change the RFC so it will receive the complete list of the users you want to check, and will return a list of users that don't exist - or even better - already create those that don't exist.

Then you will be able to create all of those in the ECC (once again - via the BPM in a loop if you need specific information for each of them - or maybe the RFC function already created the user if it doesn't exist in the first place) and after you finish with the ECC part-

you will just run the "send CRM" on the original complete list.

I am guessing you don't use a SAP standard function - so you can modify it as you will.

Maybe it needs some fine tuning, and maybe I missed a problem here, but it seems more effective then the original BPM.

Hope you will find a good solution (:

Good luck,

Imanuel Rahamim.

Former Member
0 Kudos

Hello.

SAP have made a demo BPM for message splitting via BPM.

It is in your ESR.

in SAP BASIS - software component.

name: MultipleFlightBookingCoordination

namespace: http://sap.com/xi/XI/Demo/Agency

Hope it helps.

Good luck,

Imanuel Rahamim.

former_member189440
Participant
0 Kudos

Hi,

Can you check the Multiline Option in the receive step in Integration Process once.

With Regards.

Arun..