Bpel-manipulating-xml-data

提供:Dev Guides
移動先:案内検索

BPEL-XMLデータの操作

XPathは主に、BPELプロセスでXMLを操作するために使用されます。 XMLの操作に使用できる貴重なXpath関数がいくつかあります。 以下の機能を見てみましょう。

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()

文字列()

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>

-XMLドキュメントの変換には、いくつかのXSLT関数が使用されました。