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.

Similar Messages

  • 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, 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 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 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

  • 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

  • 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

  • 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 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,

  • 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

    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>

  • 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

  • PI 7.1 - condition during receiver determination

    Hi,
    I am trying to do the receiver determination condition in the condition editor of integration directory but XPATH or context objects of my interface (corresponding to my software component version) do not appear in the window for maintaining the condition.
    I had no difficulty when following the same process during 7.0 or earlier versions but it seems to be issue in PI 7.1.
    Anyone else also faced a similar situation or is there any extra step I need to ensure before going for receiver determination (standard not enhanced)?
    Your help would be appreciated.
    Cheers.

    My scenario is:
    Source system -> PI (ccBPM) -> Target system
    Now I have number of ccBPMs and there would be one picked up based on the payload from source system interface. For this my configuration objects are as follows:
    Sender agreement with (source comm component and source system outbound interface)
    Receiver determination - at this stage I want to figure out which ccBPM should get executed and hence condition based on payload
    interface determination - goes to receiver step of ccBPM with message type same as outbound interface from source system
    I have another receiver determination, interface determination for target system interfaces from ccBPM and then receiver agreement.
    But in this overall scenario key part is first receiver determination step where ccBPM as receiver is to be determined.
    I checked up all my objects again to find out any missing gap from my understanding. But I am not able to get the interface (source system interface) in the condition editor. I tried maintaining the XPATH manually but it ends in error during execution suggesting that receiver could not be determined.
    Any more suggestions please?

  • "Problem evaluating a condition" at Receiver Determination

    Hi,
    I've created a complex mail to rfc interface, in which, message is being send as mail attachment  and service inbound interface has multiple operations (each for corresponding rfc).
    at Receiver Determination, rule was created with multiple conditions, in order to determine correct "Communication Component" (multiple receiver agreement and  interface determination were created to supported this "multi interfaces" scenario).
    If no receiver was found message is ignored.
    once in a while, bad non-xml messages (e.g., "asdfasdfasdfffdfdsasdf") are being send,  is this case, while PI is trying to determining the receiver (i.e., evaluate Receiver Determination conditions) exception is being thrown, message is therefor has system error status* (at sxmb_moni) and it can not be ignored (as i wanted it to be).
    how can i workaround this problematic scenario?
    Regards
    Uri
    *Error message (sxmb_moni)
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Receiver Determination
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">CX_RD_PLSRV</SAP:Code>
      <SAP:P1>Problem evaluating a condition: An exception has occurred.</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>Error when determining the receiver: Problem evaluating a condition: An exception has occurred. Problem evaluating a condition: An exception has occurred. An exception has occurred. An exception has occurred. An exception has occurred. An exception has occurred. An exception has occurred. Problem extracting values from the Payload: Check line 2 column 1 of the XML document</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

    Abhishek,
    10x for your replay, but as far as i understand this is exactly the case here.
    conditions are:
    cond1: (/rfc: RFC1 ~ *)
    cond2: (/rfc: RFC2 ~ *)
    this works as expected in cases of xml messages (in case no cond is satisfied) message is ignored. but, in case of non-xml message exception is being thrown while cond is assessed.
    Regards
    Uri

Maybe you are looking for

  • Adobe does NOT automatically open when attachments are 'clicked'

    Thanks for reading this post.  When openning a PDF file attachment within an email or a link from a website, Adobe does not automatically launch to view the documents.  In fact, the file conversion screen pops up instead when I select the 'open' tab

  • Help Required in defining keyfields in custom DSO

    Hi Experts, I have created a DSO based on  a standards DS to bring in between an Infocube ( Zversion from SAP standard cube) and an standard info source. I am getting 1461 reords in PSA and same records my extractor shows in RSA3 but when it comes to

  • BADi/User Exit in J1IEX/MIGO

    Hi., While capturing excise invoice in MIGO, iI wanna to make excise material type NONCENVATABLE as default for those items which has JMIP (Inventorized duty) in Purchase Order.If the material is maintained as Raw/asset/consumable/tools & if JMIP con

  • Hi, i have inserted a dvd in the drive, which has data in it but its showing blank and asking toburn

    Hi, i have inserted a dvd in the drive, which has data in it but its showing blank and asking to burn. Along with that its also showing the capacity of the dvd. Its ready to write the disk but not exploring the data on the disk. Please help..

  • All pages contents are diagonal (text, pictures, buttons...)

    when i open firefox, the home page loads, but everything is diagonal, and it's the same for every page, they load but all the contents are diagonal. an example: i see a button that should be in a corner standing in the middle of the page and when i w