cancel
Showing results for 
Search instead for 
Did you mean: 

How to split multiple jdbc sender rows in integration process (ccBPM)

Former Member
0 Kudos

Hi,

I set up an integration process in PI 7.3 where I receive data by jdbc, do some web service calls and send data back by jdbc receiver.

This is working so far. For test purposes, because I didn't want to consume all test data in the database at once, I made a

select top 1 * from table where status = '4'.

With this select I got only one message and evrything worked fine.

Now I removed the "top 1" clause and my message inbound contains multiple rows now. I start my process with this as receive step.

In the message mapping I changed the occurence of the target message to unbounded because I have to create 1 target message for every row of the database.

What do I have to do in the integration process to process every target message seperately?

Thanks and Regards

/Michael

Accepted Solutions (1)

Accepted Solutions (1)

markangelo_dihiansan
Active Contributor
0 Kudos

Hello Michael,

Now I removed the "top 1" clause and my message inbound contains multiple rows now. I start my process with this as receive step.

In the message mapping I changed the occurence of the target message to unbounded because I have to create 1 target message for every row of the database.

What do I have to do in the integration process to process every target message seperately?

Your BPM should look like this:

Start -> Receive -> Transformation (1:n mapping) -> container (Assign 0) -> Loop [ container (increment + 1) -> Send ] -> End

- In the transformation step, target message should be of multiline.

- There should be a container where you assign the index to be 0

- You could use an exporting parameter row_count(parameterized mappings) as another container and use it in the condition in your loop e.g index!=row_count

- Inside the loop, another container is needed which increments the index by 1

- Send step will send each message in the loop

Hope this helps,

Mark

Former Member
0 Kudos

Hi Mark,

yes it is working now. Instead of a Loop I made a ForEach Block because I do not need a counter and end condition. But a loop would also work.

Thanks

Michael

markangelo_dihiansan
Active Contributor
0 Kudos

Thanks Michael! I learned something new.

Regards,

Mark

Answers (2)

Answers (2)

ambrish_mishra
Active Contributor
0 Kudos

Hi Michael,

I think you need to do a multi-mapping (1:n) before the BPM and the output message should be inputs for the receive step in BPM.

Ambrish

former_member182004
Contributor
0 Kudos

Hi Michael, after you changed the occurence of the target message.. have you did this in Message Mapping or also in Op. Mapping?

Because if you did it in both sides, it should process every message separately.

Regards,

  Juan.