2

発生した障害をキャッチして変数に割り当てる BPEL プロセスがあります。

<assign name="AssignFault">
  <copy>
    <from>ora:getFaultAsString()</from>
    <to>$myVariable</to>
  </copy>
</assign>

これにより、タグを含む XML メッセージ全体が変数に入れられます。

com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{
summary=<summary>oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): myServer/myService</summary>
,detail=<detail>Unable to access the following endpoint(s): myServer/myService</detail>
,code=<code>404</code>}

個々の要素の値、つまり「summary」、「detail」、および「code」タグに含まれるテキスト値を取得する方法はありますか? それぞれのテキストを個々の変数に割り当てて、それらを使ってさまざまなことをしたいと思います。

ご協力いただきありがとうございます。

4

1 に答える 1

6

を使用して、障害メッセージから個々の要素を分割します

<from>substring-before(substring-after(ora:getFaultAsString(), "&lt;code&gt;"), "&lt;/code&gt;")</from>
<from>substring-before(substring-after(ora:getFaultAsString(), "&lt;summary&gt;"), "&lt;/summary&gt;")</from>
<from>substring-before(substring-after(ora:getFaultAsString(), "&lt;detail&gt;"), "&lt;/detail&gt;")</from>

...そして、concat 関数を使用して非 XML に再アセンブルします。

于 2013-06-10T21:56:53.690 に答える