Removal of Parameter from Workflow State

Once a parameter is output of an activity, it is added to the workflow state and will not be removed from the state.

To explicitly remove the parameter from the state, you can assign an empty value to the parameter or reuse the parameter name for other purposes.

The total size of workflow state should not exceed 4000 bytes. As the number of activities increase, the workflow state size increases and may exceed 4000 bytes. This will result in workflow failure as the process engine will truncate the state. When this happens, you can:

  • Split the workflow and create subflows. The state of the subflow is not included into the calling workflow except for the output parameters returned by the subflow. See Calling a Workflow for more details.
  • Remove some state variables by assigning an empty value.

    Null Values and Repeated Parameters

When an input parameter is specified to an activity, the application allows the same parameter to be derived from more than one source.

You can define the parameter more than once, each time the value being derived from different source, that is, rule or constant.

If a parameter with an identical name is repeated in the activity, the process engine follows the following algorithm:

“Evaluate each parameter from top to bottom and stop when one returns a non-null value”.

Example of Null Values and Repeated Parameters

Placeholder for Short Description.

<Activity Name="InitiateSynchProducts">
   <Action>SpawnWorkflow</Action>
   <Description lang="en">Start publish workflows</Description>
   <Parameter direction="in" type="string" eval="constant"    name="eventState">SPAWNWORKFLOW</Parameter>
   <Parameter direction="in" name="InDocument" type="document"    eval="variable">workDoc</Parameter>
   <Parameter direction="in" name="DocumentTemplate" type="string"    eval="constant">standard/template/tm26catpubwoutcatv1.xml</Parameter>
   <Parameter direction="in" name="ProcessID" type="string"    eval="constant">standard/workflow/wfin26catsynchv4</Parameter>
   <Parameter direction="in" eval="constant" name="Form"    type="string">standard/forms/fm26catpubtemplatev1.xml</Parameter>
   <Parameter direction="in" name="MasterCatalog" eval="xpath" type="long"    source="/Message/Body/Document/BusinessDocument/CatalogAction/CatalogActi   onHeader/CatalogReference[@type='MasterCatalog']/RevisionID/DBID/text()">   workDoc</Parameter>
   <Parameter direction="in" name="MasterCatalog" eval="xpath" type="long"    source="/Message/Body/Document/BusinessDocument/CatalogAction/CatalogActi   onHeader/MasterCatalog/RevisionID/DBID/text()">workDoc</Parameter>
   <Parameter direction="in" name="RecordKey" type="arraylist"    eval="variable">SynchProductKeyArray</Parameter>
   <Parameter direction="in" name="SenderCredential" type="arraylist"    eval="variable">SynchSenderArray</Parameter>
   <Parameter direction="in" name="ChannelCredential" type="arraylist"    eval="variable">SynchChannelArray</Parameter>
   <Parameter direction="in" name="TradingPartnerCredential" type="arraylist"    eval="variable">SynchTradingPartnerArray</Parameter>
   <Parameter direction="in" name="RelationshipName" type="string"    eval="constant">Contains</Parameter>
   <Parameter direction="in" name="CatalogOutputMap" type="string"    eval="constant">EAN.UCC</Parameter>
   </Activity>