Assign activities

There are three different assign activites. Assign in an input message, assign in an output message and independant assign that is out of messages.
Here is an example of part of bpml code where we can see assign activities in all 3 different areas:
<operation name="HTTP Client End Session Service">
<participant name="HTTPClientEndSession"/>
<output message="HTTPClientEndSessionServiceTypeInputMessage">
<assign to="." from="*"></assign>
<assign to="SessionToken" from="SessionToken/text()"></assign>
</output>
<input message="inmsg">
<assign to="." from="*"></assign>
</input>
</operation>
<assign to="variable1">value1</assign>
Assign in an Input Message
Assign defined inside of input message takes value(s)/node(s) from incoming message (message from service) and put the result into Process Data. Source for assign in an input message is message that is the result of service and target is Process Data.
<input message="inmsg">
<assign to="." from="*"></assign>
</input>
Assign in an Output Message
Assign defined inside of output message takes value(s)/node(s) from Process Data and place it into outgoing message (message to service). Source for assign in an output message is Process Data and target is XML message that will be sent to a service.
<output message="HTTPClientEndSessionServiceTypeInputMessage">
<assign to="." from="*"></assign>
<assign to="SessionToken" from="SessionToken/text()"></assign>
</output>
Independant Assign – Assign element
For assign activity defined outside of messages, source from which the value(s)/node(s) will be taken is Process Data and place where it will be put is also Process Data. So the source and target destination for independant assign is Process Data.
<assign to="variable1">value1</assign>

