Predicates for XPath in Condition Editor of NWDS for PI AEX 7.4 (SP 7)

Dear all,
we are in the middle of migrating from our old Dual Stack PI 7.0 to our new PI 7.4 AEX.
We have a fairly largen receiver determination on the old system that makes heavy use of predictes. One expression for example looks like this
(SHPMNT05/IDOC/E1EDT20/E1EDL20/E1EDL37/E1EDL49/E1EDL50[XSIQUALF='EEIVERF']/VLABDATA = 01)
However, when I'm trying to insert this in NWDS' condition editor there's an error stating "Predicates are only allowed with EXISTS operator"
1. Is this a limitation of the condition editor in NWDS?
2. Is there a way to configure the above XPath so it is working in NWDS?
3. Would it be safe / wise to configure the mappig in ICO in Swing Tool or would this be overwritten by NWDS configuraiton?
Many thanks
Jens

Hi Jens
From SAP library, the example shows that the usage of predicate is with the EX operator, so maybe it is a limitation.
Integration Directory - SAP Library
Maybe you can try to combine your two conditions in the predicate and use it with the EX operator
(SHPMNT05/IDOC/E1EDT20/E1EDL20/E1EDL37/E1EDL49/E1EDL50[XSIQUALF='EEIVERF' and VLABDATA = '01'] EX)
Rgds
Eng Swee

Similar Messages

  • XPath for root node in condition editor

    Hi,
    I have a HTTP to IDOC scenario. I have to accept any incoming document,(i will know only at runtime whether it is ORDERS or INVOICE or ASN etc) and post it to the respective receiver based on what is the name of the root node. But how do i specify this in the condition editor? if i give /* or name(/*) it does not work.Can anyone suggest a solution for this?
    Thanks
    Shakthi

    Well I have one solution but don't konw if it is worth for you.
    First create one mapping called pre_mapping in this mapping map all fields and the root node value to the target structure correspondingly . Now use BPM with simple receive & send steps. BPM should send the message back to XI.
    Use the final mapping with this messge retuned from BPM.
    Now use the x-path and select the field from source structre (which BPM has sent back to XI) which contains IDOC type. So in this case your sender system will be BPM.

  • Xpath expression in condition editor

    Hi Expert Forum !
    I have an xml structure like this :
    <aaa>
      <bbb>
        <ccc>
        </ccc>
      </bbb>
    </aaa>
    In my condition editor (receiver determination) I want to refer to an element which is a child of node <ccc>. However, node ccc is not defined in my data type.
    I can without any problems type my xpath expression manually but it doesn't seem to work though. As if it doesn't recognize node ccc if it's not in the data type. I know for 100% sure that node ccc will be in my inbound message.
    Is it possible to reference an element in the condition editor - knowing that it will be present in the inbound message - even though it's not defined in the underlying data type ??
    So why not just change the data type if I know <ccc> will be there? Well, data type is an external definition and I don't wanna edit it only to support an xpath expression in my rec. determination. If I can avoid it...
    Message was edited by:
            Hans Hougaard
    Message was edited by:
            Hans Hougaard

    Managed to make xpath expression work. It is possible to reference an element which is not defined in the data type. My problem turned out to be a namespace issue..

  • XPath Expression at Condition Editor in Receiver Determination

    Hi,
      I have a fixed length flat file coming in into which I have to look at the first line's 4th to 7th positions. Based on that if it is "1234" then I need to route it to the receiver else I will ignore in the receiver determination.
    Example input file -
    M 0123456789ABCDEFGHIJKL
    PR0123456789JIDFJDIFJD0244
    PA0123456789JFDJF9384384K
    We have module configuration where we are converting this to a line value pair something like this -
    <?xml version="1.0" encoding="utf-8"?>
    <ns:GMTLog xmlns:ns="http://sap.com/xi/GMStoreConnectivity">
        <Line>
            <Value>M 0123456789ABCDEFGHIJKL
            </Value>
         </Line>
          <Line>
            <Value>PR0123456789JIDFJDIFJD0244
            </Value>
          </Line>
           <Line>
            <Value>PA0123456789JFDJF9384384K
            </Value>
          </Line>
    </ns:GMTLog>
    When I tried to test my xpath in xpath tester it is working fine with the below xpath expressions -
    1. /ns:GMTLog/Line[Value][1] --> This returned the first record completely
    2. substring(/ns:GMTLog/Line[Value][1], 4, 4) --> This returned exactly what I am expecting "1234"
    But the above 2 are not working in condition editor.
    May I know the exact xpath expression to be used in this case to route the message to receiver when 4th to 7th position is "1234".
    Thanks a lot in advance.
    Regards,
    Sarat

    Good day. Can I please have some clarity on what I need to correct on my Receiver expression test.
    For the number of instances of the Summary segment, I am required to identify and test the Summary amount of SUMME if this is more than 5.00 (a currency amount). SUMME is a string so I thought I should convert this to a "number" value to test it.
    Also ensuring that SUMME is checked when the SUMID is equal to 011.
    Now I hope part of my solution below is correct, but the test of the field value is not being done.
    Please help.

  • BMP: Condition Editor for SWITCH Step

    Hi
    Can anyone tell me how I stipulate the following conditions for a switch step in BPM:
    >, <, <=, >=
    The only options that seem to be available are:
    =, !=, Existence check and contains a particular string pattern...which is very limiting?
    Surely SAP has given the options for the greater than, less than etc oprands....hopefully i simply missing a service pack or something like that.
    Cheers
    Yackeen

    Hi
    One way could be to use XPATH expressions & XPATH functions in your condition editor. Chk whether an element has a value greater than or less than some value in the XPATH expression itself.
    The result of this check now can be compared to a true or false(that is your rt hand operand). My 2 cents.
    -Saravana

  • In PI 7.1, condition editor does not show the outbound interface structure

    Hello,
    I am using PI 7.1, I need to use condition whild determing receivers. So I opened the condition editor, then open the expression editor, select XPath instead of Context object. I would expect that the outbound interface structure appears in the box underneath the XPath, so that I can navigate the structure to choose the field I want to use. However nothing appears here. Do you knwo why is that? Or do I need to do anything to bring up the outbound interface structure in the expression editor?
    Thanks
    Jayson

    Hi Jayson,
    I had the same problem
    the use of context objects and the value help for xpath is available for XI3.0 interfaces in PI 7.10 only. The functionality for "new" interfaces has been implemented in 7.11 only.
    you have to use xpath w/o value help.
    I have created a context object in one of our 7.10 test systems, and indeed I was unable to use it in a receiver determination unless the service interface pattern is "Stateles (XI 3.0 compatible)". If you were to change the service interface to that pattern, you have to change the operation name unless it is already identical to the interface name. So that may not be an option for you.
    It was possible to use the context object in a receiver rule but then I could not activate the receiver determination because the software component version was supposedly unknown. I will check with my PI contacts - please let me know if the change to "XI 3.0" interface would be a possible workaround for you.
    Try the steps which I am giving below, although it's a workaround and don't know the exact reason why it is failing.
    1. Open your Outbound Message Interface (which you are using in your Receiver Determination) in IR, edit it and change the Interface pattern (which is there just below the category "Outbound") to "Stateless (XI30 - Compatible)" , save it activate it.
    2. Follow the same step for your Inbound Message Interface. Change the Interface Pattern from "Sateless" to "Stateless (XI30 - Compatible)" .
    3. Go to ID. Remove your Outbound and Inbound Message Interface from their respective Business Service/Comp and add it again.
    4. Create your your receiver determination again using the Outbound and Inbound MI you have changed.
    5. Open condition editor of your receiver determination.You should be able to see your Message Interface and can choose the XPath.
    Thanks,
    Raj
    Edited by: raj reddy on Jan 21, 2009 5:41 PM

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

  • PI 7.0 Condition Editor: Picking particular value of multiline element

    Hi PI-Gurus,
    we're on PI 7.0 with the old condition editor. Within a condition we have to check a value of an element at a particular position. If the value in the second E1EDK14 segment (QUALF 007) is "04", we can process the message. Otherwise the message hast to be stopped.
    Example:
    <E1EDK14 SEGMENT="1">
      <QUALF>006</QUALF>
      <ORGID>01</ORGID>
    </E1EDK14>
    <E1EDK14 SEGMENT="1">
      <QUALF>007</QUALF>
      <ORGID>04</ORGID>
      </E1EDK14>
    <E1EDK14 SEGMENT="1">
      <QUALF>008</QUALF>
      <ORGID>1000</ORGID>
    </E1EDK14>
    Is this possible to address a particular element in the ORGID list?
    As I understand, normally the ORGID's come as a multiline element and can be addressed like this:
    /ORDERS05/IDOC/E1EDK14/ORGID
    My guess is the following:
    /ORDERS05/IDOC/E1EDK14<b>[1]</b>/ORGID  - and unchecking the multiline checkbox
    Am I right, or is there any other solution?
    Help is as always highly appreciated and will be rewarded!
    Thanks in advance!
    Matthias

    Hi,
    The condition editor uses full-blown xpath expressions so you could even use something like
    ORDERS05/IDOC/E1EDK14[QUALF='007' and ORGID='04']/ORGID
    and then for the operator use EX
    or
    /ORDERS05/IDOC/E1EDK14[QUALF='007']/ORGID
      and then operator = and value 04
    Edited by: ciochinah on Feb 16, 2011 7:59 PM

  • IDoc Message Structure Missing from Condition Editor - SWCV Dependency

    Hi All,
    I have an issue whereby I am missing the Message Structure in the Condition Editor Dialog while doing Receiver determination. I have seen others posts with the issue but none of the solutions seem to apply to me. My config:
    I have a SWCV called MY_SAP_BASIS, which is defined in the SLD with SAP BASIS as prereq. I import this SWCV into IR and build some objects. I wish to use an IDoc, so I import it into SAP BASIS, and it appears under my SWCV (MY_SAP_BASIS) in the "Basis Objects" section, but not directly under "Imported Objects" - as I would expect because of the relationship created in the SLD.
    My issue comes when I try to create a Rec. Determination. I want to use the condition editor, for multiple receivers, but when I click on the button to bring that up, first I get the error "Message interface does not exist in any software components installed on this business system", then when I try to use the Structure of the IDoc for an XPath, the structure browser is empty.
    I can't see why this would be. If I look in the SLD, and look at the Business System in question, it lists MY_SAP_BASIS and SAP BASIS as being installed.
    Also, when I do a "Where used" in IR on that IDoc, using my own SWCV and SAP BASIS, I get the same list. I have also checked the GUID's between the SLD and IR, and they are identical (except fpr hyphens in the display, which I am assuming don't matter).
    Anyone have any ideas? I assume that if I import the IDocs directly in MY_SAP_ERP, I will be able to solve this. But I would rather the Software Dependency worked!
    Many thanks.

    Jai/Michal,
    Many thanks for your replies. But unfortunately I had already checked this and I don't think it is the issue. My first message probably wan't as clear as it should have been: I have a Product "MY_SAP_BASIS" - this has one SWCV under it, also called "MY_SAP_BASIS". This SWCV has a dependency on "SAP BASIS 4.6c". Now, on the Technical and Business systems involved, the Product "MY_SAP_BASIS" is installed. This, as you would expect from the dependency, brings across the "MY_SAP_BASIS" SWCV and the "SAP BASIS 4.6c" SWCV, so they are both installed on the technical system . So I don't know what else I should be adding? Unless my understanding of Software dependencies is incorrect, I think my config looks right in the SLD. The SWCV under which the IDoc imports are done is "SAP BASIS 4.6c", and this is installed on both the technical and business system. The only difference is that it gets there through a software dependency, and is not added "directly". In IR I can see the imported objects under the "MY_SAP_BASIS" SWCV - in the "Basis Objects" section.
    Is there anything else anyone can suggest?

  • 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

  • Dummy symbol in condition editor

    Hello all,
    Does anybody know if it is possible to use the dummy symbol "*" in the condition editor. (interface determination)
    My requirement is to test the incoming file name and check if it contains certain string.
    Ex : ( if filename = MM_IN_004_01_ECG_''001''.txt OR filename = MM_IN_004_01_ECG_''002''.txt )
    Or is there some other way to do it...
    Thanks for you replies.
    Best regards,
    Laurent.

    It's not in the "XPATH" but in the "Context Object".
    The CP option is available for both XPATH and Context Object......actually is is just the matter of selecting the right Middle Operand and making a correct entry in Right Operand.....Left Operand's type does not affect it
    I will get back to you as soon as i have tested
    yes please update the forum with your findings....
    Regards,
    Abhishek.

  • Condition editor in receiver determination does not show payload fields

    Hi !
    We are trying to create some conditions for the receiver determination in a RFC->XI->File scenario, but when we open the condition editor, under the XPATH option we do not set any payload fields to create conditions!!
    Any clues?
    Thanks,
    Matias.

    Hi,
    Check in SLD if your software component is installed on your business system and then clear SLD cache in ID.
    You will see interfaces assigned to your business system and also the payload fields in condition editor
    Thanks,
    Beena

  • Problem searching by XPATH in mapping editor in version 7.1

    Hi  experts.
    Im having a little problem with searching by XPATH in mapping.
    Why doesn't search a node or target message by XPATH in mapping editor work? In version 7.0 works correctly ....
    If I copy a node xpath in mapping editor and then I paste the copied text in the search optinon the searching throw an error: "String /ns0:xxxxxxxxxxxxxxx not found".
    Why this action works in 7.0 but not in 7.1?
    Regards and thank u so much.

    Hello,
    Why doesn't search a node or target message by XPATH in mapping editor work? In version 7.0 works correctly ....
    If I copy a node xpath in mapping editor and then I paste the copied text in the search optinon the searching throw an error: "String /ns0:xxxxxxxxxxxxxxx not found".
    Why this action works in 7.0 but not in 7.1?
    I read somewhere here in SDN that service interface patterns affect on how you declare conditions in xPath for Pi 7.1. Can you try using //ns0 instead of /ns0?
    Hope this helps,
    Mark

  • Problem with condition editor

    Hello,
    In my scenario i use an abap proxy for sending informations from a SAP system to 2 laptop depending of the content of a special field in my interface.
    For that i use the condition editor in the ID but when i want to create my xpath from the schema of the interface, i have a popup with this error message : "Unable to load XSD schema. Check whether the interface exists in the Integration Repository".
    And the strange thing is : this interface exist !
    If somebody has an idea.
    Regards,
    Vincent LECONTE

    Hello Hans,
    Thanks a lot for your help.
    Effectively the problem was that the "Software component" was not marked for the business system... .
    So now i can see the xsd schema and create a condition.
    But after my condition is created when i test my scenario it doesn't work. If i use the transaction "SMXB_MONI" i can see the xml message but the status is "a green flag", it don't go to the step "Receiver Identification" ????
    A if i remove this condition my scenario work fine.
    Sample message sent is :
    <?xml version="1.0" encoding="UTF-8" ?>
    <OutputMess>
      <Description>Voiture</Description>
      <quantity>2</quantity>
      <UOMCode>KG</UOMCode>
    </OutputMess>
    and my condition is simple :
    (/OutputMess/Description = Voiture)
    If you have a wonderfull idea, it will be fine.
    Best Regards,
    Vincent.

  • While opening condition editor its not showing me the structure

    Hello Experts,
         Mine is a proxy to file scenerio.....with a condition in reciver detrmination and while giving conditon in condition editor,  due to an unknown reason,  its not populating the Message Structure.
    It is giving an error messege " Message interface does not exist in any software components installed on this business system "
    If there is some 1 with similar experience,
    pls revert back,
    Arnab .
    Edited by: Arnab Mondal on Sep 25, 2008 12:14 PM

    Hi,
    If you get the following msg while selecting the BS in Receiver Determination
    "Message interface does not exist in any software components installed on this business system"
    1) Open ID-----Double click on Business system that which u are using in the scenario
    2) Check whether you are able to see the SWC in the Othere attributes TAB
    3) If it is not there means goto SLD----Open the Technical System of R/3 by choosing Web as ABAp type
    4) Click on Installed Products TAB
    5) Click on Add New product and add your Product of the SWC whcih you are using for developement and Save it
    6) Then goto Business systems TAB in the same Technical systems window and click on the Business System appears in the window.
    7) Click on Installed products and Check the check box of your Product and then finally save that.
    Now you should be able to see the SWC in the Othere attributes TAB in ID
    Regards
    Seshagiri

Maybe you are looking for

  • Best way to set up annual accounts spreadsheet

    I just bought iWork 09. What's the best way to set up a spreadsheet in numbers for annual accounts that list weekly totals? Would it be best to create a sheet for each week or one sheet with 52 tables? I need to summarise all 52 weeks' totals onto on

  • PO holding Issue

    i have one problem in Holding the PO data... actually after holding the PO system issue a PO number let say 4500000058. then after doing changes in PO it shud save/post with same number but in my system it shows a different number for that 4500000060

  • MEPO1320 - OBMNG

    Masters!! Im having a hard time to find the transparent table of field obmng(open quantity) Could you advise me on what field should I need to use in replace with obmng and what table it is included? Im currently joining a table in sq02 and the field

  • What are fonts?

    Now I have designed a layout for a kind of Short message letter, and want to apply my prefered appearance of characters. My application Freehand does not show it - I am looking to Lybraries/Fonts, Kuenstlerscript is there. Now I call the tool which i

  • HOW TO DELETE A CONDITION TABLE??

    HI DOES ANYONE KNOWS HOW TO DELETE CONDITION TABLE? THANKS