Skip to Content
0
Former Member
Jan 21, 2011 at 12:52 PM

BPM - two FORKS and a Transformation issue

30 Views

my scenario is File - BPM - Proxy

input file has multiple records and each record has 1 field that we put a validation logic in. There will be one message created for each record, so this is a 1:N Integration Process

I used two Forks:

Fork #2 has two branches: Branch 1 --> Transformation Step 3; Branch 2 ---> Fork #1.

Validation#1 = if the validation field has null value then it will go to Transformation Step3 along Fork#2 (end receiver is Proxy-C)

validation#2 = if the field has value then it will go inside Fork#1 which has 2 branches: Transformation Step 1 (goes to Proxy-A) and Transformation Step 2 (goes to Proxy-B)

I am testing a file with only the null value, so I am doing validation#1 only.

I can see the message in BPE engine (Outbound status = Processed successfully) but the message is stucked in the BPE

I checked on the workflow log and here is what i see:

1) Transformation Step 3 is executed (all mapping steps 1-4 completed so this is successful)

2) Transformation Step 2 is executed (but mapping encounters an exception so this is not successful)

3) Transformation Step 1 is not executed already because of the exception, and therefore Send Alert is triggered.

It seems that all records of the file passes through all the branches, which is not intended.

My intention is that when the validation field has null value that record will only pass thru Transformation Step 3, if it is not null then record will pass thru Transformation Step 2 & 1.

I already created a mapping for this validation, and when I test the Interface Mapping for Transformation Step 3 (consisting of 4 mapping steps) using an actual payload it is successfuly generating the message. - so no problem in this Interface Mapping.

But on Runtime, BPM triggers exception due to validation#2 failing which again is because all records of file seem to pass on both Forks. I want that when Validation#1 is true that specific record only passes in Fork#2 and not in Fork#1 also.

I am using ParForEach.

Can you kindly advise how to correct this issue?