Receiver Determination Condition and XPATH

Hi Everyone,
I have a receiver determination with conditions and can not figure out why one thing is working, and the other isn't.
As suggested in the following forum post, XPATH and RECEIVER DETERMINATION, I had to do the following to my XPATH expression to make it work.  The full xpath expression is this:
(/p1:RenExtract_MT/Detail/CompanyCode = 9740)
where
p1 = http://company.com/xi/fin/
but whenever I put in a condition it could not find a receiver.
Hoewver, when I did this:
//CompanyCode
it worked.
I did everything through the condition editor, many times, and didn't type anything in myself.  Is there a length limitation or something (I removed some data in here, the expression is really longer!).
Any ideas?
Peter

Hi Peter,
I do not have an explanation for this wired behaviour.
But I can assure your, that your working solution, the //something expression is a good one and not inferior to a solution using an explicit, absolute path.
Why is that: I can remember some benchmarks, where the //something expression always outperformed the other one.
Regards
Gregor

Similar Messages

  • Receiver determination Condition. XPATH suggestion

    Hi All,
    I got a condition to put in receiver determination like..
    Condition 1 --> System_A
    //ZORDER03/IDOC/E1EDKA1(PARVW='LF')/ILNNR = SA       AND
    //ZORDER03/IDOC/E1EDKA1(PARVW='LF')/PARTN = 0000050570      AND
    //ZORDER03/IDOC/E1EDKA1(PARVW='WE')/LIFNR = 1433            AND.
    It it satisfies above condition, message should goto System_A
    Condition 2 --> System_B
    //ZORDER03/IDOC/E1EDKA1(PARVW='LF')/PARTN # 0000050570      AND
    //ZORDER03/IDOC/E1EDKA1(PARVW='WE')/LIFNR # 1433           
    The values will be coming differently for E1EDKA1(PARVW='LF')/ILNNR like XMl,KNF,DHD,File etc apart from 'SA'.
    It is working correctly only for 'SA', not working for remaining values.
    Is there any simple way to insert this conditions? Kindly suggest.
    Thanks
    Deepthi.

    Hello,
    Kindly check the below condition, assuming PARVW, ILNNR, PARTN are under same parent node i.e. E1EDKA1:
    For System A:
    //ZORDER03/IDOC/E1EDKA1[( (PARVW = 'LF') and ((ILNNR = 'SA') or (PARTN = '0000050570'))) or ((PARVW = 'WE') and  (LIFNR = '1433'))]  EX
    For System B:
    //ZORDER03/IDOC/E1EDKA1[not (((PARVW = 'LF') and ((PARTN = '0000050570'))) or ((PARVW = 'WE') and  (LIFNR = '1433')))] EX
    -Rahul

  • Receiver Determination conditions

    Hi All
    We have a scenario where a IDOC is trigerd in the ecc system and multiple IDOC is send to the XI system. Only when a certain field is 3  char or 5 char or 7char long should the file be dumped on the server. Is is possible to have a condition in the receiver determination to say if the field is between 100 and 999 or between 10000 or 99999 or between 1000000 and 9999999 to only create the files?
    Any help will be appreciated.

    hi,
    Its quite easy to achieve this requirement.
    You can edit the xpath in the Recv. Determination and then in combination with xpath standard functions achieve this.
    have a lo0k at my blog - Customise your 'XPATH' Expressions in Receiver Determination
    Also for xpath functions ref: http://www.w3schools.com/Xpath/xpath_functions.asp

  • Condition receiver determination: Condition Editor

    Hi,
    I have to ruote the message to multiple receivers based on source filed value. 
    1) If FIELD-A = 1 or 2 or 3, we have to send it to RECEIVER-1
    root/FIELD-A = 1 or root/FIELD-A = 2 or root/FIELD-A = 3 = RECEIVER-1
    2) If FILED-A # 1 or 2 or 3 (anything other than 1,2 and 3), we have to send it to RECEIVER-2
    3) No matter what the FIELD-A value (1,2,3,4, anything), we have to send it to RECEIVER-3
    I have configured it in condition receiver determination:
    Conditions 1 and 3 are workign fine, but how do I make condition-2 work?
    I have tried to give root/FIELD-A # 1 or root/FIELD-A # 2 or root/FIELD-A # 3 = RECEIVER-2, It didn't work, even if the value is 2, message is being send to RECEIVER-2.
    How define 2nd condition in condition editor?
    Thanks in advance,
    Riya Patil

    Hi Riya,
    Please give following condition and check.
    (/BOL[(Revision != '1'and Revision != '2' and Revision != '3')]) EX
    Also if you are not able to see Message type in XPATH, please check if that software component is present in corresponding technical system of source busniess system in SLD.
    Once you see messagetype in XPATH, just select corresponding Revision Field in XPATH Editor and give above condition. Operator should be exists.
    Let me know if you face any issue.
    -Gouri

  • Receiver Determination error in Xpath

    In   receiver determination step,  I am specifying two condition check.
    The problem is that XI server is checking the second condition ahead of the first condition.
    Eg:
    I have a structure like Record in the input file:
    Record:
       Field1
       Field2
       Field3
    In specifying condition, I have a condition like this:
    If   field1 =  XY AND  field2 = AB
    Then   (do..)
    But the XI server is reading field2 first and not field1 . Why is this so?
    Thanks a lot.
    Shaily

    Check the "AND" condition properly make sure it is not a "OR" condition in xPath.
    Refresh the cache by tcode sxi_cache and try again.

  • Receiver Determination - condition editor

    Hi,
    I have a receiver determination which receives files and the filename determines where the file is sent/routed. I am using the condition editor for this functionality and need some help. The filename contains the following format 'xxxxxx010xxx20070101.out' where xxx represents different codes depending on the extraction. I used the following in the condition editor:
    ++++++010* I understood each + to represent a character. This is not working, any ideas?
    Thanks,
    Leanne

    you can utilize XPATH functions in your conditions to acheive the same.
    Try to take the help of the following weblog and maybe the string functions of xpath to achieve your results.
    ref:
    /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
    http://www.w3schools.com/xpath/xpath_functions.asp#string

  • Receiver Determination, condition to select receiver doesn't extract values

    Dear all!
    I have SAP PI 7.1
    I am facing problem in Receiver Determination while using Condition to select receiver based on the values in the payload.
    I need, if Identificador = 1 then receiver BC_1 and if Identificador = 2 then the receiver BC_2
    My payload has the value:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:p1="http://pruebas.endesa.es/AME4S_2">
      <soap:Body>
        <p1:MT_WS_SENDER_Q>
          <IDENTIFICADOR>1</IDENTIFICADOR>
          <OBJECT_ID>7600000009</OBJECT_ID>
        </p1:MT_WS_SENDER_Q>
      </soap:Body>
    </soap:Envelope>
    But, the trace shows following:
    <Trace level="2" type="T">......extracting (new) for Extractor: XP /p1:MT_WS_SENDER_Q/IDENTIFICADOR </Trace>
    <Trace level="2" type="T">......extracting values found: 0 </Trace>
    I tried with double quotes, simple quotes, without quotes...
    I tried too with a Receiver Rule (with context) and local rule with xpath....
    Can someone please advise?
    Thanks in advanced!!

    Hello,
    /p1:MT_WS_SENDER_Q/IDENTIFICADOR = 1
    Can you try //p1:MT_WS_SENDER_Q/IDENTIFICADOR = 1 ? I'm sure I read it somewhere here in SDN regarding the xPath difference for stateless and stateless XI 3.0 compatible version is an additional /. It's worth to try
    Hope this helps,
    Mark

  • Receiver Determination-Condition not working

    Hi all,
    It is simple iDoc to File scenario.  I have two receivers based on a condition in the receiver determination.  I am getting all data into both receivers without executing the condition. 
    Below is the condition.  Any idea why this is not being executed?  Thanks for your help.
    (/ZGENERIC_OUTBOUND01/IDOC/Z1GENERIC_SDATA/SDATA = '1C')
    (/ZGENERIC_OUTBOUND01/IDOC/Z1GENERIC_SDATA/SDATA = '1B')

    >   <?xml version="1.0" encoding="UTF-8" ?>
    > - <ZGENERIC_OUTBOUND01>
    > - <IDOC BEGIN="1">
    > - <EDI_DC40 SEGMENT="1">
    >   <TABNAM>EDI_DC40</TABNAM>
    >  ......
    >  ......
    >   </EDI_DC40>
    > - <Z1GENERIC_SDATA SEGMENT="1">
    >        <SDATA>1C</SDATA>
    >   </Z1GENERIC_SDATA>
    > - <Z1GENERIC_SDATA SEGMENT="1">
    >        <SDATA>1C</SDATA>
    >   </Z1GENERIC_SDATA>
    > - <Z1GENERIC_SDATA SEGMENT="1">
    >        <SDATA>1B</SDATA>
    >   </Z1GENERIC_SDATA>
    >   </IDOC>
    >   </ZGENERIC_OUTBOUND01>
    You cannot have both the conditions in same IDOC at the same time. Like here in the above example you have 1C & 1B both, so in this situation it will not work.
    Just for testing either remove 1C or 1B and then test. I am sure it will work.
    You cannot send the same payload at the same time based on two different conditions to 2 different receivers except you put 'OR' in your conditon for 1C & 1B. But in this situation message will go to both of the receivers which you don't want here.
    Regards,
    Sarvesh

  • Receiver determination Condition on Payload

    Hi,
    We are working on File - RFC - MQ Asynch -Synch Scenario without using the BPM.
    I will pick the file, and Based on file name I will get the MQ information, and pass the data to that MQ.
    For EX:-
    File name [ test_123], RFC returns the MQ name is Test_123.
    File name [ Test_234], RFC returns the MQ name is Test_234.
    File name [ Test_345], Rfc returns the MQ name is Test_345.
    File name also I am getting dynamically.
    So my question is, how can I maintain the condition on receiver determination.
    I think sender payload we can't maintain the condition.
    Is there any chance to maintain the condition on receiver payload...
    Please give me the solution.
    Thanks,
    Anu.

    You'll have a set of possible receiver Business Services?
    Also, is the RFC used just for looking up the mq name?
    If that's the case, I'd recomend using rfc lookup in the mapping + dynamic configuration for dynamic determination of the mq.
    If it won't meet your requirements, then I'd say rfc lookup + enhanced receiver determination.
    Avoid the async/sync bridge (it seems unecessary here, given that the sole purpose of the rfc is to return the file name).
    Regards,
    Henrique.

  • XI - Receiver Determination Condition not working

    I created a Condition on my Receiver Determination to stop some messages from being sent based on a field in our message.
    It works when using some test tools (workbench, SOAPUI, etc) but not when coming from our MDM system.  The beginning of the input message looks like what is listed at the bottom of this message(and it works).
    But when coming from MDM the one node looks like this  - there is no colon ( after the xmlns.
                   <YMDMB_CREMDM xmlns='http://intel.com/MDM/BUPA/Vendor'
    without the colon ( the condition does not work;  with the colon it does work.
    the sending system is not able to add the colon. 
    Does anyone know why the colon matters and what we can do to get around it in XI ??
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Receiver Grouping -->
    <YMDMB_CREMDM xmlns:='http://intel.com/MDM/BUPA/Vendor' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <IDOC BEGIN='1.0' xmlns=''>

    below is the beginning of the XSD from the IDOC (it is custom but based on a SAP one  - just added a few fields)
    I also put the start of the input message below that.
    also to make sure I was clear, if all we do is change this node of the input message by adding a colon after the xmlns everything works.
                   <YMDMB_CREMDM xmlns='http://intel.com/MDM/BUPA/Vendor'
    thanks
    begging of XSD from IDOC
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:element name="YMDMB_CREMDM">
              <xsd:complexType>
                   <xsd:sequence>
                        <xsd:element name="IDOC" type="YCREMDM.YMDMB_CREMDM" />
                   </xsd:sequence>
              </xsd:complexType>
         </xsd:element>
         <xsd:complexType name="YMDMB_CREMDM.E1BPADTTX">
    here is beginning of input message
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Receiver Grouping -->
    <YMDMB_CREMDM xmlns='http://intel.com/MDM/BUPA/Vendor' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
       <IDOC BEGIN='1.0' xmlns=''>

  • "receiver-determination" step and multiline container

    i have made a file2file scenario where:
    there is a BPM,
    the BPM contains a receive step,
    a transformation that mapps the incomin message to two messages(Split-messgae case),
    and then a FORK step which sends the two messges to through 2 SEND steps to the intended receiver services.
    It didnt work......and i followed a blog-> /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure ............... which suggested to have a
    "receiver-determination" step in the BPM before the SEND step.... it says that this
    "receiver-determination" step will put the message in a MULTILINE container..
    i m confused bout this step ........ can anybody explain.....
    please help

    Receiver Determination step will return all receivers that are configured in Integration Directory, for that particular message interface, having the BPM as the sender service.
    So, more than one receiver may return. Hence you need to define the receiver container as a multiline container.
    Here you go with explanations- for Receiver Determinations in BPM-
    http://help.sap.com/saphelp_nw04/helpdata/en/11/13283fd0ca8443e10000000a114084/content.htm

  • Receiver Determination Condition

    HI Experts,
    Here i do have a scenario i.e JMS to IDOC at R/3 side we have two different SAP systems based on the condition in RD the data needs to be posted into these systems: i tried  using condition but it is not considering the condition ,when i tried with out condition it works fine ;
    I am not sure whether i did any mistake while defining condition:so i given the requirement here pls help me out for exact condition to slove this issue
    Condition For System1:
    IF (NO_POST = ‘BEN’ and GAJ_NO  one of the following (114080, 114081, 114082,1140803, 1140804, 1140805)) and (STATUS = "50" or STATUS = "60") the message will be routed to SAP-TUR
    Condition For System2:
    IF (IF (NO_POST = ‘BEN’ and GAJ_NO one of the following (435019, 435028, 435029, 435031)) and (STATUS = "50" or STATUS = "600") the message will be routed to SAP-BRE
    These are the conditions and i strucked at my development ,Help me out and get ur points
    Thanks,
    Shoukath

    Hi,
    Check your xpath expression once again. There better way out is to use context object in this case.
    Check you <b>and,&</b> (Insert Expression) and <b>OR</b> (Insert group) expressions.
    If these things are fine then surely there is something worng with the values. String and integer makes a lot of difference as i am not sure in  ur scenario (114080, 114081, 114082,1140803, 1140804, 1140805) are integer or in string format?
    Take care of these issues it will work.
    <b>Cheers,
    *RAJ*</b>

  • Multi Mapping with out BPM and Receiver Determination Condition

    Hi Masters,
    My Requirement Was:
    Proxy will send the data to XI system, Based Customer group number[1000,2000,3000,4000], I need to split the message into 4 messages, and sent to 4 Different location, based on Customer Group condition.
    For message split, I fallowed below weblog.
    /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    Problem is file split correctly, but data goes to all customer groups..
    EX
    If they send the customer group 1000, I need to send the customer group 1000 file to BS1[Business Server1],
    If they send the customer group 2000, I need to send the customer group 2000 file to BS2[Business Server1],
    Please guide me,
    Thanks,
    ANU-

    Hi,
    Develope it like follow.
    Source Structure- Same for everything.
    Create 4 different structures for all targets, create 4 different msg types, 4 inbound message interface ( i think you are creating single Message type now, that is the mistake)
    In message maaping, add 4 target message types in same MM.. i hope i am clear..  ( same like in blog /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible he has created 2 message types USER_1 and Employee)
    keep occurence of all of them 0 to unbunded (not necessary)
    Now create mapping for each message type (same like USER_1 and Employee, imagine them like different message types virtually). 
    Map message type with the source field and mention the condition which you want test using graphical functions.  i will say if x e equla to 1 creatif --> target.
    I hope i m clear till now...
    thanks.

  • Receiver Determination Condition Editor - How to base xpath on index

    Say source message is an IDOC which has the E1EDK14 segment repeated:
    example:
    E1EDK14-QUALF=006
    E1EDK14-ORGID=01
    E1EDK14-QUALF=007
    E1EDK14-ORGID=02
    I need to route this to System1 if ORGID=01 where corresponding QUALF=006 and System2 if ORGID=02 where corresponding QUALF=006.
    Regular condition as follows does not work because it does not take into account that the two fields should be on the same index. Following routes it to both because ORGID=02 exists as well when QUALF=006 though on different index.
    (/INVOIC02/IDOC/E1EDK14/QUALF = 006 AND /INVOIC02/IDOC/E1EDK14/ORGID = 01) - System1
    (/INVOIC02/IDOC/E1EDK14/QUALF = 006 AND /INVOIC02/IDOC/E1EDK14/ORGID = 02) - System2
    How to incorporate the index in the condition so that above logic goes to a particular system when the corresponding QUALF and ORGID on same index (or node occurence) only satisfies?

    Hi
    This has to work (this is the syntax)
    /INVOIC02/IDOC/E1EDK14<QUALF = 006>/ORGID = 01  (or any value)
    the < angular brackets > have to be considered as square bracktes [ ]
    the editor does not represent sqaure brackets correctly in the code above
    other additional info for trials
    you can try giving single quotes etc (like '006')
    first make it work for a direct condition, then try the above with similar syntax
    Regards
    Vishnu

  • Receiver determination condition for multiple line items

    I have a structure like this
    <Invoice>
       <InvoiceHeader></InvoiceHeader>
      <InvoiceItemDetail>
       <InvoiceItem>
             <InvoicePrice>0.00</InvoicePrice>
        </InvoiceItem>
       <InvoiceItem>
             <InvoicePrice>0.00</InvoicePrice>
        </InvoiceItem>
       <InvoiceItem>
             <InvoicePrice>0.00</InvoicePrice>
        </InvoiceItem>
      </InvoiceItemDetail>
       </Invoice>
    if my Invoiceprice is 0.00 in all invoice items , i need to send to a particular receiver.
    In this case, how do i need formulate a receiver condition? i have tried all, but it is not working.
    Regards,
    Raveendra

    HI,
    if i have two invoice items with one price with 0.00 and 30.00. your condition will find a receiver. But, it has to find receiver only when two invoice prices are 0.00
    if i have two invoice items with one price with 0.00 and 30.00
    for ex:
    item  A = 0.00
    item  B = 0.00 / 30.00
    But, it has to find receiver only when two invoice prices are 0.00
    rootnode/InvoiceItemDetail/InvoicePrice(A) = 0.00  AND  rootnode/InvoiceItemDetail/InvoicePrice(B) = 0.00 -
    > target A
    rootnode/InvoiceItemDetail/InvoicePrice(A) # 0.00 OR     rootnode/InvoiceItemDetail/InvoicePrice(B) # 0.00 -
    > target B
    thanks,

Maybe you are looking for

  • Layer & Custom Effects UI problem

    Here is code of simple effect plug-in: #include "AEConfig.h" #include "AEGP_SuiteHandler.h" #include "AE_Macros.h" #include "Param_Utils.h" #include "AEFX_SuiteHelper.h" #include "entry.h" extern "C" { PF_Err DllExport EntryPointFunc(    PF_Cmd cmd,

  • Digital Signature while approving a document in KM

    Dear all, We have a an approval enabled folder in KM. My question is, can we enable digital signature for documents in that folder? Scenario will be like this. I'm an approver. When I approve I should be allowed to digitally sign on the document. Is

  • Kernel Panic with my Mac Book Pro

    I have a problem with my Mac Book Pro. Sometimes i have a Kernel Panic on my Screen. I have loged this Protocoll: Can anyone help me with this Problem? What is the cause of these Kernel Panic. Thanks a lot to all members here! Interval Since Last Pan

  • Does the iPhone 4S have a shutter on the camera?

    A month or so back my iPhone camera had something half blocking the lens. I was just wondering, is this the camera shutter? Or does the iPhone even have a shutter?

  • Differential excise duty CIN

    Hi This relates to CIN. A non MRP Excise Invoice((J1II) was raised for an MRP material without maintaining the ZMRP/ZABT price condition. This resulted in passing a lower excise duty amount. The customer is asking for a debit note and a corresponding