Skip to main content


Prepare a request within a <call> element.


<call name="Call" target="MyApp.MyOperation" async="1">
   <request type="MyApp.Request">
   <response type="MyApp.Response">

Attributes and Elements

type attribute

Required. The name of the request message class.

name attribute

Optional. The name of the <request> element. Specify a string of up 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" />
  <response type="MyApp.SalaryResponse">
    <assign property="context.Salary" value="callresponse.Salary" />

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>.

See Also

FeedbackOpens in a new tab