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

Similar Messages

  • Acces a particular position in fieldname into "condition editor"

    Hello someone!.
    Our XI systems have installed > SP14.
    We want to use filename into "condition Editor". Actually only can acces a context object area for select FILENAME but we want to compare with a particular position of the filename. In abap the expression will be filename+12(4) = 'ANUL'.
    How i can do into "condition editor" if filename is a context object variable?.
    Thanks for all.
    best Regards.
    Julián.

    Hi Julián,
    You could use the "Contains Pattern (CP)" functionality:
    http://help.sap.com/saphelp_nw04/helpdata/en/67/49767669963545a071a190b77a9a23/frameset.htm
    In your case it should work with the pattern ++++++++++++ANUL*
    Let me know, if this works for you.
    Regards
    Stefan

  • How to pick up a Particular value in a table

    Hi all,
    I have the output of a query to display in a table.Now i want to pickup some values from the output table and use them to display in a graph.
    I wanted to pick the values as below:
    i have 6 rows in the table and 10 columns in the table.
    How can i pick the values from the intersection of 2nd row and 8th column,and intersection of 3rd row and 6th column,intersection of 4rh row and 5th column....and something like this...
    i wanted to store these values in an invisible form and use them when i require.
    Thanks
    P.Navakanth

    Hi all,
    Please find additional info
    Below is the sample table which is the output of query :
                    Column 1           Column2              Column3
    Row 1           180                   130                  280
    Row 2         260                   190                   320
    Row 3           313                   125                   639
    Row 4            257                 367                  478
    I want to display the 4 values in a form which are to be taken from the above table (which are bold).....i.e
    value 1 as 280 which is intersection of row1 and column3
    value 2 as 260 which is intersection of row2 and column1
    value 3 as 639 which is intersection of row3 and column3
    value 4 as 367 which is intersection of row4 and column2
    Thanks
    P.navakanth

  • How to pick up values of particular tag from XMl file & store into an array

    Hi , i m using sax parser to read below xml file.
    <dvd-list>
    <dvd>
    <id>001</id>
         <title>Bollywood</title>
         <name>Lord of the rings</name>
         <length>150</length>
         <actor>Jonathan Austin</actor>
         <actor>Nicole Kidman</actor>
    </dvd>
    <dvd>
    <id>002</id>
         <title>Hollywood</title>
         <name>Taare Zamin pe</name>
         <length>200</length>
         <actor>Amir Khan</actor>
         <actor>Darsheel</actor>
    </dvd>
    <dvd>
    <id>003</id>
         <title>Bollywood</title>
         <name>Matrix reloaded</name>
         <length>150</length>
         <actor>Mickel</actor>
         <actor>Hally Berry</actor>
    </dvd>
    </dvd-list>
    & i want to store it into an arraylist .
    I declared arraylist a class var .
    i want to store all ids into an arraylist ...
    below is my code public void endElement (String namespaceURI, String localName, String qName, Attributes atts)
        throws SAXException
             if(qName.equals("id"))
       for (int i = 0; i < atts.getLength (); i++) {
                    list.add(i,atts.getValue (i));
           // showData ("</"+qName+">");
        }not working ... plz help me in this regard
    thanks a lot

    thanks , my id tag has no attribute...
    but sir again i m facing 1 problem
    to pick up values of tag i wrote below code public void startElement (String namespaceURI, String localName, String qName, Attributes atts)
        throws SAXException
             System.out.println("localName"+qName);
             str=qName;
        public void characters (char buf [], int offset, int len)
        throws SAXException
             String s = new String(buf, offset, len);
          System.out.println("char>>"+s);
          s.trim();
          if(str.equals("id"))
               list.add(s);
              if(str.equals("name"))
                   list.add(s);
              if(str.equals("title"))
                   list.add(s);
              if(str.equals("length"))
                   list.add(s);
              if(str.equals("actor"))
                   list.add(s);   
        public void endElement (String namespaceURI, String localName, String qName, Attributes atts)
        throws SAXException
        }here my list size shud be 5 ideally but it is showing 30!!!!
    also debug stmt sysout(char>>+s); is showing series of
    char>> ...it means charactes(0 method is being called several times ...while my xml contains
    <dvd-list>
    <dvd>
    <id>001</id>
         <title>Bollywood</title>
         <name>Lord of the rings</name>
         <length>150</length>
         <actor>Jonathan Austin</actor>
    </dvd>
    </dvd-list>
    plz help me in this regard to understand this flow....
    thanks a lot in advance

  • 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

  • SQL Query (updateable report) Region - Conditionally Hide and Set Values

    SQL Query (updateable report) Region - Conditionally Hide and Set Values
    Outline of requirement :-
    Master / Detail page with Detail updated on same page using SQL Query (updateable report).
    The detail region has the following source
    SELECT item_id,
           contract_id,
           CASE WHEN hardware_id IS NOT NULL THEN
                   'HA'
                WHEN backup_dev_id IS NOT NULL THEN
                   'BD'
                WHEN hardware_os_id IS NOT NULL THEN
                   'HS'
           END item_type,
           hardware_id,
           backup_dev_id,
           hardware_os_id
    FROM   "#OWNER#".support_items
    WHERE  contract_id = :P26_CONTRACT_IDThe table support_items implements arced relationships and has the following columns
    CREATE TABLE SUPPORT_ITEMS
      ITEM_ID         NUMBER                        NOT NULL,
      CONTRACT_ID     NUMBER                        NOT NULL,
      HARDWARE_ID     NUMBER,
      BACKUP_DEV_ID   NUMBER,
      HARDWARE_OS_ID  NUMBER
    )A check type constaint on support_items ensures that only one of the fk's is present.
          (    hardware_id    IS NOT NULL
           AND backup_dev_id  IS NULL
           AND hardware_os_id IS NULL
    OR    (    hardware_id    IS NULL
           AND backup_dev_id  IS NOT NULL
           AND hardware_os_id IS NULL
    OR    (    hardware_id    IS NULL
           AND backup_dev_id  IS NULL
           AND hardware_os_id IS NOT NULL
          )    Hardware_Id is a FK to Hardware_Assets
    Backup_dev_id is a FK to Backup_Devices
    Hardware_os_id is a FK to Hardware_op_systems
    The Tabular Form Element based on item_type column of SQL query is Displayed As Select List (based on LOV) referencing a named list of values which have the following properties
    Display Value     Return Value
    Hardware Asset    HA
    Backup Device     BD
    Computer System   HSThe Tabular Form Elements for the report attributes for hardware_id, backup_dev_id and hardware_os_id are all Displayed As Select List (Based on LOV).
    What I want to do is only display the Select List for the FK depending on the value of the Select List on Item Type, e.g.
    Item_Type is 'HA' then display Select List for hardware_id, do not display and set to NULL the Select Lists for backup_dev_id and hardware_os_id.
    Item_Type is 'BB' then display Select List for backup_dev_id, do not display and set to NULL the Select Lists for hardware_id and hardware_os_id.
    Item_Type is 'HS' then display Select List for hardware_os_id, do not display and set to NULL the Select Lists backup_dev_id and hardware_id.
    There are properties on elements to conditionally display it but how do we reference the values of the SQL query Updateable region? they are not given a page item name?
    Also on the Tabular For Elements there is an Edit tick against a report item - however when you go to the Column Attributes there is not a property with which you can control the Edit setting.
    What's the best way of implementing this requirement in APEX 3.1?
    Thanks.

    >
    Welcome to the forum: please read the FAQ and forum sticky threads (if you haven't done so already), and update your profile with a real handle instead of "user13515136".
    When you have a problem you'll get a faster, more effective response by including as much relevant information as possible upfront. This should include:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    <li>Theme
    <li>Template(s)
    <li>Region/item type(s) (making particular distinction as to whether a "report" is a standard report, an interactive report, or in fact an "updateable report" (i.e. a tabular form)
    With APEX we're also fortunate to have a great resource in apex.oracle.com where we can reproduce and share problems. Reproducing things there is the best way to troubleshoot most issues, especially those relating to layout and visual formatting. If you expect a detailed answer then it's appropriate for you to take on a significant part of the effort by getting as far as possible with an example of the problem on apex.oracle.com before asking for assistance with specific issues, which we can then see at first hand.
    I have a multi-row region that displays values and allows entries in a number of fields.Provide exact details of how this has been implemented. (An example on apex.oracle.com is always a good way to do this.)
    I should like the fields to be conditional in that they do not permit entry, but still display, if certain conditions apply (e.g. older rows greyed out). Can this be done? Almost anything can be done, often in multiple ways. Which are appropriate may be dependent on a particular implementation, the skills available to implement it, and the effort you're willing to expend on it. Hence it's necessary to provide full details of what you've done so far...

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

  • CcBPM Loop Condition Editor

    Hi
    I am trying to control the number of iterations of a Loop witihn a ccBPM Integration Process.
    I have a Container name: index type: xsd:integer , which is initialised to 0 before the loop is entered.
    I also have Container name: InterfaceCount which is an Abstract Interface containing the total number of iterations required.
    In the Condition Editor for the Loop, if I put    index!=InterfaceCount  
    ... it complains that types xi:operation and xsd:integer cannot be compared.
    Would someone be able to tell me the correct way of doing this please?
    Thanks in advance.

    Hi.  Thanks for the reply.
    What I need to do is compare index to a value passed in on a field on a message.
    Maybe I need to define another integer container, and then use a  'container operation' to extract the interface field to this new integer container, before entering the loop.  Then I can compare  my 'index' integer with the new one to control the loop?

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

  • How to compare two fields in condition editor in receiver determination

    Hello,
    Is it possible to compare to fields frrom the source in the condition editor of Receiver Determination?
    Because on the right hand operand we can specify only constants right and not the source field.
    For eg: If field1 != field2 then Reciever =  Receiver1
    Thanks,
    Loveena

    In standard receiver determination while defining the condition, you can only specify an element from the message payload using expression editor to create an expression for the left operand and you must specify a fixed value in the right operand, against which the value of the element will be compared at runtime. You can use only these (=,, ,EX) operators. So the functionalities are limited.
    so you have to use Enhanced Receiver Determination, In this Instead of creating the receivers in the receiver determination manually, you assign an Interface mapping to the receiver determination and this returns a list of receivers at runtime.
    refer this wiki for more details
    http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=133562771

  • 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

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

  • Condition JEXC- Manual Excise Value, is missing in pricing procedure A M RM

    Dear Gurus,
    During PO creation following massage occurred,
    Condition JEXC- Manual Excise Value, is missing in pricing procedure A M RM0000.
    scenario: - JEXC condition type not picking the value automatically against Tax Code.
    Pl. help,
    Regards,

    hi
    plz check that U HAVE GIVEN PROPER SCHEMA FOR THE VENDOR  as it is detecting schema as RM0000
    or
    it means that u have not yet setup the manual excise
    check following configuration
    Use Condition Type "JEXC" in MM Pricing Procedure.
    You can use manual excise condition "JEXC" in case if your BED Rate is not fixed as 14% and you want to enter BED Value manually.
    Once you input value in JEXC then it will replace the value of BED in "Taxes" under "Invoice" Tab. And ECS / 2% ans SECess / 1%
    will get calculated on BED Value.
    Here use Tax Code of (14% BED + 2% ECS + 1% SEcess + VAT/CAT As applicable), system will calculate BED, ECS & SECess as per the % maintained in Tax Code. Once you enter value in "JEXC" condition, it will replace the value of BED and ECS / 2% ans SECess / 1% will get calculated on BED Value.
    For e.g.
    As per Tax Code;
    Base Value = 10000
    BED / 14% = 1400
    ECS / 2% = 28
    SECess / 1% = 14
    After putting value in "JEXC" as 1600 (For e.g.)
    Base Value = 10000
    BED / 14% = 1600 (Here 1400 will get replaced by 1600 under "Invoice" tab - "Taxes" button)
    ECS / 2% = 32
    SECess / 1% = 16
    I think the above example will make clear the use of condition type "JEXC"
    And Condition Type "NAVS" (Non - Deductible Tax) is used in MM Pricing which will bring value of CST from "Taxes" screen to "Conditions" of PO. Check the attributes of NAVS condition type in M/06
    rgards
    kunal

  • Can't see all operators in condition editor

    Hello everybody,
    I can see only 4 operators in the condition editor.
    Greater than, lower than e.g is missing.
    Any idea?
    Thx, very much
    Jürgen

    Hello Albert,
    Available Operators
    Icon
    Operator
    =
    Equal
    Not equal
    Contains Pattern (CP)
    You use this operator to query a string with a pattern. You can use the following characters for this:
    ·        + for any single character
    ·        * for any string
    *mploymenttaxdeclarat+on annualemploymenttaxdeclaration.
    EX
    Exists
    You use this operator to check the existence of the expression (in the left operand). This enables you to find out whether a substructure represented by the expression exists.
    You can use this operator if you want to check whether a particular element exists in the payload, for example. To do so, enter the element you want to check in the left-hand operand and leave the right-hand operand empty. You can also use the = operand for this check.
    Linking Multiple Logical Expressions
    The following functions are available for inserting multiple table lines and linking the expressions in these lines to each other logically:
    Functions for Linking Multiple Logical Expressions
    Icon
    Function
    Insert Group: Insert Inserts a new line for a new logical expression below the selected line.
    The new expression is linked to the expression in the selected row by the OR operator.
    Insert Expression: Inserts a new line for a new logical expression below the selected line.
    The new logical expression is linked to the expression in the selected line by the AND operator. Expressions that are linked by an AND operator are combined using a parenthesis symbol.
    Go through this link..
    http://help.sap.com/saphelp_nw04/helpdata/en/67/49767669963545a071a190b77a9a23/content.htm
    Hope this information is helpful to you.
    Thanks,
    satya Kumar
    Reward points if it is useful..

Maybe you are looking for

  • How to have 2 link colors on one page?

    Learning CSS and am unable to make this happen. What am I doing wrong? http://larrysullivandesign.com/sourceprintmedia.com/_contact.html http://larrysullivandesign.com/sourceprintmedia.com/sourceprintmedia.css The text links at page bottom (link-type

  • How to monitor load on GWWS? and create Multiple GWWS ?

    Hi, I'm running Tuxedo 10gR3 and observed in OS level that GWWS process alone consume more than 10% of CPU all the time and some slowness are claimed by users. I need to check if this is normal (CPU %) by checking the load on GWWS and if needed to cr

  • Best way to use OR in a select statement

    HIya, I have  list of G/L accounts(HKONT) that I want to get some fields for and just wanted to ask what the best way to do that would be... I was thinking of doing this: SELECT dmbtr shkzg hkont prctr FROM bseg INTO table itab_bseg WHERE  bukrs  = i

  • Reg : BEx Reporting

    Hello all, Could any one of you please let me know how to use calculatable Key Figures prefarably with example. Thanks in advance. Balaji

  • RMI - JSP or App code problem

    I am trying to connect to AIX server running the RMI service from my desktop on Windows using eclipse. Here is the code: package rmitest; * module: RMITest.java import java.util.*; import java.net.*; import java.rmi.*; import java.rmi.RMISecurityMana