Interface Determination Conditions

Dear All,
I have 2 different mappings. My source XML contains a "NAME" field. If this name field is having some value then mapping 1 should get executed. But if "NAME" field does not exists in source XML then mapping 2 should get executed.
Note that in second condition NAME field itself is not there in Source File.
As I want to change mapping depending upon source payload, I am using Interface determination. Here I have added two interface mappings. But I am not able to give the conditions. I have already followed links from Help.Sap.com.
Can anybody will help me to solve this?
-Gouri

hi gouri,
in ID--> interface determination give two inbound interfaces. u wil then have an option to specify the condition. the left operand can be a context object or xpath pointing to ur specific field of source structure. use this to check if the node/element exists or not. if it exists then ur 1st mapping will be executed.
also see this:
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
[reward if helpful]
regards,
latika.
Message was edited by:
        Latika Sethi

Similar Messages

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

  • Interface determination condition

    Hi Experts,
    I am working on File to IDoc scenario, where I want to send IDocu2019s based on source data, in flat file if order number  exists then I have to send MATMAS idoc , if order number does not exists then I want send DEBMAS.
    I  developed 2 mapping programs and checking condition in Interface determination to check order number exists or not.
    i wrote below conditions in Interface determination and not working for multiple Orders
    MT_Invoice /Order/OrderNum EX u2013 to check order number exists or not.
    MT_Invoice /Order[not(OrderNum)] EXu2014to check order number not exists
    My Source Structure after file content conversion looks like below
    <Order> 1..unbounded
        <CustomerID>
        <MaterialID>
        <OrderNum>
    </Order>
    Regards,
    JAM

    Hello,
    The Interface determination condition will not filter the payload data. It can only determination whether a particular condition is true or false.
    If any valid condition occurs, complete payload will be passed to the respective Interface and mapping will be executed accordingly.
    Currently in your case I guess both conditions are getting satisfied for multiple records in payload.
    I think you need to implement the filtering logic in message mapping using the concept of multi- mapping.
    Refer blog: /people/jin.shin/blog/2006/02/07/multi-mapping-without-bpm--yes-it146s-possible
    The mapping will contain 2 target structures with occurance 1...unbounded i.e. Matmas and Debmas for your scenario.
    You need to apply filter logic on header nodes in the mapping.
    Or you need to process single records in the payload.
    -Rahul

  • Documentation On Interface Determination Conditions

    Hi Experts,
    Can any body provide the documentation on Interface Determination Conditions. Your help will be greatly appreciated.
    Thanks & Regards,
    Venkat

    Hi Venkat,
    <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/42/ea20e737f33ee9e10000000a1553f7/content.htm">Interface Determination incl Specifying Conditions</a>
    Regards,
    Udo

  • Wildcard in interface determination condition

    Hi Folks,
    I tried the following condition in setting up the condition in Interface Determination, but it is not working:
    Condition: /Document/Type = addLoad*
    The source field has this sample [email protected]
    I only need the "addLoad" and the other data that comes after the "@" changes in every transaction coming in to XI.
    Your advise is very much appreciated.  Thanks!
    Regards,
    Lex

    Hi,
    Try using Contains Pattern operator instead of '='.
    Condition: /Document/Type  ~(contains pattern operator)  addLoad*
    refer the below link
    http://help.sap.com/saphelp_nw04/helpdata/en/42/ea20e737f33ee9e10000000a1553f7/frameset.htm

  • Condition for interface determination

    Dear all,
    I would like to choose a target inbound interface depending on values in a field.
    The problem is, that the source field has occurency 0...unbounded so that I check
    the same field twice.
    Example:
    /TestMessage/Field1 = "A"
    AND
    /TestMessage/Field1 = "B"
    To route the message to the desired inbound interface we need at least two occurencies
    of source field "Field1". One with value "A" and one with value "B".
    But he seems to check if Field1 is "A" and "B" so he will never use the desired inbound
    interface. Do I have a chance to check values of two occurencies of one field or do I need
    to use enhanced interface determination?
    Thanks
    Chris

    Hi Christian,
    You interface determination condition should work. e.g for one of my interface I am using following interface determination condition to send the msg to specific  inbound interface.
    (/p1:MT_Input/Recordset/row/Key = 10 AND /p1:MT_Input/Recordset/row/Key = 20)
    The condition check if there is any "Key" with value 10 and othet with value 20 and then only it selects the desired output
    inbound.  The order of value 20 and 10 doesnt matter. Also only when both the values are there, then also inbound interface is
    selected.
    Can you provide your sample payload here?
    Pooja Pandey

  • Xpath condition in interface determination

    Hi all,
    I have a scenario where i have two Interface mappings between same source and target. I need to define a condition based on if a field exists, then first one should be executed and if the field doesn't exists, then second.
    How should i define a condition that if field doesn't exists,  the second mapping should be executed.
    Can any body please suggest.
    Thanks,
    Kalyani.

    Thanks for your replies . But this condition is not working for our requirement .
    Below is our exact requirement.
    Source structure  is the xsd which we have imported into ExternalDefinition.This External Definition has 2 other external references(namespaces are also different).
    The field which we need to check is in the external reference. This field is not visible in interface determination condition editor.
    We have manually added the xpath condition in the interface determination.
    1)The Xpath for EXIST condition looks like
    (/p1:ABC_Responses/p1:ABC_Response/p1:ABCResponses/p1:ABCResponse/p6:Fault/p6:ID EX).
    This is working fine.
    2) The XPath for Not Exists condition looks like
    (/p1:ABC_Responses/p1:ABC_Response/p1:ABCResponses/p1:ABCResponse/p6:Fault[not(p6:ID] EX).
    This is not working.
    Hope iam clear with the requirement now.
    Edited by: kalyani uppari on Feb 11, 2010 10:30 AM

  • Condition Based Interface Determination in ICO (AAE) - PI 7.1 EHP1

    Hi Friends,
    We have PI 7.1 EHP1 - SP 04.
    In our scenario, we have 1 outbound interface and 2 inbound interface. Based on condition, it needs to select the first inbound interface or second inbound interface.
    In the normal configuration, we are able to select. (By click + icon and add condition in the Receiver Interfaces in Interface Determination Step)
    When we create configuration using ICO (Integrated Configuration), there is no option in "Receiver Interfaces" Tab to add two inbound interfaces with condition.
    Could you please clarify how do we do this in ICO?
    Kind regards,
    Jegathees P.

    IMHO, condition based interface determination is not possible in ICO.
    Use Multiple inbound service interfaces... You can handle in design level .. ESR level. 
    Check the Abhishek's blog... This  might be helpful.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/90dcc6f4-0829-2d10-b0b2-c892473f1571?quicklink=index&overridelayout=true
    Note: Since in your case you need two receiver agreements, you cannot handle through ICO. The above link might be helpful to do multimapping without BPM.
    Edited by: Baskar Gopal on Apr 26, 2011 9:53 AM

  • PI 7.1 Condition in interface-determination

    Hi everybody,
    I want to process interface determinations depending on payload. But when opening the condition editor in interface determination, the interface on which to apply the condition is not obtained!
    What could be the reason?
    Thanks
    Regards Mario

    Hey Mario .. that's a bug. Thanks for pointing this out. Never noticed till now
    Regards,
    Neetesh

  • XPATH to determine node name in condition of Interface determination

    Hi,
    does anybody out there know whether one can use a condition such as "name(/p1:Envelop/p1:Body/*)" to retrieve the name of the first element underneath the Body structure which is usually the payload. In the example below.  I'd like to retrieve "ns0:BAPI_USER_GET_DETAIL" or just "BAPI_USER_GET_DETAIL" which I would like to than compare in my "=" condition.
    <?xml version="1.0" encoding="iso-8859-1"?>
    <sap:Envelope xmlns:sap="urn:sap-com:document:sap" version="1.0">
      <sap:Header xmlns:rfcprop="urn:sap-com:document:sap:rfc:properties">
        <saptr:From xmlns:saptr="urn:sap-com:document:sap:transport">BC1</saptr:From>
        <saptr:To xmlns:saptr="urn:sap-com:document:sap:transport">BC2</saptr:To>
      </sap:Header>
      <sap:Body>
         <ns0:BAPI_USER_GET_DETAIL xmlns:ns0="urn:sap-com:document:sap:rfc:functions">
          <CACHE_RESULTS/>
          <USERNAME>bauerd</USERNAME>
         </ns0:BAPI_USER_GET_DETAIL>
      </sap:Body>
    </sap:Envelope>
    I have a client that once to migrate his SAP BC interfaces to PI without having to change the sending application which is a CICS mainframe application. The mainframe application invokes various BAPI's by just passing in a different payload into the above envelope. The payload is always the request structure for the BAPI. The message is send synchronously to SAP BC which than calls the BAPI and returns the response to the caller, again in form of the above envelope and as payload the BAPI response structure.
    To convert this to PI I have to be able to initiate different interface mappings depending on what BAPI is requested. This is pretty straight forward as there are no special mapping transformation taking place in SAP BC for both the BAPI request and response. However I need to determine what interface mapping to call depending on BAPI requested by the CICS application.
    As said the customer does not want to change the sending application. The only part we are allowed to change is the URL which changes from SAP BC to the SAP PI Plain HTTP sender adapter. The post will always use the same outbound message interface. Therefore I can't use SAP PI's standard receiver determination. Using this adapter I will also be able to get access to the whole message envelope as outlined above.
    I already got all of this working nicely with the exception that I can't determine what BAPI is requested and therefore what interface mapping I have to trigger in my interface determination.
    Has anybody used a condition as above and if so how should it look like in the condition editor. The one outlined above does not seem to work. However it is also not failing in PI.
    Also I don't want to change my approach for doing this. However if it is not possible to retrieve the node name using the xpath statement (as outlined above) in the condtion editor than I will have to look for a different approach to resolve this problem. Any suggestions would than be more than welcome.
    Many thanks in advance.
    Dieter

    If the structure is not too big, you can use:
    //ns0:BAPI_USER_GET_DETAIL EX
    otherwise take the full path:
    /p1:Envelop/p1:Body/ns0:BAPI_USER_GET_DETAIL EX
    The namespaces have to be declared.
    Regards
    Stefan

  • Conditional Interface Determination with Flat Files

    Hello,
    I have one sender interface (dummy) which could either hold a flat file or an XML file. On receiver side there is one system with two receiver interfaces, one should be used for the XML structure and one for the flat structure.
    My requirement is to have a conditional interface determination with an (exclusive) OR logic. Pseudo code:
    The XML structure has "submission" as root node. So I use the condition (/submissioin) EX to determine whether it is an XML file and I check with not(/submission) EX to determine whether it is a flat file. However the condition does not work using a flat file ("Unable to find an inbound interface"). Could it be, that the conditional expression never is true in case a flat file arrives? How can I achieve this requirement?
    What I additionally do with the flat file is just calling a Java Mapping that sets dynamic attributes for a file receiver, the flatfile itself is dumped on a file system without any addtional conversion logic.
    Thank you for your advice.

    How can I ingnore a message in case a condition applies? I am just aware of the fact that you can ignore messages in case NO condition applies.
    Couldn't you simply reverse the logic and use "not equals"? Or perhaps you can use the EX operator to alter your conditions... here is more info on the EX (exists) operator
    Re: ConditionEditor: Check if element is empty
    What is best practice in this case? Should I use a "dummy receiver"? However if I use a dummy receiver I think I would receive a "interface determination not found" error. How would you do that?
    I've never found the need to work with dummy receivers so I cannot comment there.

  • Condition based Interface determination

    Hi ,
    Environment : PI 7.1.
    Scenario : File to Proxy.
    In this scenario , We have a single file interface which reads a file and routes the data to two different inbound interfaces.
    Steps followed to do this -
    >>Defined two inbound interfaces interface1 & interface2.
    >>Both interfaces are pointed to same ECC system.
    >>Read the file using a single sender file communication channel.
    >>Define receiver ECC in the receiver determination.
    >> Define interface determination based on a value of a field in the file structure(source structure). Used XPATH to define this content based routing and selected operation mapping specific to the interface.
    1 sender agreement
    1 receiver determination ( not using enhaced receiver determination because we have only one receiver)
    1 interface determination which has two receiving interfaces based on XPATH condition ( maintain order runtime is checked)
    2 Receiver agreements.
    2 Communication channels.
    For example if you have 10 lines in a file , out of which if 5 lines has a value related to interface 1 & 5 lines has a value related to interface 2. It should push the data into two different proxies as configured.
    We are facing a problem in this scenario -
    There is no consistency in the logic. Some times it runs interface 1 & some time it executes interface 2.
    based on condition 1 it routes the data to interface 1 successfully but the structure is not getting created for interface 2 so it is giving an error stating the interface 2 structure is not available.
    In SXMB_MONI the branching steps show two subnodes but if you see the log it shows that in subnode 1 the sender is sender interface & the receiver is interface 1 based on the filter condition. If you see the log for subnode 2 then it shows the sender is sender & the receiver as interface 2 below that it shows another entry which shows the reciver interface is interface2.
    Please evaluate and let us know if the approach we are following works or not. If there is any limitations please let us know how to achive this.
    Regards,
    Reddy

    Hi,
    Your design is correct but here you missed one point. Here the message is send either to receiver1 or receiver2  depending on the condition but not both. As this does not result in multiple messages with the same payload because only one condition can ever be true at runtime. For more details see the below link
    http://help.sap.com/saphelp_nw04/helpdata/en/46/8015de950e6be3e10000000a155369/frameset.htm
      If you want to create multiple message then you need do 1:n mapping :
    http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417700)ID2056393550DB10021342992851308291End?blog=/pub/wlg/2927
    Shweta.

  • Conditional step in interface determination

    Hi All,
    The Scenario is a proxy to file server..
    we are sending datas to different service based on File Content Conversion..
    Depending on the data on a certain field the records are delivered to different location.adapter we use is a file adapter.
    For this we need to give the conditional step in interface determination..
    the sender is a message system and the receiver is a business service.
    The issue here is when i try to give the condition in interface determination the error below appears.
    "<b>Message interface does not exist in any software components installed on this business system</b>"
    due to this we are not able to get the structure of the specified message type in the condition editor...
    What can be done here to give the conditions in the condition step?

    Hey
    The error occurs if the GUID of the software component at the SLD is different to the one at the repository. Please compare the GUID at the SLD -> Administration -> Content Maintenance -> Dropdown "Component Version" -> Dropdown "Software Component Version". At the Integration Repository you select the Software Component Version at at the tab "Keys" you find the related GUID.
    The error occured because the Software component has been created manually at the system. The repository content came from another system via import with own SLD (and because of that with another GUID for the software component).
    source:https://forums.sdn.sap.com/click.jspa?searchID=3574640&messageID=945384
    Thanx
    Ahmad

  • Receiver determination(or Interface determination) and conditional routing

    I have a flat file to flat file scenario. Based on the input file content, I want to route data to the receiver.
    My source flat file contains several IDOC details. Assume two fields FIELD1 and FIELD2 in different segments of the IDOC. My requirement is if FIELD1 of an IDOC = "US" and FIELD2 of the same IDOC = "CA", then that IDOC's details needs to be passed to the receiver.
    I have implemented the above condition at interface determination.
    But the problem is:
    Assume there are 3 idocs in the input file.
    FIELD1 of IDOC[1] = 'US' and FIELD2 of IDOC[1] = 'GL'
    FIELD1 of IDOC[2] = 'UK' and FIELD2 of IDOC[2] = 'EN'
    FIELD1 of IDOC[3] = 'BR' and FIELD2 of IDOC[3] = 'CA' .
    Now none of the IDOCs in the input satisfy my requirement and hence the message mapping should not be called at all. But in my case its failing because FIELD1 of IDOC[1] and FIELD2 of IDOC[3] together are satisfying the condition and hence the message mapping is called.
    But I need to check this condition IDOCwise. Both the conditions to be satisfies in the same IDOC.
    I am thinking that contexts are not being taken care.. It just see the whole file together and not IDOCwise.
    Can someone help me on the same. Please let me know if more information is required.
    Thanks,
    Shobha

    >
    Shobha HB wrote:
    > I have a flat file to flat file scenario. Based on the input file content, I want to route data to the receiver.
    >
    > My source flat file contains several IDOC details. Assume two fields FIELD1 and FIELD2 in different segments of the IDOC. My requirement is if FIELD1 of an IDOC = "US" and FIELD2 of the same IDOC = "CA", then that IDOC's details needs to be passed to the receiver.
    >
    > I have implemented the above condition at interface determination.
    >
    > But the problem is:
    > Assume there are 3 idocs in the input file.
    > FIELD1 of IDOC[1] = 'US' and FIELD2 of IDOC[1] = 'GL'
    > FIELD1 of IDOC[2] = 'UK' and FIELD2 of IDOC[2] = 'EN'
    > FIELD1 of IDOC[3] = 'BR' and FIELD2 of IDOC[3] = 'CA' .
    >
    > Now none of the IDOCs in the input satisfy my requirement and hence the message mapping should not be called at all. But in my case its failing because FIELD1 of IDOC[1] and FIELD2 of IDOC[3] together are satisfying the condition and hence the message mapping is called.
    >
    > But I need to check this condition IDOCwise. Both the conditions to be satisfies in the same IDOC.
    >
    > I am thinking that contexts are not being taken care.. It just see the whole file together and not IDOCwise.
    >
    > Can someone help me on the same. Please let me know if more information is required.
    >
    > Thanks,
    > Shobha
    The ideal solution to your scenario is to redesign the interface as below;
    1. Receive the file.
    2. Do a 1: N mapping (this should split your message into multiple Messages)
    3. On this message you can do the required check. Now only the required field for the particular IDoc will be part of the check and it will not mix with other Idocs.
    Will this do? Else please provide more details

  • IDoc to file- How to include conditions in Interface determinations

    Hi,
    In interface Determination i am trying to add the conditions based on IDoc structure field value. But when i clicked on Condition editor i don't find Idoc stucture in editor XPath.
    Please suggest me how i can add the condtions in the Interface determination in IDoc to file Senario.
    Thanks in Advance...
    Regards
    Sreeni

    Hi Sudhir,
    I have tried as you mentioned, but still its not working. Below i am providing my inbound payload.
    Could please let me know how i have to mention in condition editor to refer the IDoc field
    ZGHIER01/IDOC/Z1GLHIERH/SETNAME
      <?xml version="1.0" encoding="UTF-8" ?>
    - <ZGHIER01>
    - <IDOC BEGIN="1">
       + <EDI_DC40 SEGMENT="1">
        - <Z1GLHIERH SEGMENT="1">
           <CATEGORY>GLHIER</CATEGORY>
           <SETNAME>PEGPL_AG</SETNAME>
         + <Z1GLHIERD SEGMENT="1">
         + <Z1GLHIERI SEGMENT="1">
         + <Z1GLHIERI SEGMENT="1">
         + <Z1GLHIERI SEGMENT="1">
         + <Z1GLHIERI SEGMENT="1">
       </Z1GLHIERH>
    </IDOC>
    </ZGHIER01>
    Thanks & Regards
    Sreeni
    Edited by: Sreenivasulu Reddy jonnavarapu on Dec 12, 2008 10:39 PM

Maybe you are looking for

  • Can't get query to work.  table alias in subquery in FROM clause

    How can I rearrange this query to work? SELECT                            TO_CHAR(dt.date_time, 'YYYY-MM-DD') start_date,                                    (SELECT COUNT(*) FROM                                         (SELECT DISTINCT a.non_asp, a.s

  • Corporate group match code

    Hi, Can anyone guide me on how to create a Match code for Corporate group field in the Vendor Master? and create a list of possible values?. Thanks, Cecilia

  • TabNavigator, different colored tabs?

    Is it possible to set a different color (tab color and matching background) for each tab in a tab navigator? Thanks!

  • Can i call a file which is not bundled with war file

    i am dynamically creating a file which i want to call in another jsp but it is giving error file missing. i am working on sun app. server all the jsps servlet,beans are bundled with war file. can i call a file in some jsp which is not bundled with wa

  • How to delete settings and apps that were uploaded...

    Please let me know how I can delete settings and apps that I uploaded to the cloud. Thanks.