cancel
Showing results for 
Search instead for 
Did you mean: 

a BPM design question

Former Member
0 Kudos

I have a scenario which is basically, File to RFC scenario. File will have basically lot of records. Inside BPM, i need to loop through those records and do one JDBC lookup(temporarily, later it will be another RFC lookup), and finally call RFC adapter to post data to SAP. This needs to be happened for each record in File.

Also, during the processing of file, even if one of the JDBC call fails, then it should not stop the entire file. It should log that error and continue processing the next record of the file. How do I do this in BPM? WHat steps I need to use and how?

Thanks,

deepesh

Accepted Solutions (1)

Accepted Solutions (1)

moorthy
Active Contributor
0 Kudos

Hi,

In the BPM-

1) Receive the message from File

2) Do u need to call lookup for each records ? then go with ParForEach Loop and call the JDBC lookup. You can do the error handling based on the sync result

3) Then send those records into SAP via RFC

Step 2 , is not advisable in the BPM, because sync call for each record, performance will hit

In this case, I suggest u to go with RFC lookup, ie. thru Sync ABAP Proxy call , and post the data into SAP with one call. In this case all logic to handle errors etc is taken care in the ABAP proxy so that Middleware will not affect the performance.

Hope this helps,

Regards,

Moorthy

Former Member
0 Kudos

Thanks Krishna.

Temporarily I need to look up in JDBC, though later it will be an RFC lookup.

So, Yea even we are thingking to do lookup and posting data in one RFC call later instead of RFC lookup but for now I need to do JDBC lookup.

This file is going to be processed as batch file in the nights, so even if its take little more time, that should be ok. I mean we can compromise little bit on performance now.

So, assuming that I will be doing, JDBC lookup for the time being, how do I take care of failure scenario, and continue ahead with next record? what steps I need to use?

--Deepesh

bhavesh_kantilal
Active Contributor
0 Kudos

Deepesh,

Are you going to perfrom a JDBC look up for every record of the file?

If yes, then you will need the following in your BPM,

1. Receive -- To receive the file.

2. Transformation -- 1: N to split the File into N records.

3. Block with for each -- DO the JDBC lookup inside the mapping and wrap it with a Exception handler and do the needful in the exception handler for the exception.

Meanwhile, anyways as you are using a BPM, you might as well use the Receiver JDBC adapter and select the data that you want from the database in one shot!

Regards

Bhavesh

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Deepesh,

You can even try like this.

If you need to retrieve values from JDBC with key values from each input, you can go for a mapping where you create 'N' statements for each of 'N' inputs. Then a single JDBC adapter is enough to fetch all the data.

Hope my Idea is clear.

So now the steps would be,

1. Receive - to receive the file.

2. Transformation - 'N' statements for 'N' keys in single Mapping.

3. Send - For JDBC lookup, retrieveing all the values.

4. Send - For sending to R/3.

Regards,

P.Venkat

0 Kudos

Hi,

you can do a message split in IE.

1 File to N messages and then send this N messages to BPE. So you don't have to care about processing more then 1 message in BPE.

Regards

J.

Former Member
0 Kudos

I didnt understand. Can you elaborate little more please.

--Deepesh