on 03-18-2011 4:50 AM
Hi.
I want to stop a message in Receiver Determination.
If portNum = 5 and id = 38268
the message shouldn't be process , but I tried many time and it doesn't work.
My previous test
1.- (/S1/A1/@portNum != '5' and /S1/A1/@id != '38268')
2.- (/S1/A1/@portNum u2260 5 AND /S1/A1/@id u2260 38268)
Below is an example
....
.<S1>
....<A1 portNum ="5" id ="38268"/>
....<A1 portNum ="6" id ="18258"/>
....<A1 portNum ="7" id ="38268"/>
.</S1>
....
Can you help another posible solutions?
Regards
Lucho.
Hi Lucho,
(/S1/A1/@portNum != '5' and /S1/A1/@id != '38268') is always true, if you have more than one element A1. You need to combine both conditions:
not(//S1/A1/@portNum[../@id = '38268'] = '5')
I m pretty shure this is correct xpath syntax but the question is if PI can handle that...
Regards,
Udo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi.
Thanks for your inputs. Finally I got with the solution.
/S1[ ./A1/@portNum != '5') and ( ./A1/@id != '38268')]
Because If i put in depth level , PI handle all list as one and another problem was if port ="7" and id = "38268". the message always was stopped.
Edited by: Luis Ortiz on Mar 21, 2011 10:26 AM
Edited by: Luis Ortiz on Mar 21, 2011 11:24 AM
Hi Lucho,
You mean to say..if port = 5 and id = 38268 then you donu2019t want to process the message.. then you can try following steps:
- Provide negative condition as if post not equal to 5 and id not equal to 38268 ..
- And on at bottom of receiver determination select error message radio button . this will error out your message and will not process..
- You can select ignore radio button also.. this will ignore the message and there wont be any error in your SXMB_MONI..
This should work in your case.. however as you mentioned in above structure there are multiple occurrences for portNum and id.. which is not possible to use in condition in receiver determination.. there is possibility that one occurrence will have port = 5 and id = 38268 and another will have some other value.. in that case if you want to send only those messages then I think you might need to change structure or might need to change the condition logic associated to it..
If there is only one occurrence of these fields then above suggested steps should work ..
Thanks,
Bhupesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Thanks for your reply.
Yeah I know I have multiple occurrences . I want the negative condition of this if A1 =5 and id = 38268.
Below is the complete example.
.<S1>
..<loopX>
.....<A1 portNum ="5" id ="38268"/>
..</loopX>
..<loopX>
....<A1 portNum ="6" id ="18258"/>
..</loopX>
..<loopX>
....<A1 portNum ="7" id ="38268"/>
..</loopX>
.</S1>
....
yeah .. I can understand but in that case you may need to change the condition or logic behind that in your scenario.. because I faced same problem few days back.. and it was not working with Receiver Determination condition then I changed logic from sender side to get required input in format and then mentioned condition..so there is possibility that it will not work if you have multiple occurrences and few satisfying condition and few are not..
Thanks,
Bhupesh
Hi,
Are you using FCC at sender side? If yes then you can try a workaround by using the FCC property "Recordset per message ". you can keep the value as 1. By doing so you can split multiple records in single message to multiple message with single record.
Then you can check your condition for Receiver determination.
Hope this helps.
Regards,
Deepak
User | Count |
---|---|
84 | |
10 | |
9 | |
8 | |
6 | |
6 | |
6 | |
5 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.