3.1.4.2 FORMAT_FLOW_TRANSACTION
The FORMAT_FLOW_TRANSACTION event MUST be signaled by the higher-layer business logic with the following required argument:
And one or both of the following optional arguments:
A Propagation_Token representing an existing transaction, as specified in [MS-DTCO] (section 2.2.5.4).
A CoordinationContext Element (section 2.2.3.2.1) representing the same transaction.
If the FORMAT_FLOW_TRANSACTION event is signaled, the AppClient Role MUST perform the following actions:
If only a Propagation_Token argument is provided:
Encode the Propagation_Token using base64 and create a PropagationToken Element (section 2.2.3.1.7), setting the value to the base64 encoded Propagation_Token.
Create an OleTxTransaction Element (section 2.2.3.1.9) and insert the PropagationToken Element as the only child element.<4>
Insert the OleTxTransaction Element as a SOAP header in the FlowTransaction Message.
Return the FlowTransaction Message to the higher-layer business logic.
Otherwise, if only a CoordinationContext Element argument is included:
Insert the CoordinationContext Element as a SOAP header in the FlowTransaction Message.
Return the FlowTransaction Message to the higher-layer business logic.
Otherwise, if both a Propagation_Token argument and a CoordinationContext Element argument are included:
Encode the Propagation_Token using base64, and create a PropagationToken Element (section 2.2.3.1.7), setting the value to the base64 encoded Propagation_Token.
Insert (or replace if already present) the PropagationToken Element in the CoordinationContextAnyElementType Complex Type of the CoordinationContext Element (section 2.2.3.2.1).
Insert the CoordinationContext Element as a SOAP header in the FlowTransaction Message.
Return the FlowTransaction Message to the higher-layer business logic.
Otherwise, return an implementation-specific failure result to the higher-layer business logic.