BPEL - 操作 XML 数据
XPath 主要用于在 BPEL 流程中操作 XML。有一些有价值的 Xpath 函数可用于操作 XML。让我们看看下面的函数。
bpel:getVaribleData(varName, partName, xpathStr)
这可用于使用 XPath 表达式从变量中提取一组元素。
<bpel:copy> <bpel:from> <![CDATA[count(bpel:getVariableData(‘$Variable','$partName')/ns:return)]]> </bpel:from> <bpel:to variable = "itemNumber"> </bpel:to> </bpel:copy>
bpel:getLinkStatus()
这可用于评估并返回布尔值,以表明特定链接是活动的还是非活动的。:getVariableProperty(string, string)
这在提取变量中的属性时很有用。:doXSLTTransform()
这可执行 XSLT 转换。string ()
这可用于从元素中提取文本内容,而不是使用 /text ()。string-length()
此函数用于计算字符串的长度。但 != 运算符似乎不适用于此函数的输出。因此,您可以使用 > 或 <,而使用 ! = 。布尔值
您可以使用 XPath 布尔函数分配布尔值。
<assign> <!-- copy from boolean expression function to the variable --> <copy> <from expression = "true()"/> <to variable = "output" part = "payload" query="/result/approved"/> </copy> </assign>
分配日期或时间
您可以分别使用 Oracle BPEL XPath 函数 getCurrentDate、getCurrentTime 或 getCurrentDateTime 分配日期或时间字段的当前值。
<!-- execute the XPath extension function getCurrentDate() --> <assign> <copy> <from expression = "xpath20:getCurrentDate()"/> <to variable = "output" part = "payload" query = "/invoice/invoiceDate"/> </copy> </assign>
连接字符串
您可以先执行字符串操作,例如连接多个字符串,而不是将一个字符串变量(或变量部分或字段)的值复制到另一个字符串变量。
<assign> <!-- copy from XPath expression to the variable --> <copy> <from expression = "concat('Hello ', bpws:getVariableData('input', 'payload', '/p:name'))"/> <to variable = "output" part = "payload" query = "/p:result/p:message"/> </copy> </assign>
分配字符串文字
您可以将字符串文字分配给 BPEL 中的变量。
<assign> <!-- copy from string expression to the variable --> <copy> <from expression = "'GE'"/> <to variable = "output" part = "payload" query = "/p:result/p:symbol"/> </copy> </assign>
分配数值
您可以在 XPath 表达式中分配数值。
<assign> <!-- copy from integer expression to the variable --> <copy> <from expression = "100"/> <to variable = "output" part = "payload" query = "/p:result/p:quantity"/> </copy> </assign>
注意 − 使用了一些 XSLT 函数来转换 XML 文档。