Condition Receiver determination

Hi,
I have a input structure something like this...
RECORD
HEADER 1..1
   H1
   H2
   H3
ITEM1  ( 1...Unbounded)     
   I1
   I2
   I3          
ITEM2 
   I1
   I2
   I3     
ITEM3
   I1
   I2
   I3          
I have 2 receivers for this scenario, based on I2 value ( 2nd field of Item segments), I need to by pass this information to corresponding receiver. Something like if I2=A then map the message to Receiver1 and of I2=B then map the message to Receiver2. an we achieve the same in XI. If yes, can you guide the same.
Note: I have two different mappings for the two receivers.
-Esha

Thanks for the quick reply....I have 2 receivers configured in Receiver determination, say R1 and R2.
I dont have any conditon on R1 system. But for R2, based on some value from input message it should be routed to corresponding interface mappings. I have placed a condition in Interface determination.
NOte: I have two mappings ( 2 interface determinations) for R2 itself.
I have tried with the same condition stuff with RD and ID..but still its not working. only my R1 stuff is working...did I miss anything here? Can you help me out.
-Esha

Similar Messages

  • IDoc to IDoc - conditional receiver determination issue

    Hello All,
    We are using XI 3.0 and this is my scenario:
    Sender: IDOC from SAP system
    Receivers: There are 2 receivers (one SAP and one non sap system).
    I want conditional receiver determination based on the idoc field RCVPRN.
    Integration Repository: I imported standard SAP IDOC FIDCC2 into IR and it is in "urn:sap-com:document:sap:idoc:messages" namespace of my SWCV. I am not creating data types, message types or message interfaces as I want to use the IDOC type directly as the interface name in Integration directory.
    Integration directory: When I am creating receiver determination, I am getting a warning 'Message interface does not exist in any software components installed on this business system'. When I got to condition editor and want to choose the idoc field RCVPRN using XPATH, it is not showing the idoc structure.
    In SLD, the correct product is installed on my sender ABAP technical system, and correct SWCV (into which i imported the IDOC) is installed on my business system. I refreshed cache and cleared SLD cache in ID. Still i get the same warning 'Message interface does not exist in any software components installed on this business system'.
    How can i solve this issue? Any help is highly appreciated.
    Thanks,
    Chandra

    Hi Chandra,
    Can you check whether you have assigned or linked the SWCV with the Business system in SLD.
    Just go to SLD and open the SWCV and check if it is linked with the BS od the sender system.
    Since the sender is ABAP, you must have created the TS and BS using rz70, then see that that the SWCV is attached to the BS correctly. Under TS add the Product and then the corresponding SWCV.
    Also check one thing: are u selecting the correct Communication component, under which the Interface is present.
    Lastly if these doesnot work: In Integration Directory, Go to Environment-> Clear SLD Data Cache. Then try once again.
    Cheers,
    Souvik
    Edited by: Souvik Chatterjee on May 16, 2011 3:39 PM

  • 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

  • Conditional Receiver Determination

    Hi Friends,
    From Proxy i send a field to XI. Using JDBC lookups i have mapped in such a manner that if the content of the particular field exists in the Oracle Table i send the incoming field content to receiver field.
    But incase the field doesn't exist in the table i am mapping some constant to the target field so that can need to identify during receiver determination. If the particular constant is received then i need to call a different Comm Channel -- mail adapter and trigger an email.
    In normal cases the Com Chn with JDBC adapter will be the receiver.
    One input file to XI -- but based on validations two diff C channels has to be used .
    I am trying to use enhanced receiver determination at Receiver determination.
    But where to check the content of the target
    field ?
    Please tell me how to do this.
    Regards
    Ramesh

    HI
    You are using Enhanced receiver determination. In this you dont get option to select receiver. As here you can select while mapping
    http://help.sap.com/saphelp_nw70/helpdata/EN/43/a5f2066340332de10000000a11466f/content.htm
    Option to select receiver service will come under standard receiver determination.
    Now to satisfy the requirement. you have done multi mapping right ? then you have 2 target message and hence two message interfaces. You can use enhanced receiver determination and there you will be having more than one mapping in Receiver determination which will carry service name. Set the condition for this constant there and let the mapping execute. Use appropriate names for the service in mapping. This will work only difference here is instead of receiver determination you can pass service name from mapping.
    Thanks
    Gaurav
    Edited by: Gaurav Bhargava on Oct 25, 2008 3:30 PM

  • Conditional Receiver Determination Through Integration Scenario

    Hi
    My question is "Is  it possible to generate conditional receiver detrmination through integration scenario?"
    If yes then how?
    Thanks and Regards
    Sami

    Hi Biplab,
    Yes , there is lots of modification in PI 7.1. and we start using it, you will come to know. In this TechEd at banglore , i did hands on the Mapping and it was really good experience, When i started configuring ID, i came to know some powerful ways, and yes i am really looking forward to working on it. Actually, as you know when we configure everything in ID, it becomes complicated, that is rectified thr and also some additional features. Pretty faster than PI 7 we using. also configuration in some extend is automated, we doen't need to bother to configure some of the steps :).
    Also you must know that, it added a concept of ESR for IB. Just have a look on some of the PPT for PI 7.1 and you feel it :).
    Aashish

  • ** XPath condition not work well in Receiver Determination.

    Hi,
    My scenario is having 3 receivers. I have 'Student' is the data type. I use the same data type for Source & Target Message Types. Requirement is I have to send
    1) only records which are having SCOURSE = 'BE' to receiver 1
    2) only records which are having SCOURSE = 'MCA' to receiver 2
    3) only records which are having SCOURSE = 'MBA' to receiver 3
    My Input.xml file contains the following records.
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:THIRD_MT_OB xmlns:ns0="http://ganesh_third">
       <STUDENT_INFO>
          <ST_ID>10020</ST_ID>
          <SNAME>Raja</SNAME>
          <SCOURSE>BE</SCOURSE>
          <SFEES>3000</SFEES>
          <SMARKS>1200</SMARKS>
       </STUDENT_INFO>
       <STUDENT_INFO>
          <ST_ID>10021</ST_ID>
          <SNAME>Ram</SNAME>
          <SCOURSE>MCA</SCOURSE>
          <SFEES>3000</SFEES>
          <SMARKS>1200</SMARKS>
       </STUDENT_INFO>
       <STUDENT_INFO>
          <ST_ID>10022</ST_ID>
          <SNAME>Ram</SNAME>
          <SCOURSE>MBA</SCOURSE>
          <SFEES>3000</SFEES>
          <SMARKS>1200</SMARKS>
       </STUDENT_INFO>
    </ns0:THIRD_MT_OB>
    I set the Xpath condition in the Receiver Determination Step and add the 3 receivers for against the conditions.
    Our problem is, If we send the single record in the input file, the corresponding receiver is selected correctly and we get the output file for that receiver. But, if we send the all combination of records (MCA,BE,MBA) 3 receivers are selected and the 3 output files we get. But, the three files are having the all records (MCA,BE,MBA). Instead, we want the first file should only have MCA record,  the 2nd file should only have BE record and finally the 3rd file should only have MBA record. That means each receiver should receive only one record for the above input.
    Friends, I though it will work for the 'XPath Expression' against receivers in the Receiver Determination Step. But, it didn't work. (Records are not split up)
    How do achieve this, friends?
    Could you kindly help me to solve this problem.
    Kind Regards,
    Jeg P.

    If you are trying to split you input msg and send it  to 3 different receivers using conditional receiver determination then it will not work. Once a condition is meet in the receiver determination then the entire msg is forwarded to the corresponding receiver, that is why when you have a single row in your input file which results in a single msg in XI the conditional receiver works. Now when you have multiple rows in your input file still only one msg is being created in XI for all the rows currently so all the conditions are being meet and the msg is forwarded to all the receivers.
    If you are using FCC in the sender side then use the "recordset per msg" parameter to consider each row of your input file as a separate msg in XI and the rest will automatically fall in place.
    Cheer's

  • Multiline Check in Receiver Determination

    Hi All,
    Can anyone explain me the exact functionality of the multiline checkbox in receiver determination.
    Lets say I have the following input message
    <node1>
           <value>21</value>
    </node1>
    <node1>
           <value>22</value>
    </node1>
    <node1>
           <value>23</value>
    </node1>
    I want the receiver to be determined only if the value is 23, does multiline has anything to do with this.
    Regards,
    Varun.

    Hi,
    In conditional receiver determination when you check multiline that signifies that you are expecting
    1. the values of the field to be multiple and selecting multiline you consider the bunch of the values to be in one array of string.
    2.And when you put the condition to check for a specific value it checks in the whole array whether ant element of the array matches with the condition.Like the condition(23) IN the array or not.
    So your query is similar.You can do with this.
    cheers,
    Abhishek.

  • Receiver Determination in multi mapping

    Dear Folks,
    I am facing a difficulty in implementing conditional receiver determination in my scenario. This is an  IDOC to FILE scenario and requirement is IDOC needs to be split in multiple messages and specific messages to be delivered to different warehouses using FTP.
    I have implemented multimapping 1:N and able to split the IDOC as per the requirement. But when I execute conditional receiver determination, all the splitted files are sent to all the warehouses.
    The input is
    <IDOC>
            <Segment>
                  <warehouse_no>1</warehouse_no>
              </Segment>
              <Segment>
                  <warehouse_no>2</warehouse_no>
              </Segment>
              <Segment>
                  <warehouse_no>3</warehouse_no>
              </Segment>
    </IDOC>
    and output I want as
    File No 1
    <MT_WarehouseDetails>
                <warehouse_no>1</warehouse_no>
    </MT_WarehouseDetails>
    sent to warehouse 1
    File No 2
    <MT_WarehouseDetails>
                <warehouse_no>2</warehouse_no>
    </MT_WarehouseDetails>
    sent to warehouse 2
    File No 3
    <MT_WarehouseDetails>
                <warehouse_no>3</warehouse_no>
    </MT_WarehouseDetails>
    sent to warehouse 3
    currently I am getting all the files in all the folders.
    Your help will be appreciated.
    - Shri

    hi,
    it is indeed a nice solution here is what I propose:
    define a new communication component called XI_BUS, define a sender comm soap channel SND_SOAP_IDOCTYPE and a receiver soap comm channel RCV_SOAP_IDoctype that points to the sender one. (you will need a service username and password in the pi system). check this link on how to configure your RCV comm channel to point back to your PI system [http://help.sap.com/saphelp_nw04/helpdata/en/2b/d5653fd1d3b81ae10000000a114084/frameset.htm]
    source system -> XI (in this flow you do the multi mapping)-> XI_BUS (using RCV_SOAP_IDOCTYPE) (basically re-routing it back to XI)
    XI_BUS(using SND_SOAP_IDOCTYPE) -> XI ( here you use your extended receiver determination) -> RCV_1
                                                                                    -> RCV_2                                                                               
                                                                                    -> RCV_n
    I hope this helps

  • Use of range in case of XPATH for receiver determination.

    Hi Experts,
    I need to achieve the following using standard receiver determination.
    The material number in the source message structure has to lie within a perticular range and that should decide the receiver of the message.
    For example:
    MT_SRC
    |---- Ele1
    |----
    MaterialNo.
    If MaterialNo is between 100000100 and 100001000 then it should be sent to BS_TGT1 else it should be sent to BS_TGT2.
    Is it possible to achieve this using the standard conditional receiver determination using XPATH and if yes, how exactly?
    Regards,
    Amol

    Hi Amol,
    I think its possible. Never tried though for a range.
    Go through this link and check out what is described under the section "Notes Regarding the Use of XPath Expressions"
    http://help.sap.com/saphelp_nw04/helpdata/en/43/a513f2632c332ce10000000a11466f/frameset.htm
    I am not sure whether it will work for two conditions though, i.e. for a range( Greater than 100000100, less than 100001000).
    Just try and let us know.
    Regards,
    Sanjeev.

  • What is context objects and how we can use it Receiver Determination

    hi,
    i have situation here a idoc is triggered into the xi and i need to use the conditions in the receiverdetermination in that condition i need to use  context object how i can use it? and what is the difference it makes and why i need to use it?
    thanks in advance
    Amaresh

    HI,
    Context objects are alternative to XPATH expressions. It is like macros in other programming langugage. If you define this , you can use this object in the receiver determination while doing conditional receiver determination
    For more-
    http://help.sap.com/saphelp_nw2004s/helpdata/en/d6/e44fcf98baa24a9686a7643a33f26f/content.htm
    /people/prasadbabu.nemalikanti3/blog/2006/09/20/receiver-determination-based-on-the-payload-of-input-dataextended-xpathcontext-object
    Regards,
    Moorthy

  • Context Object for IDOC in Receiver Determination

    hi,
    I am trying to filter the receivers based on the vendor values in IDOC ORDERS using Context Object.
    I don't see the vendor field where i could filter the value.
    Any ideas would be greatful.
    Thanks,
    Tirumal

    hi,
    Conditional Receiver determaintion is possible only on the Source Message. the reason being that the integration engine will first execute receiver determiantion--> interface determiantion --> message mapping.
    If you are getting the IDOC as a source, then you can use the XPATH to do conditional receiver determination.
    Regards,
    Bhavesh

  • Receiver Determination and Interface Determination Condition conflict in ICO

    Hi,
    I found a strange issue today while configuring two receivers using the Receiver and Interface Determination conditions.
    Sender - Proxy Service
    Receiver1 - ReceiverA
    Receiver2 - ReceiverB
    Receiver Determination Condition : When Field1 = 100, message should flow to ReceiverA and ReceiverB
    Interface Determination Condition (ReceiverA) : When Field1=100 and Field2=50 message should flow to a specific interface in ReceiverA
    There is no Interface Determination condition for ReceiverB, for all messages having Field1=100, it should go to ReceiverB.
    Test Scenarios:
    1) Field1=100, Field2=50 : Message flows successfully to ReceiverA and ReceiverB
    2) Field1=100, Field2=89 : Message fails to process from ECC itself throwing Interface Determination not found error. Ideally this is a positive scenario for ReceiverB and it should send the message to ReceiverB without any errors. But, this did not happen in this case
    I tried the same by configuring the conditions completely in Receiver Determination itself without using the Interface Determination, it worked perfectly fine. But, just wanted to understand that if this is an expected behavior.

    Hi Sherin,
    As there are two receivers Receiver A and Receiver B.You need to create two bussiness components and two communcication channels for two receivers and one Reciver Determination, two Interface Determination,two Receiver Agreement.In Receiver Determination you need to keep the below and condition.
    In the above screenshot the two receiver are Receiver B and Receiver C and Field 1 is Key_Value and Field2 is Emp_ID.
    If the Key_Value=100 and Emp_ID =22 then the message should go to both the receivers B & C by keeping the following AND condition
    If the Key_Value=100 and Emp_ID is not equal to 22 then the message should go only to Receiver B by keeping the following condition
    You need not keep any condition in Interface Determination just create 2 Interface determination for two receivers.
    Hope this helps you.
    Thanks,
    Durga.

  • Receiver determination wildcard in condition editor

    Hi experts,
    I have a question regarding the condition editor for receiver determinations on PI 7.1. I have an xpath expression on the left side and I need to have a condition on the right side that includes a certain pattern.
    One example:
    p1:myDocument/element = 1A2B*
    There I would want to read the xml element "element" and redirect to a certain communcation component if the value of 'element' starts with 1A2B.. regardless if its 1A2B3 or 1A2BC and so on.
    Is that possible? I tried like in the example to use * as a wildcard, but that didn't work.
    Any help would be appreciated.

    It should not be = operator ....it should be Contains Pattern Operator
    Refer: http://help.sap.com/saphelp_nwpi71/helpdata/EN/67/49767669963545a071a190b77a9a23/content.htm
    Regards,
    Abhishek.

  • Error evaluation condition in receiver determination

    Hi,
    In XI 3.0 stack 11, for the incoming file, the receivers are determined based on the content of the input data.
    In the receiver determination the conditions were given for each receiver and it was working fine.
    Now, all of a sudden, its giving error as 'error in evaluating the condition in receiver determination' with some program name as CL_SAI_SWF_RULE_ENGINE (CX_RD_PLSRV).
    Could any one help me resolving this issue? Let me know if you need any more details w.r.t the issue.
    Thanks in advance!!
    Regards,
    Sasikumar

    Hi,
    I'm experiencing the same problem.  See message below. Also running SP11.  What might be wrong with the xpath expression?  I have removed all namespaces from the xpath and the input xml message.  Any suggestion is more than welcome!
    Kind regards, Guy Crets
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Receiver Identification
      -->
    <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: The exception occurred (program: CL_SWF_RLS_CONDITION==========CP, include CL_SWF_RLS_CONDITION==========CM00Q, line: 160)</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Error when determining the receiver: Problem evaluating a condition: The exception occurred (program: CL_SWF_RLS_CONDITION==========CP, include CL_SWF_RLS_CONDITION==========CM00Q, line: 160)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>

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

Maybe you are looking for