要素ベース変数およびメッセージ・タイプベース変数内のフィールドへのアクセス方法
次の例では、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"/>