XPath: contains()

Hello!
We are using XPath conditions in the interface determinations to select a specific mapping according to the payload:
e.g. execute mapping I if:
/ORDERS05[(IDOC/EDI_DC40/MESCOD="IC") and (IDOC/E1EDK14[QUALF="014"]/ORGID="P475")]
e.g. execute mapping II if:
/ORDERS05[(IDOC/EDI_DC40/MESCOD="IC") and (IDOC/E1EDK14[QUALF="014"]/ORGID!="P475")] and not(contains(/ORDERS05/IDOC/E1EDP01/E1EDP19[QUALF="002"]/IDTNR,"#"))
It works fine for mapping I but if mapping II should be triggered the message fails with: "Unable to find inbound interface".
However, if I test the XPath for the second test IDoc in my XPath test tool it returns TRUE so the XPath should be correct. Could it be that the not() and contains() XPath functions are not supported in XI?
Regards, Tanja

Hello Stefan!
> /people/shabarish.vijayakumar/blog/2006/06/07/customise-your-xpath-expressions-in-receiver-determination
Thanks, the blog was very helpful:
"Note : It is not possible to have any operator like 'and', 'or' etc outside the brackets [ ]."
solved my problem. I just changed the XPath to
/ORDERS05[IDOC/EDI_DC40/MESCOD="IC" and IDOC/E1EDK14[QUALF="014"]/ORGID!="P475" and IDOC/E1EDK14[QUALF="014"]/ORGID!="P476" and IDOC/E1EDK14[QUALF="014"]/ORGID!="P477" and IDOC/E1EDK14[QUALF="014"]/ORGID!="P478" and not(contains(/IDOC/E1EDP01/E1EDP19[QUALF="002"]/IDTNR,"#"))]
and now the correct interface mapping is executed!
> XPATH expresens must return an element or node, not a boolean value.
I'm using the XPath in the interface determination, not in the receiver determination. The XPath needs to return TRUE for the interface mapping that needs to be executed. It works as long as you make sure only ONE of the XPaths returns TRUE.
PS: We will meet again at SAP shortly, I have accepted an offer as XI architect in SAP's internal IT starting from April.
Regards, Tanja

Similar Messages

  • XPath contains or compare with collation

    I intend to use the XPath contains which matches on whole words.
    Ex: contains ("abcd xyz","abc") should return false
    contains ("abc xyz","abc") should return true
    I understand that this can be done using collation.
    I have been trying to understand this by reading related documentation on w3.org but am not able to understand it.
    Can someone please help me with an example?
    Thanks,
    Rahul

    Try to use one of the following Data Structure classes which implements Set interface. Set interface does not contain duplicate elements which means that if e1.equals(e2) and then it does not take e2 into its storage.
    So try to use these classes;
        AbstractSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

  • Namespace problem The result is empty for the XPath expression

    I have a problem with BPEL namespaces. The webservice that my BPEL process is using has changed namespaces (i.e. the java code package names changed and therefore the namespaces associated with the packages.)
    Before there was only one namespace associated with this web services; now there are multiple namespaces.
    I have changed the namespaces in my .bpel file; however I get the result is empty for XPath expression:
    /nsxml0:getMailResponse/nsxml0:getMailReturn/nsxml1:mailOut
    Any help appreciated...:(

    hey b-o-s-t-o-n,
    have your verified that the namespace import is correct, and with the right prefix
    you xpath contains 2 namespace prefixes
    /nsxml0:getMailResponse/nsxml0:getMailReturn/nsxml1:mailOut
    so check the bpel file and maybe the wsdl that has been generated (that inclused the plnk extensions for your external service)
    this is the most common issue ..
    hth clemens

  • Inconsistent datatypes:expected - got - error in handling xml

    hi i am getting the error Error(45,12): PL/SQL: ORA-00932: inconsistent datatypes: expected - got - in this procedure
    i tried a lot and landed in confused state..
    create or replace
    PROCEDURE BT_CPE_XML_READ1 IS
    dest_clob CLOB;
    src_clob BFILE := BFILENAME('DOC_PATH', 'tester.xml');
    dst_offset number := 1 ;
    src_offset number := 1 ;
    lang_ctx number := DBMS_LOB.DEFAULT_LANG_CTX;
    warning number;
    ex number;
    v_cast xmltype;
    v_varchar varchar2(32767);
    BEGIN
    DBMS_LOB.CREATETEMPORARY(dest_clob,true);
    ex := dbms_lob.fileexists(src_clob);
    if ex = 1 then
    INSERT INTO test_clob(id, file_name, XML_FILE_COLUMN, timestamp)
    VALUES(1001, 'test.xml', empty_clob(), sysdate)
    RETURNING XML_FILE_COLUMN INTO dest_clob;
    DBMS_LOB.OPEN(src_clob, DBMS_LOB.LOB_READONLY);
    DBMS_LOB.LoadCLOBFromFile(
    DEST_LOB => dest_clob
    , SRC_BFILE => src_clob
    , AMOUNT => DBMS_LOB.GETLENGTH(src_clob)
    , DEST_OFFSET => dst_offset
    , SRC_OFFSET => src_offset
    , BFILE_CSID => DBMS_LOB.DEFAULT_CSID
    , LANG_CONTEXT => lang_ctx
    , WARNING => warning
    DBMS_OUTPUT.ENABLE(100000);
    DBMS_LOB.CLOSE(src_clob);
    COMMIT;
    DBMS_OUTPUT.PUT_LINE('Loaded XML File using DBMS_LOB.LoadCLOBFromFile: (ID=1001).');
    v_cast :=xmltype(dest_clob);
    --dbms_output.put_line(v_cast);
    select extractvalue(XML_FILE_COLUMN,'/modifyProductPortfolioRequest/ns1:stateCode') from test_clob;
    end if;
    END BT_CPE_XML_READ1;
    is there any other way to get the value(xml)from the clob column of a table

    I see two issues off a quick eye-ball of the code<br><br>
    #1) You insert an empty clob into your table, load a local variable with the XML from disk, and then query the table. You never insert the XML into the table so you are querying on an empty column in the table.<br><br>
    #2) extractValue allows a third parm which is the namespace string. Since your XPath contains ns1: you'll need to use the third parm

  • Inconsistent datatypes: expected - got -

    hi i am getting the error Error(45,12): PL/SQL: ORA-00932: inconsistent datatypes: expected - got - in this procedure
    i tried a lot and landed in confused state..
    create or replace
    PROCEDURE BT_CPE_XML_READ1 IS
    dest_clob CLOB;
    src_clob BFILE := BFILENAME('DOC_PATH', 'tester.xml');
    dst_offset number := 1 ;
    src_offset number := 1 ;
    lang_ctx number := DBMS_LOB.DEFAULT_LANG_CTX;
    warning number;
    ex number;
    v_cast xmltype;
    v_varchar varchar2(32767);
    BEGIN
    DBMS_LOB.CREATETEMPORARY(dest_clob,true);
    ex := dbms_lob.fileexists(src_clob);
    if ex = 1 then
    INSERT INTO test_clob(id, file_name, XML_FILE_COLUMN, timestamp)
    VALUES(1001, 'test.xml', empty_clob(), sysdate)
    RETURNING XML_FILE_COLUMN INTO dest_clob;
    DBMS_LOB.OPEN(src_clob, DBMS_LOB.LOB_READONLY);
    DBMS_LOB.LoadCLOBFromFile(
    DEST_LOB => dest_clob
    , SRC_BFILE => src_clob
    , AMOUNT => DBMS_LOB.GETLENGTH(src_clob)
    , DEST_OFFSET => dst_offset
    , SRC_OFFSET => src_offset
    , BFILE_CSID => DBMS_LOB.DEFAULT_CSID
    , LANG_CONTEXT => lang_ctx
    , WARNING => warning
    DBMS_OUTPUT.ENABLE(100000);
    DBMS_LOB.CLOSE(src_clob);
    COMMIT;
    DBMS_OUTPUT.PUT_LINE('Loaded XML File using DBMS_LOB.LoadCLOBFromFile: (ID=1001).');
    v_cast :=xmltype(dest_clob);
    --dbms_output.put_line(v_cast);
    select extractvalue(XML_FILE_COLUMN,'/modifyProductPortfolioRequest/ns1:stateCode') from test_clob;
    end if;
    END BT_CPE_XML_READ1;
    is there any other way to get the value(xml)from the clob column of a table

    I see two issues off a quick eye-ball of the code<br><br>
    #1) You insert an empty clob into your table, load a local variable with the XML from disk, and then query the table. You never insert the XML into the table so you are querying on an empty column in the table.<br><br>
    #2) extractValue allows a third parm which is the namespace string. Since your XPath contains ns1: you'll need to use the third parm

  • Doubts regarding wildcards...

    select t.resume_id
    from tbl_ResDoc t where contains(t.xmltext,'haspath(/xs:ResDoc/resume/experience/job[./title="Maintenance %"])') > 0 and t.resume_id=2
    Problem: I have to retrive a id whose job title is "Maintenance Coordinator". I wud like to search the id using the wildcards. I have to give only the value "Maintenance" and i have to find the id.
    For this, i have used this query..
    select t.id
    from tbl_content t where contains(t.xmltext,'haspath(/job[./title="Maintenance %"])') > 0;
    For this query, im getting the error as...
    ERROR at line 1:
    ORA-29902: error in executing ODCIIndexStart() routine
    ORA-20000: Oracle Text error:
    DRG-51030: wildcard query expansion resulted in too many terms
    Can i know the solution to this....

    You can use the xpath contains() function or use ora:contains() extension.
    Example are provided in the new Oracle Database 10g: SQL and XML book:
    http://www.amazon.com/exec/obidos/tg/detail/-/0072229527/qid=1093371613/sr=8-2/ref=sr_8_xs_ap_i2_xgl14/102-3560122-3995319?v=glance&s=books&n=507846

  • Read xml nodes

    Hello to everyone.
    I 'm trying to build an rss reader in PLSQL.
    I'm confused and i want your help.
    I used dbms_xmlparser to parse an xml and read its nodes but I have a problem with the character set (xml is iso-8859-7 but i cannot read it).
    So, i thought that if i made a request to the xml url using UTL_HTTP and GET method, then i could use clob response and from that to extract the nodes using EXTRACTVALUE function etc and all these in UTF-8
    Here is a sample of the xml:
    <item>
    <title>ΝΔ: «Κρυφή ατζέντα» του ΠΑΣΟΚ για τη φορολογία</title>
    <guid isPermaLink="true">http://www.naftemporiki.gr/news/rssredir.asp?id=1720858</guid>
    <link>http://www.naftemporiki.gr/news/rssredir.asp?id=1720858</link>
    <pubDate>Mon, 28 Sep 2009 15:45:00 +0200</pubDate>
    <description>Για «κρυφή ατζέντα» στο πεδίο της φορολογίας κατηγορεί το ΠΑΣΟΚ και τον πρόεδρό του Γιώργο Παπανδρέου η ΝΔ, επισημαίνοντας ότι επιμένει να μην ανοίγει τα χαρτιά του, γίνεται όλο και πιο αόριστο και σχεδιάζει καινούργιους φόρους.</description>
    <author>[email protected] (Η ΝΑΥΤΕΜΠΟΡΙΚΗ ON LINE)</author>
    </item>
    <item>
    <title>Ομιλία Αλ. Τσίπρα στην πλατεία Κοτζιά αύριο</title>
    <guid isPermaLink="true">http://www.naftemporiki.gr/news/rssredir.asp?id=1720857</guid>
    <link>http://www.naftemporiki.gr/news/rssredir.asp?id=1720857</link>
    <pubDate>Mon, 28 Sep 2009 15:44:00 +0200</pubDate>
    <description> Την Τρίτη 29 Σεπτεμβρίου στην πλ. Κοτζιά, στις 7 μ.μ., θα πραγματοποιηθεί η κεντρική προεκλογική συγκέντρωση του ΣΥΡΙΖΑ στην Αθήνα με ομιλητή τον Πρόεδρο του ΣΥΝ Αλέξη Τσίπρα. </description>
    <author>[email protected] (Η ΝΑΥΤΕΜΠΟΡΙΚΗ ON LINE)</author>
    </item>
    I'd like to loop through these nodes and take only the first 3 of them (eg first 3 "title"), not all the nodes.
    Is there any suggestion either for the encoding or for the loop through the nodes...?
    Thank you
    Edited by: Alexandra T. on 28 Σεπ 2009 7:09 πμ

    Just some quick thoughts.
    You could use [.getXML|http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/t_dburi.htm#i1011991] of HTTPURITYPE to retrieve the remote XML as XML (or getClob if you want/need to bring it back as a CLOB).
    For pulling the first three, two options are to have the data as an XML Type and setup a for 1..3 loop and do an extract where the XPath contains the loop counter in it, such as item[1]/title, item[2]/title, item[3]/title. Of you could not worry about the loop and just hard-code those three extracts into your code.
    I've never had to deal with different character sets when dealing with XML so I can't offer much advice other than to search oracle sites for that info. (hint: via Google use site:forums.oracle.com and site:oracle.com).
    Update: And then I run across this while reading some other forums {thread:id=613170}. Pay attention to the use of NLS_CHARSET_ID.
    Edited by: A_Non on Sep 28, 2009 9:22 AM

  • SSMS 2012:FOR XML PATH Using XPath Node Tests-Columnn name 'test()' contains an invalid XML identifier as required by FOR XML?

    Hi all,
    I am learning XPATH and XQUERY from the Book "Pro T-SQL 2008 Programmer's Guide" written by Michael Coles, (published by apress). I copied the Code Listing 12-8 FOR XML PATH Using XPath Node Tests (listed below) and executed it in my
    SQL Server 2012 Management Studio:
    --Coles12_8.sql // saved in C:/Documemnts/SQL Server Management Studio
    -- Coles Listing 12-8 FOR XML PATH Using XPATH Node Tests
    -- Retrieving Name and E-mail Addresses with FOR XML PATH in AdvantureWorks
    -- 16 March 2015 0935 AM
    USE AdventureWorks;
    GO
    SELECT
    p.NameStyle AS "processing-instruction(nameStyle)",
    p.BusinessEntityID AS "Person/@ID",
    p.ModifiedDate AS "comment()",
    pp.PhoneNumber AS "test()",
    FirstName AS "Person/Name/First",
    MiddleName AS "Person/Name/Middle",
    LastName AS "Person/Name/Last",
    EmailAddress AS "Person/Email"
    FROM Person.Person p
    INNER JOIN Person.EmailAddress e
    ON p.BusinessEntityID = e.BusinessEntityID
    INNER JOIN Person.PersonPhone pp
    ON p.BusinessEntityID = pp.BusinessEntityID
    FOR XML PATH;
    I got the following error message:
    Msg 6850, Level 16, State 1, Line 2
    Column name 'test()' contains an invalid XML identifier as required by FOR XML; '('(0x0028) is the first character at fault.
    I have no ideas why I got this error message.  Please kindly help and advise me how to resolve this error.
    Thanks in advance,  Scott Chang

    Hi Michelle, Thanks for your nice response.
    I corrected the mistake and executed the revised code. It worked nicely.
    I just have one question to ask you about the appearance of the xml output of my Co;les12_8.sql:
    <row>
    <?nameStyle 0?>
    <Person ID="1" />
    <!--2003-02-08T00:00:00-->697-555-0142<Person><Name><First>Ken</First><Middle>J</Middle><Last>Sánchez</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="2" />
    <!--2002-02-24T00:00:00-->819-555-0175<Person><Name><First>Terri</First><Middle>Lee</Middle><Last>Duffy</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="3" />
    <!--2001-12-05T00:00:00-->212-555-0187<Person><Name><First>Roberto</First><Last>Tamburello</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="4" />
    <!--2001-12-29T00:00:00-->612-555-0100<Person><Name><First>Rob</First><Last>Walters</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="5" />
    <!--2002-01-30T00:00:00-->849-555-0139<Person><Name><First>Gail</First><Middle>A</Middle><Last>Erickson</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="6" />
    <!--2002-02-17T00:00:00-->122-555-0189<Person><Name><First>Jossef</First><Middle>H</Middle><Last>Goldberg</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="7" />
    <!--2003-03-05T00:00:00-->181-555-0156<Person><Name><First>Dylan</First><Middle>A</Middle><Last>Miller</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="8" />
    <!--2003-01-23T00:00:00-->815-555-0138<Person><Name><First>Diane</First><Middle>L</Middle><Last>Margheim</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="9" />
    <!--2003-02-10T00:00:00-->185-555-0186<Person><Name><First>Gigi</First><Middle>N</Middle><Last>Matthew</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="10" />
    <!--2003-05-28T00:00:00-->330-555-2568<Person><Name><First>Michael</First><Last>Raheem</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    <?nameStyle 0?>
    <Person ID="11" />
    <!--2004-12-29T00:00:00-->719-555-0181<Person><Name><First>Ovidiu</First><Middle>V</Middle><Last>Cracium</Last></Name><Email>[email protected]</Email></Person></row>
    <row>
    I feel this xml output is not like the regular xml output.  Do you know why it is diffrent from the regular xml xml output?  Please comment on this matter.
    Thanks,
    Scott Chang
    What do you mean by regular xml document? Are you referring to fact that its missing a root element? if yes it can be added as below
    USE AdventureWorks;
    GO
    SELECT
    p.NameStyle AS "processing-instruction(nameStyle)",
    p.BusinessEntityID AS "Person/@ID",
    p.ModifiedDate AS "comment()",
    pp.PhoneNumber AS "text()",
    FirstName AS "Person/Name/First",
    MiddleName AS "Person/Name/Middle",
    LastName AS "Person/Name/Last",
    EmailAddress AS "Person/Email"
    FROM Person.Person p
    INNER JOIN Person.EmailAddress e
    ON p.BusinessEntityID = e.BusinessEntityID
    INNER JOIN Person.PersonPhone pp
    ON p.BusinessEntityID = pp.BusinessEntityID
    FOR XML PATH('ElementName'),ROOT('RootName');
    replace ElementName and RootName with whatever name you need to set for element as well as the root element
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • XPATH - Scope of BPM container objects

    Hi,
    I have a question.
    When we declare container objects in BPM, the scope is mentioned as "Process".
    Does this mean that I can use any container objects declared within the process anywhere.
    What I am trying to do is, after a SYNC step, I have a ASYNC step. I have to use the response from the SYNC step in the ASYNC step.
    The problem is that the interface of SYNC's response differs from ASYNC's request.
    So I was wondering if I could mention the XPATH of SYNC's response while doing the receiver determination for ASYNC.
    I tried and it does not work. But technically I assume it has to work.
    Could someone point out where I am going wrong ( My understanding / Steps that I am following ).
    Thank you team.

    When you do the mapping outside of BPM (which is recommended anyway)
    then you send the sync response directly as async request and do receiver det. and mapping. to the new structure.
    when you do mapping and receiver det. inside BPM, you should be able to access all container elements, but I do not have experience with this.

  • Poor performance when xmlquery contains attribute matching XPATH

    We send a select xmlquery to Oracle 11g database, if the query contains an XPATH that has an attribute name test in it, the performance is significantly worse than if indexing is used. Here are the two queries:
    1)
    select xmlquery('declare default element namespace "namespace"; for $e at $pos in $c/services/service let $result := if ($pos >= 2) then "|||||ERROR|||||" else $e return $result' passing document as "c" RETURNING CONTENT).getStringVal(), "LASTUPDATE" from services where id = :1
    2)
    select xmlquery('declare default element namespace "namespace"; for $e at $pos in $c/services/service[1] let $result := if ($pos >= 2) then "|||||ERROR|||||" else $e return $result' passing document as "c" RETURNING CONTENT).getStringVal(), "LASTUPDATE" from services where id = :1
    The only difference is the two XPATHS:
    1)$c/services/service
    2)$c/services/service[1]
    The second query performs 7X to 10X better than the first. More specifically, the Oracle DB CPU will reach 80-100% with only 40 tps of the first query but the second could hit 500 tps.
    We would expect the first to perform slightly worse than the second, because Oracle would need to compare the uri values in the doc to the query. But, the documents being searched only contain one service/@uri.
    Does anyone know why the performance is so bad with the first query? Is there anything we can do to tune the DB to help in this area. We need to be able to do the first query but the current CPU utilization is extremely too much.

    sorry, number 1 should be $services/service(@uri="test"). That should be [ instead of (, the forum wasn't displaying it correctly above.  It should be that way in the query as well.
    Edited by: user6668496 on Mar 10, 2009 1:50 PM

  • Xpath Debatching in Orchestration -The part 'part' of message 'Message_In_Copy' contained a null value at the end of the construct block

    Hi ,
    Facing strange issue in Xpath debatching in Orchestration.
    Getting following error in construct shape:
    The part 'part' of message 'Message_In_Copy' contained a null value at the end of the construct block
    Code inside the construct block:
    sXpath = System.String.Format("/*[local-name()='Customers' and namespace-uri()='http://Debatch.Customer']/*[local-name()='Customer' and namespace-uri()='http://Debatch.Customer' and position()={0}]", nLoopCount);
    System.Diagnostics.Debug.WriteLine(sXpath);
    Message_In_Copy= xpath(Message_In, sXpath);
    Schema used:
    <?xml version="1.0" encoding="utf-16"?>
    <xs:schema xmlns="http://Debatch.Customer" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://Debatch.Customer" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Customers">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" maxOccurs="unbounded" name="Customer">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="name" type="xs:string" />
    <xs:element name="id" type="xs:string" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    Can anyone help me out ? to identify the root cause for above issue.
    Thanks,
    Kind Regards,
    girsh
    girishkumar.a

    I agree with Shankycheil here, querying XPath will return XMLNode and thus can't be assigned to XMLNode.
    But for debatching in Orchestration using Xpath is not a very good idea. 
    Because using XPATH loads the complete message in memory(XML Structure) and then performs processing.
    This approach is always prone to throwing Out of Memory exception and low in performance also.
    Therefore I would suggest you to perform debatching by calling XML Disassembler(XMLReceive) pipeline.
    As pipeline works with Stream it will have better performance and you will also get complete control over the messages.
    Refer the below samples for debatching using XML Receive pipeline within Orchestration.
    Comparrison between XPATH and ReceivePipeline for Debatching:-
    De-batching within an orchestration using XPath or calling a pipeline
    Debatching within Orchestration using Pipeline-
    http://tech-findings.blogspot.in/2013/07/debatchingsplitting-xml-message-in.html 
    https://jeremyronk.wordpress.com/2011/10/03/how-to-debatch-into-an-orchestration-with-a-pipeline/
    Thanks,
    Prashant
    Please mark this post accordingly if it answers your query or is helpful.

  • Xpath expression substring or contains

    Hi ,
    I have this inbound source message
    <?xml version="1.0" encoding="UTF-8" ?>
    - <rfc:Z_RFC xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
    - <TO_DATA>
    - <item>
      <LINE>000012E3 ABCD 3I 20070911164941</LINE>
      </item>
      </TO_DATA>
      </rfc:Z_RFC>
    and two inbound interfaces
    condition is , if "ABCD" exists in the LINE field(type string) then the corresponding Interface mapping should execute.
    I know the exact location of "ABCD occurence so I can use either contains or substring functions.
    I tried /P1:Z_RFC/TO_DATA/item[substring(LINE,X,Y)="ABCD"] EX no right operand
    /P1:Z_RFC/TO_DATA/item[substring(LINE,X,Y)]= "ABCD"  with right operand
    substring((/P1:Z_RFC/TO_DATA/item/LINE),X,Y) = "ABCD"
    similarly I tried around with <b>"contains"</b> function too.
    but not able to apply exactly, I tried with different options looking at different blogs in SDN.
    so how should be the Xpath expression ?
    thank you.
    Babu

    yes,
    I have two different interface mappings in interface determination.  
    I have same sender RFC interface(outbound) and two different target interfaces  and so why I have two different interface mapping,MMs.
    sender and reciever systems are same in both cases.
    .................condition1--interface mapping1--
    sender -
    |--                                                                |--
    Receiver
    .................condition2--interface mapping2--
    >>>two dfferent interfaces one when the condition satisfies and other when the condition doens'tmacth...
    I know why you are asking this,if we have one interface map and two target interfaces then we need to go for enhanced interface determination.
    and need not to be just "substring" or "contains" function ,just any function will do.
    so any suggestion about the above scenario in ASCII diagram?
    thank you.
    Babu

  • Customised xpath expression for does not contain

    Hi folks,
    Is there a customised symbol for xpath expression for "does not contain" . cant seem to find it in the xpath operators.
    Thanks
    Pratichi

    Hi,
    Refer the below link:
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/44/15981541f7648ee10000000a1553f7/content.htm
    -Supriya.

  • XPATH Predicate for container variable of simple type in BPM

    Hi Experts,
    I have read various threads and blogs with this topic and as I couldn't get a clear view, hence I am raising it here. In my BPM, I am collecting idocs by means of a finite loop. I have used a receive step, container step(to append the idocs) and another container(to increment the counter_variable) in a loop. I want to run the loop for the condition: counter_variable<=3 whereas 'counter_variable' is a container variable of 'simple XSD type(XSD: integer)'.
    All the blogs and threads  have demonstrated like how to use the EX operator with container variable of type 'Abstract interface'. But how can i incorporate the above scenario for a container variable of simple xsd type ? Please share your ideas.
    Regards,
    Laawanya

    so this is what you need to do,
    1. in your loop have a container operation that will increment your simple integer variable each time a message come in.
    2. for your loop the condition will be, left operand (simple integer variable) /= (not equal) 3 (Constant)
    Ref: SAP BASIS (SWCV) -> http://sap.com/xi/XI/System/Patterns -> Integration Process -> BpmPatternCollectPayload
    the only difference here will be the loop condition to be altered as i have mentioned above.

  • Problem using views containing xpath expressions with Oracle Forms

    Mark,
    Nice to see you back on the forum answering questions.
    This example is based on the standard purchaseorder schema.
    i registered the schema, created a relational table and then created
    a view using xpath.everything works well and i am able to select the data
    using sql*plus. Now this views is like any other view, when i describe the
    view, i can see the all the data types are valid for the columns and also the lengths.
    Now when i try to base a data block in oracle forms using this view, i get error
    "ORA-24324 - service handle not initialized."
    Whereas if i create another view on top of the first view and then base the data block on this view, it works for me. i described the second view from sql*plus and everything seems to be same for me.
    this is the same behaviour from database 9i r2 and it exists in 10g r1 also.
    Any hints as what might be the problem or you would like me to file a tar for this.
    create or replace view purchaseorder_header_xml
    as
    select  id
           ,extractvalue(xml_data, '/PurchaseOrder/Reference') reference
           ,extractvalue(xml_data, '/PurchaseOrder/Requestor') requestor
           ,extractvalue(xml_data, '/PurchaseOrder/User')      po_user
           ,extractvalue(xml_data, '/PurchaseOrder/CostCenter') costcenter
           ,extractvalue(xml_data, '/PurchaseOrder/SpecialInstructions') spl_instructions
    from tab_xmldata
    create or replace view purchaseorder_header
    as select * from purchaseorder_header_xml
    /Raghu

    Not used Forms for years. However I suspect that Forms is trying to poke around behind the view and not understanding what it sees. I expect you'll need to open a Forms Tar to get to the bottom of this. It also appears that you a workaround which is to create a view on the view by the sound of it..

Maybe you are looking for

  • Quality of generated image

    I am creating .gif files using the ACME api and the standard Java 1.41 api. The purpose is to generate images containing text to publish on a website. This all works fine, but when I create images with fontsize 12 or lower, the quality becomes quite

  • Adobe Air not working on Mac since OS X Yosemite upgrade

    I upgraded to Mac OS X Yosemite this week and Adobe Air no longer works.  I tried to uninstall and re-install Adobe Air and it still won't work.  I keep getting a message that the application is damaged.  Any suggestions to fix this issues?  I have s

  • Microsoft.Exchange.Search.ExSearch.exe has CPU pinned for 8 hours

    I made some changes to my Exchange server today allowing for larger attachments. I changed the limits on the transport settings and all of the send and receive connectors. I also updated the web.config for OWA to allow up to 50MB. This part went fine

  • TMS_CFG_CREATE_A2D_REQUEST

    Hello friends,          I am trying to add my BW production system(BWP) in the domain.My domain controller is R3D.I mounted trans aswell.By that time i am getting below error please help me on this. Diagnosis An RFC error occurred in the TMS communic

  • Canon Mark III Compatibility

    I'll be receiving the Canon 1D Mark III this coming Monday. Is LR 1.0 ready to process the Mark III files or will I need an upgrade? I've already installed Camera Raw 4.1 for Photoshop, does that have any impact on LR? Thanks, David