cancel
Showing results for 
Search instead for 
Did you mean: 

How to pickup different values from segment and Qualifier in Receiver Deter

Former Member
0 Kudos

HI All,

I am wondering if someone can please help me in Receiver Determination Condition.

I have a requirement in which I need to pick-up values from different Segment and Qualifier and based on that I need to send the data to correct receiver.

Requirement

I am using QCERT.QALITY02 iDoc and I need to check the following fields

if /QALITY02/IDOC/E1TXTH1/TDOBJECT = HTTP AND

/QALITY02/IDOC/E1TXTH1/E1TXTP1/TDLINE !='' AND

/QALITY02/IDOC/E1EDK02/QUALF != 45 AND

/QALITY02/IDOC/E1EDK02/BELNR != DE01 AND

/QALITY02/IDOC/E1ADRM1/E1ADRE1/EXTEND_D != 009835008

I used this condition but I am getting this error

<Trace level="2" type="T">Check conditions for rule line no. 3</Trace>

<Trace level="3" type="T">...call rule engine for Condition %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&_MSG&;NSP=&_NSM&;XPATH="/QALITY02/IDOC/E1TXTH1/TDOBJECT")% CE HTTP and %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&_MSG&;NSP=&_NSM&;XPATH="/QALITY02/IDOC/E1TXTH1/E1TXTP1/TDLINE!=''")% EX and %CL_SAI_SWF_RULE_ENGINE.MSG_GET(MSG=&_MSG&;NSP=&_NSM&;XPATH="/QALITY02/IDOC/E1ADRM1/E1ADRE1/EXTEND_D=0009835008")% EX</Trace>

<Trace level="2" type="T">......extracting (new) for Extractor: XP /QALITY02/IDOC/E1TXTH1/TDOBJECT</Trace>

<Trace level="2" type="T">......extracting values found: 1</Trace>

<Trace level="2" type="T">......extracting values found: 1</Trace>

<Trace level="2" type="T">......extracting (old) for Extractor: XP /QALITY02/IDOC/E1TXTH1/E1TXTP1/TDLINE!=''</Trace>

<Trace level="2" type="T">...invalid Receiver:

/QALITY02/IDOC/E1EDK02/QUALF = 45 is appearing in the 3 segment of E1EDK02.

Thanks,

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Check the multiline checkbox so that all occurrences of the segment are checked.

Also, for complex conditions, you can go for Xpath Expressions (option EX) which gives you more control over how you build the query.

Regards

Former Member
0 Kudos

multi line is already selected

I need to know in SAP Pi 7.11 how do we get the data from the particular segment in Receiver Determination through EX

because I tried with E1EDK02[postion()=5] but unfortunately it didn't work.

Former Member
0 Kudos

Hi Iqbal,

When i need to write a complex expression in the condition, i take help of W3schools

http://www.w3schools.com/XPath/xpath_syntax.asp

regarding the position you can try.

/QALITY02/IDOC/E1EDK02[position() = 5]/QUALF != 45