Node-set Functions

Hi,
I want to get all the elements in a sequence from my xml input. I do this. (FechasPago is the root node, and fechaPago represent the elements in the sequence)
1- get the number of elements in the sequence.
last(bpws:getVariableData('inputVariable',
'payload','/ns1:Solicitud/ns1:FechasPago
/ns1:fechaPago'))
2- use a while and an i variable to go throw the sequence.
while condition: bpws:getVariableData('n_pagos') = bpws:getVariableData ('i')
3- then I use current to get the current element.
current(bpws:getVariableData('inputVariable','payload','/ns1:Solicitud/ns1:FechasPago'))
4-increment i
bpws:getVariableData('i') + 1
please tell what i´m doing wrong.
source bpel code:
<while name="While_1" condition="bpws:getVariableData('n_pagos') = bpws:getVariableData
('i')">
<sequence name="Sequence_4">
<wait name="eperar_fecha_pago" for="current(bpws:getVariableData('inputVariable','payload','/ns1:Solicitud/ns1:FechasPago'))"/>
<assign name="sum_i_1">
<copy>
<from expression="bpws:getVariableData('i') + 1"/>
<to variable="i"/>
</copy>
</assign>
</sequence>

?

Similar Messages

  • XPATH sum(node-set) function using PLSQL

    Hi,
    I'm using the XMLDOM and XSLPROCESSOR PLSQL packages to parse my XML and need to sum a Node element. I was wondering how can I achieve the following XSL command within PLSQL ??
    <xsl:value-of select="sum(<some nodeset>)"/>
    Can I use the XSLPROCESSOR.valueOf function to get the sum ?? Or is there another way ??
    Regards,
    Mark

    Can you try this?

  • Help Node-set Functions

    Hi,
    I want to get all the elements in a sequence from my xml input. I do this. (FechasPago is the root node, and fechaPago represent the elements in the sequence)
    1- get the number of elements in the sequence.
    last(bpws:getVariableData('inputVariable',
    'payload','/ns1:Solicitud/ns1:FechasPago
    /ns1:fechaPago'))
    2- use a while and an i variable to go throw the sequence.
    while condition: bpws:getVariableData('n_pagos') = bpws:getVariableData ('i')
    3- then I use current to get the current element.
    current(bpws:getVariableData('inputVariable','payload','/ns1:Solicitud/ns1:FechasPago'))
    4-increment i
    bpws:getVariableData('i') + 1
    please tell what i´m doing wrong.
    source bpel code:
    <while name="While_1" condition="bpws:getVariableData('n_pagos') = bpws:getVariableData
    ('i')">
    <sequence name="Sequence_4">
    <wait name="eperar_fecha_pago" for="current(bpws:getVariableData('inputVariable','payload','/ns1:Solicitud/ns1:FechasPago'))"/>
    <assign name="sum_i_1">
    <copy>
    <from expression="bpws:getVariableData('i') + 1"/>
    <to variable="i"/>
    </copy>
    </assign>
    </sequence>
    </while>

    I guess your condition for the while loop is wrong. You may need to change it to,
    <while name="While_1" condition="bpws:getVariableData('n_pagos') > bpws:getVariableData
    ('i')">. Pl confirm.
    Ramesh

  • Document(object, node-set)

    Using xsql 1.0.4.1, I'm having some trouble using the document(object, node-set) function defined in the XSLT 1.0 recommendation, sect 12.1:
    http://www.w3.org/TR/xslt#function-document
    I have a tag in my source xml document which contains a reference to another xml document. I want to construct an XPath expression for this other xml document. The path to the other xml document is specified relative to the source document.
    I'm doing something like this:
    Source Document:
    <blah>
    <some-tag redirect="answer.xml" />
    </blah>XSL:
    <xsl:template match="blah/some-tag">
    <xsl:variable name="redir" select="document(@redirect, / )" />
    <xsl:apply-templates select="$redir//somepath" />
    </xsl:template>
    ...However, Oracle XSLT always comes back with the following error:
    XSL-1013: Error in expression 'document(@redirect, / )'.I also get this error if I try
    document(@redirect, document(''))which is given as an example on pg 446 of Steve's book (but not what I want, since it resolves relative to the stylesheet).
    document(@redirect)works fine, but again is not what I want.
    Am I doing something wrong?
    Brian

    This is Oracle Bug# 1722555, hopefully which will be fixed in the 9.0.1.0.0 release. Currently the two-argument version of the document() function is not recognized properly.

  • Xml result fragment to node-set

    I wrote a stylesheet that transforms data into a html table and dedupes all consecutive identical elements.
    The consecutive duplicates obviously depend on the sorting of the data, which is also a variable of the stylesheet.
    I ended up using the msxml:node-set function that allowed me to convert a sorted result fragment (in a variable) back into a node-set. Is there anything equivalent in oracle's parser? or a workarround to pre-sort the data?
    I would like to avoid multi-step transforms if possible...
    thanks for any help.
    null

    never mind... found ora:node-set()
    must have been blind I guess....
    null

  • Casting a result-tree-fragment into a node set

    Hi,
    Is there anything in BI Publisher that converts a result-tree-fragment into a node set, which resembles the node-set function in as in the following link? http://www.exslt.org/exsl/functions/node-set/
    Thanks,
    Jonathan

    Hi,
    Seems no one understands my need in my post yet. Let me elaborate my requirement a little more...
    Actually in my case, I used a variable to refer to a node set (in my actual implementation the conditions in the bracket [] are much much more complicated ), e.g.
    <?variable:rows;”/ROWSET/ROW[SALARY>1000]”?>
    And since the report involves a complex layout printed on pre-print forms which needs me to put the fields very precisely. I cannot use the For Each method but to extract the rows one by one, likes the following:
    <?$rows[1]/ENAME?>
    <?$rows[2]/ENAME?>
    and put them on various position on the RTF Template.
    So far so good, until I realized that the $rows node set is needed to be sorted according to ENAME.
    Currently I can build a sorted list from $rows into another variable $sorted_rows as follows:
    <xsl:variable name="sorted_rows"><xsl:for-each select="$rows"><xsl:sort select="ENAME"/><xsl:copy-of select="."/></xsl:for-each></xsl:variable>
    But in $sorted_rows, it contains only one item which is the xml fragment of the sorted data, but not a node set.
    So my question is, is there any way to convert this xml fragment into a node set so I can use the following to extract the fields?
    <?$sorted_rows[1]/ENAME?>
    <?$sorted_rows[2]/ENAME?>
    Hope anyone can share with my some solution to this.
    Thanks in advance,
    Jonathan

  • Using msxsl:node-set as a function to a field in InfoPath 2010

    I have been trying to query a node set (from a web service - managed metadata web service infact) without success.  I received a GetTermSetsResult that I am trying to parse as an xml using msxsl:node-set().    Currently I am just throwing
    up messages about the expression result in a form load rule.   I just get empty node sets.  Note that I have even tried querying the xml string directly like in the examples below but the behavior is always the same.
    some examples of what I have tried that give empty nodesets:
     msxsl:node-set('<Container><TermStore>...'))/Container/TermStore
     msxsl:node-set('<Container><TermStore>...'))/Container
     msxsl:node-set('<Container><TermStore>...'))/*
    These give the following results:
     count(msxsl:node-set('<Container><TermStore>...')))  ---> reports "1"
    count(msxsl:node-set('<test>...</test><test>...</test>')))  ---> reports "1" when it should say "2"
    msxsl:node-set('<Container><TermStore>...'))/node()   ---> returns what looks like the entire xml document
    Ultimately I want to populate a listbox with managed metadata (taxonomy/folksonomy) terms in a "codeless" way.  I know it is a no brainer to use code behind but where I work they like to see minimum code.

    Hello mohrr,
    The PCIe-6321 doesn't have internal triggers you you have to export the signals to a PFI line ant the use the signal as external trigger.
    If you are not very familiar about how to do that, here you can find two documents that can give you an idea about how does it work.
    http://digital.ni.com/public.nsf/allkb/A099C37789A​ACEE386256E35007338E6?OpenDocument
    http://digital.ni.com/public.nsf/allkb/3A7F1402B2A​1CE7686256E93007E66C0?OpenDocument
    Mr.O
    Applications Engineer
    National Instruments

  • How to use the set functions effectively in webi ,please let me know with detail

    how to use the set functions effectively in webi ,please let me know with detail

    Hi,
    we use use set functions on heirarchies with aggregate functions mostly .
    If you include member_set, Min returns the minimum value of the aggregated data for all members in the member set.
    Member_set can include multiple sets separated by semicolons (;).
    The list of member sets must be enclosed in {}.
    If the member set expression does not specify a precise member or node, the hierarchy referenced must be present in the table, then the member set expression references the current member in the hierarchy in the table. If the hierarchy is not in the table, the function returns the message #MULTIVALUE.
    Eg .
    1)     Ancestor
    =Sum([YTD] ; {Ancestor([Test Hierarchy];2)})
    2)     IsLeaf
    =[Test Hierarchy].IsLeaf
    You can use this function when you want to show your Measure only at lower level .
    3)     .Depth
    =[Test Hierarchy].Depth
    This is also function used with hierarchy to find Level of Members .
    Follow this link for PDF reference .
    Page 147
    https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CDIQFjAB&url=https%3A%2F%2Fhelp.sap.com%2Fbusinessobject%2Fproduct_guides%2Fboexir4%2Fen%2Fxi4sp5_ffc_en.pdf&ei=nBAUU-iUM4WWrAeMuoCoDg&usg=AFQjCNHakXsEjd_yUk2y3lVdibf3PXpEOA&bvm=bv.61965928,d.bmk
    search on SCN this question was discussed before also one those links .
    http://scn.sap.com/thread/3183380
    Hope this will help you .

  • Document() not returning a useable node set?

    If I open another document during a transform, I can dump out the file using
    xsl:message, but can't match any tags in the loaded file. If I replace the Sun
    implementation with the apache implementation of xalan with -Xbootclasspath/p,
    the code runs fine.
    Example fragment:
    <xsl:variable name="user_type">
    <xsl:for-each select="//include/@file_name">
    <xsl:variable name="xmlFile">
    <xsl:value-of select="$xml_dir"/>/<xsl:value-of select="."/>
    </xsl:variable>
    <xsl:for-each select="document($xmlFile)" >
    <xsl:value-of select="key('type_def_key',$datatype)//datatype" />
    </xsl:for-each>
    </xsl:for-each>
    </xsl:variable>
    <xsl:message>
    User type <xsl:value-of select="$user_type" /> for <xsl:value-of select="$datatype" />
    </xsl:message>
    I believe the problem is with the document function not returning a useable
    node set , or all of the matches are going back to the original document rather
    than the one that was just open. With in the context of the new document
    select="." appears to work, but nothing else seems to.
    Output using Sun's xml implementation (JDK 5.0, 6.0 snapshot)
    User type for Gms_User_Id
    Output using the Apache xml implmentation (Xalan 2.6)
    User type numeric for Gms_User_Id
    The code and xml files are the same in both cases, just changed the runtime
    class path with

    This is behaving as designed.
    Configuring a view object so expect certain entity subtypes does not automatically restrict the rows it queries. If the view object's query returns any row that has a discriminator value that does not match the design-time configured entity subtypes expected, it is not added to the result rowset.
    If you have limited the number of fetched rows to 1, and if that row had a discriminator attribute value that does not match that/those of the expected entity subtypes, then the single row returned by the query will not be added to the result rowset. The result is that the row set has zero rows in it.

  • Error in Invoke Node-Set Control Value

    I've a trouble with a VI: the error cluster warns ERR(7) when I try to pass the output of the "FLATTEN TO STRING" function to an Invoke Node-Set Control Value.
    In the file attachments there's the upmentioned VI. Thank you
    Attachments:
    Cambia_i_valori_di_default.vi ‏147 KB

    Error 7 is file not found. I would think that this error is generated by one of your Open VI References and not any of the Set Control Values. Check your paths and verify that they're correct. Also, you haven't included two subVIs or the VIs that you're trying to modify so it's impossible for anyone to try and recreate your problem. Save them into an LLB and attach that if you still have problems and want some help.

  • Node Set Expressions

    Does Oracle implement node set expressions like count( node set ) in it's xpath syntax? If so, can you give me an example indicating how the count( node set ) expression would be used? This function would be extremely useful when iterating through a node set.
    Kevin Tyson

    select count(*) from purchaseorder
    where existsNode(object_value,'/PurchaseOrder[User="SBELL"]') = 1
    /

  • Converting xmlstring into a node-set

    Hi,
    Is there any xsl function which could take an xml string and convert into a node-set?
    Or could any function be written to achieve this kind of result?
    Thanks.

    Hi,
    Seems no one understands my need in my post yet. Let me elaborate my requirement a little more...
    Actually in my case, I used a variable to refer to a node set (in my actual implementation the conditions in the bracket [] are much much more complicated ), e.g.
    <?variable:rows;”/ROWSET/ROW[SALARY>1000]”?>
    And since the report involves a complex layout printed on pre-print forms which needs me to put the fields very precisely. I cannot use the For Each method but to extract the rows one by one, likes the following:
    <?$rows[1]/ENAME?>
    <?$rows[2]/ENAME?>
    and put them on various position on the RTF Template.
    So far so good, until I realized that the $rows node set is needed to be sorted according to ENAME.
    Currently I can build a sorted list from $rows into another variable $sorted_rows as follows:
    <xsl:variable name="sorted_rows"><xsl:for-each select="$rows"><xsl:sort select="ENAME"/><xsl:copy-of select="."/></xsl:for-each></xsl:variable>
    But in $sorted_rows, it contains only one item which is the xml fragment of the sorted data, but not a node set.
    So my question is, is there any way to convert this xml fragment into a node set so I can use the following to extract the fields?
    <?$sorted_rows[1]/ENAME?>
    <?$sorted_rows[2]/ENAME?>
    Hope anyone can share with my some solution to this.
    Thanks in advance,
    Jonathan

  • How to use union statement with declare & set function?

    Hi Experts,
            i  have small query about how to use union statement with declare & set function?
    Example as below :
    DECLARE @name AS date
    Declare @name2  AS date
    /* SELECT FROM [2013].[dbo].[OINV] T0 */
    /* WHERE */
    SET @name = /* T0.DocDate */ '[%1]'
    SET @name2 = /* T0.DocDate */ '[%2]'
    select  '2013',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2013.dbo.orct t1
    inner join 2013.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2013.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2013.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2013].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between [%1] and [%2]
    Union
    /* SELECT FROM [2014].[dbo].[OINV] T0 */
    /* WHERE */
    SET @name = /* T0.DocDate */ '[%1]'
    SET @name2 = /* T0.DocDate */ '[%2]'
    select  '2014',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2014.dbo.orct t1
    inner join 2014.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2014.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2014.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2014].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between [%1] and [%2]

    You have to create stored procedure in SQL only .
    Like u must have create for Crystal .
    You can execute procedure in query manager but you have to enter parameter manually..
    example
    Exec @Test '20140101' '20140501'
    Every time user has to enter it manually in yyyymmdd format in case of date parameters.
    Example
    Create Proc [@Test]
    as begin
    DECLARE @name AS date
    Declare @name2  AS date
    /* SELECT FROM [2013].[dbo].[OINV] T0 */
    /* WHERE */
    select  '2013',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2013.dbo.orct t1
    inner join 2013.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2013.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2013.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2013].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between @Name and @Name2
    Union
    /* SELECT FROM [2014].[dbo].[OINV] T0 */
    /* WHERE */
    select  '2014',t5.U_salmannm,t1.CardName,t2.sumapplied as CollectionAmount,t2.DcntSum ,t3.DocTotal as InvoiceTotal,
    datediff(dd,t3.DocDate,t1.Docdate) as Days
    from 2014.dbo.orct t1
    inner join 2014.dbo.RCT2 t2 on t1.DocNum = t2.DocNum
    left join 2014.dbo.oinv t3 on
    t3.docentry = t2.baseAbs
    inner join 2014.dbo.ocrd t4 on t1.Cardcode = t4.CardCode
    inner join [2014].[dbo].[@CQ_RTSM] t5 on t4.U_BeatCode = t5.U_RoutCode
    where t2.DcntSum <> 0.000000 and t3.DocDate between
    between @Name and @Name2
    end

  • GET SET function in a dynamic Class?

    Is it possible to add a GET SET function in a dynamic class, like we can add properties to a dynamic class?

    correction :
    MyObjectProxy extends ObjectProxy{
         override callProperty(
              // your dyna logic
    and expose new MyObjectProxy(dynaInstance)

  • Xslt error: the expression does not evaluate to a node-set

    hi guys - i'm really down because i cannot find / understand my xsl error and i have to finish my work very very soon
    the error message (by using xalan to create from the xml file my html output) is the following:
    xslt error: the expression does not evaluate to a node-set
    and the code fragement is:
    <xsl:template name="getNext">
    <xsl:param name="currentKnoten" />
    <xsl:for-each select="$currentKnoten"> //error is in this line
    </xsl:for-each>
    </xsl:template>please... help me....

    ok thanks!!! this saved me some time ;-)
    now i go back to the origin problem... my main idea is the following xsl code... may u can see here the problem with the node site.. but i think u need the xml file or?
    however this is my relevant xsl code:
    <xsl:template match="DATA">
              <xsl:element name="process">
                   <xsl:attribute name="name">
                        <xsl:value-of select="@name" />
                   </xsl:attribute>
                   <xsl:apply-templates select="INSTANCE"/>
              </xsl:element>
         </xsl:template>
    <xsl:template match="INSTANCE[@class='Data']">
              <xsl:element name="node">
                   <xsl:attribute name="name">
                        <xsl:value-of select="@name" />
                   </xsl:attribute>
                   <xsl:attribute name="class">
                        <xsl:value-of select="@class" />
                   </xsl:attribute>
                   <xsl:call-template name="copyAttributes" />
                   <xsl:variable name="nextNodes">
                        <xsl:value-of select="key('keyGetData', key('keyFrom', @name)/../TO/@instance)" />
                   </xsl:variable>
                   <xsl:call-template name="getNext">
                        <xsl:with-param name="currentNode" select="$nextNodes" />
                   </xsl:call-template>
              </xsl:element>
    </xsl:template>     
    <xsl:template name="getNext">
              <xsl:param name="currentNode"/>
              <xsl:for-each select="$currentNode">
                   <xsl:element name="node">
                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
                        <xsl:attribute name="class"><xsl:value-of select="@class"/></xsl:attribute>
                        <xsl:variable name="nextNodes">
                             <xsl:value-of select="key('keyGetData', key('keyFrom', @name)/../TO/@instance)"/>
                        </xsl:variable>
                        <xsl:call-template name="copyAttributes"/>
                        <xsl:call-template name="getNext">
                             <xsl:with-param name="currentNode" select="$nextNodes"/>
                        </xsl:call-template>
                   </xsl:element>
              </xsl:for-each>
         </xsl:template>
         <xsl:template name="copyAttributes">
              <xsl:for-each select="descendant::*">
                   <xsl:copy>
                        <xsl:copy-of select="@*|node()"/>
                   </xsl:copy>
              </xsl:for-each>
         </xsl:template>
         <xsl:template match="@*|node()">
              <xsl:apply-templates/>
         </xsl:template>

Maybe you are looking for