cancel
Showing results for 
Search instead for 
Did you mean: 

JDBC to Multiple IDOC scenario

Former Member
0 Kudos

Dear Experts,

My Scenario is JDBC to Multiple IDOC scenario.

I am reading 100 records and generating 100 IDOC's at the target ECC system, the problem which I am facing is if I have any issue with 1 record the total message gets failed in SXMB_MONI due to mapping failure.

So again I need to reset all 100 records in my source database and I should reprocess the same.

Is there any way to process the 99 and fail only one record which causes error.

Is Stored procedure will fix this issue or do I need to use BPM for this to achieve.

Please advice.

Thanks,

--Sai

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Sai,

As you are selecting 100 records in one go, all the records will come as a single message in PI.

Please find below my suggestion for this issue.

1. Selecting one record per message will not be efficient. So please do not use it.

2. Create a secondary sctucture. Generate it only if there is an error in the record. You may set up an alert for that message. So if any error occurs, other 99 idocs can go normally, while you will get an aleart for the failed record.

3. Another option is to create an idoc for error record also. You can do this by providing some default values in place of error fields. You can then monitor such idocs in ECC.

Personally, i feel 2nd option is the best. Let me know if you need more information on this.

Regards,

Gavaksh

Former Member
0 Kudos

HI Gavaksh,

Could you please explain more on the 2nd option.

Thanks,

Sai

Former Member
0 Kudos

Hi Krishna,

Sorry for the late reply.

In 2nd option, you can add two records in the target side. create the first record if the input is correct. If the input is incorrect, create the second record at the target side. This way, you will get two different nodes at the target, one with all correct input, and second with error Input. you can configure receiver determination for the first node(with correct input) while you can let the second node fail (with error: no receiver found).

Later, you can configure alerts for this particular receiver interface name. So whenever, any input file contains wrong data, second interface will be triggered, it will fail in receiver determination, and your users will get a notification mail.

I hope this make sense.

Regards,

Gavaksh

former_member184720
Active Contributor
0 Kudos

Hi Sai - Is there any way to process the 99 and fail only one record which causes error..

>>> As above suggested if you can modify your select query to pick one record at a time..

Is Stored procedure will fix this issue or do I need to use BPM for this to achieve.

>>> Yes. You can  use stored procedure to filter the data.. i.e. whatever the condition for which the record is failing.. you should handle it in SP.

However if it a  data quality issue - May be request the sender system to provide the fix rather than adjusting in PI.

If that is the expected data then - either filter it using your select query if possible else handle inside the stored procedure. No need of BPM..

Harish
Active Contributor
0 Kudos

Hi Sai,

If you are using multi map then if one record is failed all record will fail. this issue can handle with below option

  1. select one record at a time from JDBC, but it can leads to 100 connections for 100 records.
  2. Handle in the mapping so that mapping will not fail and create another message for failed record, to identify the failed record

Hope this help

Harish