<call name="Call" target="MyApp.MyOperation" async="1"> <request type="MyApp.Request"> ... </request> <response type="MyApp.Response"> ... </response> </call>
|Attribute or Element||Description||Value|
|type attribute||Required. The name of the request message class.||A string of one or more characters.|
|name attribute||Optional. The name of the <request> element.||A string of 0 to 255 characters.|
|Other elements||Optional. <request> may contain zero or more of the following elements in any combination: <assign>, <empty>, <milestone>, or <trace>.|
A <request> element is a required child element of <call>. Inside the <call> context, the <request> element specifies the type (class name) of the request to send. The <request> element can also contain one or more <assign> elements. Each of these assigns a value to a property on an object in the business process execution context. For example:
<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>
The intention of any <assign> elements found within a <request> element is usually to assign values to properties on the callrequest object. This object is the member of the business process execution context that acts as a container for the properties of the request object used for the call. However, properties on the context, request, and response objects can also be set, appended, or otherwise manipulated in an <assign> element inside a <request>.
For further discussion of the business process execution context, see the documentation for <call> and <assign>.