cancel
Showing results for 
Search instead for 
Did you mean: 

how to control flow of messages to target

Former Member
0 Kudos

I am using a Multi mapping in the Message mapping. The structure of Target message is as follows.

Messages1

+Node1

+Node2 ( duplicate sub tree of Node1)

+Node3 ( duplicate sub tree of Node1)

+Node4 ( duplicate sub tree of Node1)

Messages2

+structureNode

Messages3

+NodeStructures

I am using a Enhanced Interface determination so that Node1, Node2....., structureNode ( of messages2), NodeStructures ( of messages 3) will go as a seperate message to target.

Suppose,

None of the Nodes under Messages1 get generated in mapping but still messages1 will be sent to the target as a single message.

THe target system is facing problems with this and generating error messages each time this happens.

I would like to stop processing empty messages on PI.

Whr should I stop such empty messages?can I add a module that provides me this facility?

Why did SAP provide empty messages stop option in File not in SOAP?

I know this provision is there in File CC but not in SOAP.

Things I cannot do:

1. Cannot have a mapping that will restrict messages, because I am using a multi mapping with each messae as 1...1 so I canot use @ MM.

2. I canot use ext receiver determination because I need to choose my target message based on the target mapping result not from the source payload...

Now how do I solve this problem?

Thanks,

Nikhil

Accepted Solutions (1)

Accepted Solutions (1)

former_member200962
Active Contributor
0 Kudos
I would like to stop processing empty messages on PI.

what do you refer when you say EMPTY message?

1) Entire File is Blank...nothing is present

OR

2) File has message structure but lacks payload.....

<SRC>

<Name></Name>

</SRC>

If it is the first case then just search on SDN for Processing Empty File....you will find the threads...

If its the second then check for the existence of payload within a particular tag which you know will always be appearing and which is supposed to conatin a value...

Regards,

Abhishek.

Former Member
0 Kudos

Abhishek,

its the second case.

I used multi mapping in which case, multiple messages exists and each messages has 1...1 so it will always appear with no value in any of its fields.

Where do you want me to place the condition for mandatory fields?

see the mandatory fields always apear in source but I wanna filter on the target mapping.

moreover there are arouond 8 different messages which has different mappings.

Manisha,

In receiver determination u put condition tht if any of node is created send it to target else don't do anything. in this case message is with PI only and will not get forwarded to target system

How do we keep this condition in receiver determination? to place such conditions we need extended receiver determination.

However, had my mapping been simple I could have handled it in the MM itself.

Its complex.

Appreciate your suggestions Manisha, Abhishek.

thanks

former_member200962
Active Contributor
0 Kudos
its the second case.

good you are saved from some tedious settings

I used multi mapping in which case, multiple messages exists and each messages has 1...1 so it will always appear with no value in any of its fields.
Where do you want me to place the condition for mandatory fields?
see the mandatory fields always apear in source but I wanna filter on the target mapping.

The condition has to be put in the mapping program that you are using...check out my answer in the following thread...

functionality remains the same...just implementation depends on what mapping program you use(graphical, xslt.....)

Regards,

Abhishek

Former Member
0 Kudos

sorry about confusion...

The target message will be like,

Messages1

+Node

++subnode

good you are saved from some tedious settings :)

There are many fields under subnode which are not coming for empty message. I do not want PI to process such empty messages.

I am on 7.0 SP 14 .

The scenario is Proxy - SOAP. Asynch.

I am eager now.. What tedious settings do I need to make?

The mappings, conditions to each root node is already existing. I am using Enh interface determinaiton to send each message as one individual message.

Multi mapping is a mixture of 4 different Message types... of which one of the MT repeats around 4 times...

pretty complex mapping

thanks.

former_member200962
Active Contributor
0 Kudos
There are many fields under subnode which are not coming for empty message.

If the nodes are not coming then u can use a standard function available in the mapping...called exists..present under NodeFunctions.....

Source --> exists----> if    ----------------> Target
                               Then(Source)

If no value is coming in the source node then apply the logic as mentioned in the link which i have provided you.......here you do not need any other setting than this.....

Former Member
0 Kudos

i thought abt it in the first...doesnt work with this mapping.

Thanks.

Experts, any useful suggestion?

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

In receiver determination u put condition tht if any of node is created send it to target else don't do anything. in this case message is with PI only and will not get forwarded to target system.

I m just guessing it..just try out

Regards,

Manisha