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,
MarkCan you try this?
-
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?
BrianThis 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.
nullnever 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,
JonathanHi,
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/A099C37789AACEE386256E35007338E6?OpenDocument
http://digital.ni.com/public.nsf/allkb/3A7F1402B2A1CE7686256E93007E66C0?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 withThis 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 KBError 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.
-
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 Tysonselect 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
-
WARNING - QUANTUM TV - VERIZON SCAM
So I upgrade my service to Quantum TV - based on the offer details Package for 4 TV's was $34.99 with $22.00 for enhanced services....... I had prior 1 HD DVR ($19.99) and 4 normal set-top boxes ($6.99ea)...... so was paying $$47.95 and now only ne
-
I successfully downloaded iTunes. It opened several times, now it shuts down everytime with Data Execution Prevention message. Please help
-
How can I burn a dvd now that I can't download premiere pro cs6 with Encore?
How can I burn a dvd now that I can't download premiere pro cs6 with Encore?
-
Differences between sql id and hash value
Hello All, I have read the following from Tom's web site. Ask Tom "What is a child cursor" Dear Tom, Appreicate your services to the oracle community. What is the column combinations which is leading to SQL_ID. is SQL_ID = hash_value + add
-
Rollover Tool Tips are NOT intuitive for error messages
Just a note for the Adobe guys here: I've run into 2-3 occasions so far this morning that I was stymied by seemingly unresponsive DPS apps/services, only to discover the error message was hidden in a tooltip for the field. This happened both on the F