0

私の BPEL では、catch ブロックで障害をキャッチしました。catch ブロック内には、入力ペイロード (データ) を fault 変数にマップし、jms キューに入力する割り当てアクティビティがあります。その jms キューから、もう 1 つのサービスがデータを取得し、エラー メールを送信します。エラーメールで、ペイロードを次のように取得しています。

<sal:salesUser xmlns:sal="http://www.mycompany.com/schemas/SalesUserMessage"> <!--Optional: -->
<sal1:userID xmlns:sal1="http://www.mycompany.com/schemas/SalesUserObject">123ABC</sal1:userID>
</sal:salesUser>

しかし、フロー トレースを確認すると、ペイロードは次のようになっていました。メールに URL が含まれていない場合は、以下のデータを取得する必要があると思います。

<sal:syncSalesUser>
<!-- Optional:
                 -->
<sal1:userID>123ABC</sal1:userID>
<!-- Optional:
                 -->
</sal:syncSalesUser>

メールの xml タグ内の URL を取得している理由を教えてください。

私のキャッチブラックの割り当てセクションをPFB:

<catch faultName="bpelx:remoteFault" faultVariable="RuntimeFaultVar">
  <sequence name="seq_RemoteFault">
    <assign name="assign_RemotefaultMessage">
      <copy>
        <from expression="oraext:get-content-as-string(bpws:getVariableData('receiveInput_InVar','userNotify','/ns22:userNotify/ns22:payload/ns22:user'))"/>
        <to variable="FaultMessage" part="payload"
            query="/ns7:FaultSchema/ns7:FaultMessage/ns7:Payload"/>
      </copy>
    </assign>
    <invoke name="publish_RemoteFaultToQueue"
            partnerLink="publish_ErrorToQueue"
            portType="ns3:Produce_Message_ptt" operation="Produce_Message"
            inputVariable="invoke_jms_publish_ErrorToQueue"/>
    <terminate name="Terminate"/>
  </sequence>

前もって感謝します。

4

1 に答える 1