cancel
Showing results for 
Search instead for 
Did you mean: 

Message split according to data

buddhika_krishantha
Active Participant
0 Kudos

Dear All,

I have IDOC to JDBC scenario. I have multiple SQL servers with same stored procedure name. I’m using IDOC ARTMAS to trigger material data from SAP. Once IDOC came to SAP PI server (Single stack without BPM) I want to create multiple messages as per the value in <E1BPE1MARCRT>-<Plant> field.

Eg:- <E1BPE1MARCRT>-<Plant> = “SCCC” Header data + 1st E1BPEMARCRT segment Data should go to sql server A

<E1BPE1MARCRT>-<Plant> = “SCA2” Header data + 2nd E1BPEMARCRT segment Data should go to sql server B

Please help me to resolve this.

Accepted Solutions (1)

Accepted Solutions (1)

JayChan
Active Participant

Hi, Buddhika

Using standard PI message split, node function "createif" and setup 2 different JDBC receiver communication channels can implement your idea.

1.Set up standard message split in message mapping object in the tab of "Signature." 1st msg is design to go to System A while 2nd msg goes to System B.

2.Leverage "createif" node function so plant "SCCC" goes to 1st target msg and plant "SCA1" goes to 2nd target msg. Be noticed, make "plant" node in the context of "grand parent" level, in this case it is "MTComposite", rather than a regular one.

3.Configure 2 different JDBC receiver communication channels to represent different DB.

buddhika_krishantha
Active Participant
0 Kudos

Thanks for your detailed explanation. 🙂 I have more than 70 Databases. Will that be okay to use more than 70 target messages in message mapping?

manoj_khavatkopp
Active Contributor
0 Kudos

I would suggest having 70 different receivers and there individual mapping, this way you can maintain them independently and it would be more easy to do if any further enhancement.

buddhika_krishantha
Active Participant
0 Kudos

If I get another database, then I have to add another target message right?

JayChan
Active Participant
0 Kudos

Yes, you need to add one more extra.

JayChan
Active Participant
0 Kudos

I'm not quite sure about it. It depends on PI's capacity and perhaps you can make an experiment to find it out.

Answers (0)