<response>
構文
<call name="Call" target="MyApp.MyOperation" async="1">
<request type="MyApp.Request">
...
</request>
<response type="MyApp.Response">
...
</response>
</call>
詳細
属性または要素 | 説明 | 値 |
---|---|---|
type 属性 | 必須項目。応答メッセージ・クラスの名前。 | 1 文字以上の文字列。 |
name 属性 | オプション。<response> 要素の名前。 | 0 ~ 255 文字の文字列。 |
その他の要素 | オプション。<response> には、<assign>、<empty>、<milestone>、および <trace> をゼロ個以上、自由に組み合わせて使用できます。 |
説明
<response> 要素は、<call> のオプションの子要素です。<call> コンテキスト内で、<response> 要素は、呼び出しから返される応答のタイプ (クラス名) を指定します。<response> 要素には、1 つ以上の <assign> 要素を含めることもできます。以下に例を示します。
<call name="FindSalary" target="MyApp.PayrollApp" async="1">
<request type="MyApp.SalaryRequest">
<assign property="callrequest.Name" value="request.Name" />
<assign property="callrequest.SSN" value="request.SSN" />
</request>
<response type="MyApp.SalaryResponse">
<assign property="context.Salary" value="callresponse.Salary" />
</response>
</call>
呼び出し元のビジネス・プロセスに応答が返されると、<response> 要素で指定されたメッセージ・タイプからの出力パラメータが、ビジネス・プロセスの実行コンテキスト内の callresponse オブジェクトのプロパティになります。callresponse は <response> 要素内でのみ有効です。したがって、これらの値を保持するには、<response> 要素内で <assign> 要素を使用して、ビジネス・プロセスの実行コンテキストのより永続的なオブジェクト (通常は context または response) のプロパティに、callresponse の値を割り当てる必要があります。
詳細は、<call> および <assign> の説明を参照してください。
<request> 要素はすべての <call> 内に配置する必要がありますが、<response> は必須ではありません。<call> 要素内で <response> 要素を使用しない場合は、<request> タイプが応答を返すように指定されている場合でも、その <call> からは応答が返されません。<request> が非同期の場合、<response> 要素の本体に含まれる <assign> 要素は、呼び出しの応答を受け取った後にのみ実行されます。これがいつ実行されるかはわかりません。そのためビジネス・プロセスでは、通常、<sync> 要素を使用して非同期応答を待ちます。
<sync> 要素で指定されたタイムアウト時間内に応答がなかった場合、対応する <response> ブロックで定義された割り当ては実行されません。応答自体には、"Discarded" ステータスが設定されます。