on 01-06-2010 2:58 AM
Hi
In receiver determinaiton , need to determine the receiver based on the input payload. Sender Service has to send the file to 4 different receivers and each receiver has to be determined based on the field values in the payload. But, geting error when implementing the conditions.
my source structure is
src_file1_data
file1
Header
field1
field2
Body
field3
field4
need to determine on fields Header/field1 and Body/field3
if
field1 = (01 or 02 or 03) and (field3 = ABC) --> Receiver1
field1 = (01 or 02 or 03) and (field3 = XYZ) --> Receiver2
field1 = 01 and field3 = ABC -
> Receiver3
field1 = 01and field3 = XYZ -
> Receiver4
Tried with OR ,AND conitions in receiver determination but not getting the desired output
Pls help
Thanks in advance
my conditions are specified below
if
field1 = (01 or 02 or 03) and (field3 = ABC) --> Receiver1
field1 = (01 or 02 or 03) and (field3 = XYZ) --> Receiver2
field1 = 04 and field3 = ABC -
> Receiver3
field1 = 04 and field3 = XYZ -
> Receiver4
tried various ways giving the AND and OR conditions ,but of no use
pls help
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Sindhu,
I have tried with whatever conditions you have given in Receiver determination and it is working fine for me.
In SXMB_MONI what is getting displayed for your scenario?Is there any error in any pipeline?In Receiver identification pipeline is your business service getting identified or is it throwing error in that pipeline step?
Rgds,
Lekshmi.
Hi
I am getting error in the Receiver Determination Step , unable to determine the receiver
Pls let me know the sequence of conditions in RD condition editor,i too tried with OR ,AND but not getting the output
after giving OR conditions,when i try to specify AND , the condition is being added with the last OR
Edited by: Sindhu M on Jan 6, 2010 6:59 AM
Hi Sindhu,
Ok.
So check your condition once again in Receiver determination.
In the condition editor have you used an XPath object or context object?
Is it anything similar to this ???
(/p1:Trial1_MT/file1/Header/field1 = 01) OR (/p1:Trial1_MT/file1/Header/field1 = 02) OR (/p1:Trial1_MT/file1/Header/field1 = 03 AND /p1:Trial1_MT/file1/Header/Body/field3 = ABC)
Rgds,
Lekshmi.
Also check the conditions your conditions mentioned for Receiver 1 and 3 satisfies for the same...
i.e if receiver 3 is satisfied then receiver 1 also gets called.....
so justcheck whether conditions is as per requirement or not...try giving one by one conditions and test instead of providing all conditions at a shot and testing...will know which exactly causing the error...
HTH
Rajesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
May be the condition is not maintained properly.....you either have to maintain each condition separately like field1 = 01 or field1 = 02 and so on...each condition will be on a separate row of the condition editor with the appropriate operator AND/ OR.
Alternately you can write the entire condition for Receiver1 in the single line as shown in this blog:
/people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination (a better approach)
Just take care that you maintain the brackets properly (and have the required bracket at the appropriate place)...also note that the operators and/ or need to be in lower case.
Regards,
Abhishek.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
my source stucture is defined below
src_file1_data
-
file1
-
Header
-
field1
-
field2
-
Body
-
field3
-
field4
Edited by: Sindhu M on Jan 6, 2010 4:00 AM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For Receiver 1:
/p1:src_file1_data/file1/Header[(field1 = "01" or field1 = "02" or field1 = "03") and (Body/field3 = "ABC")]
For Receiver 2:
/p1:src_file1_data/file1/Header[(field1 = "01" or field1 = "02" or field1 = "03") and (Body/field3 = "XYZ")]
For Receiver 3:
/p1:src_file1_data/file1/Header[(field1 = "01") and (Body/field3 = "ABC")]
For Receiver 4:
/p1:src_file1_data/file1/Header[(field1 = "01") and (Body/field3 = "XYZ")]
The above will be your Left operands....Middle operand will be EX.....i am assuming that Body is under Header node.
When source has values field1 = 01 and field3 = ABC, both Receiver1 and Receiver3 will be called.
When source has values field1 = 01 and field3 = XYZ, both Receiver2 and Receiver4 will be called.
Regards,
Abhishek.
User | Count |
---|---|
91 | |
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.