要素ベース変数およびメッセージ・タイプベース変数内のフィールドへのアクセス方法

次の例では、ssnフィールドはCreditFlowプロセスの入力メッセージから信用格付けサービスの入力メッセージのssnフィールドにコピーされます。

<assign>
   <copy>
      <from variable="input" part="payload"
         query="/tns:CreditFlowRequest/tns:ssn"/>
      <to variable="crInput" part="payload" query="/tns:ssn"/>
   </copy>
</assign>

次の例に、この割当てに必要なメッセージ・タイプベースの変数をBPELファイルで定義する方法を示します。

<variable name="input" messageType="tns:CreditFlowRequestMessage"/>
<variable name="crInput"
          messageType="services:CreditRatingServiceRequestMessage"/>

crInput変数は、信用格付けサービスへの入力メッセージとして使用されます。そのメッセージ・タイプCreditFlowRequestMessageは、次の例に示すように、CreditFlowService.wsdlファイルで定義されます。

<message name="CreditFlowRequestMessage">
<part name="payload" element="tns:CreditFlowRequest"/>
</message>

CreditFlowRequestは、ssnという名前のフィールドで定義されます。メッセージ・タイプCreditRatingServiceRequestMessageは、次の例に示すように、CreditRatingService.wsdlファイルで定義されます。

<message name="CreditRatingServiceRequestMessage">
   <part name="payload" element="tns:ssn"/>
</message>

次の例に、最初の割当て例の割当てに含まれるメッセージ・タイプベース変数をBPELファイルで定義する方法のBPEL 2.0の構文を示します。/tns:CreditFlowRequestは不要であることに注意してください。

<copy>
   <from>$input.payload/tns:ssn</from>
   <to>$crInput.payload</to>
</copy>

BPELプロセスでは、要素ベースの変数も使用できます。次の例に、BPEL 1.1で要素ベースの変数を使用する方法を示します。autoloanフィールドは融資申請プロセスの入力メッセージからWebサービスの入力メッセージのcustomerフィールドにコピーされます。

 <assign>  
      <copy>
        <from variable="input" part="payload" 
           query="/tns:invalidLoanApplication/autoloan:
            application/autoloan:customer"/>
        <to variable="customer"/>
      </copy>
</assign>

次の例に、BPEL 2.0で要素ベースの変数を使用する方法を示します。

<assign>
   <copy>
      <from>$input.payload/autoloan:application/autoloan:customer</from>
      <to>$customer</to>
   </copy>
</assign>

次の例に、割当てに必要な要素ベースの変数をBPELファイルで定義する方法を示します。

    <variable name="customer" element="tns:customerProfile"/>