on 05-08-2009 3:42 AM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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.
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.....
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.