Data Copy and Mapping Semantics

This chapter covers the data copy semantics for following features:

Data Copy/Mapping Semantics

Spawned subprocesses inherit the data of their root process by copy using the usual semantic for copy all data. Similarly, processes that are aborted and started from the root process instance and paused and started a new process instance copy the data using the following data copy semantics. Note that target for the copied data can also be other models or model versions.

Data Synchronous/Asynchronous Subprocess Spawned Subprocess and Peer Process
Primitive Data Passed by value Passed by value
Serializable Data Passed by value Passed by value
Structured Data Passed by value Passed by value
XML Document Passed by value Passed by value
Hibernate Data Passed by reference Passed by reference
Entity Bean Passed by reference Passed by reference
Document Passed by reference Passed by reference, except for the Extract Pages functionality. In the latter case new documents are created.
Document List Shallow copy means the list get copied and content passed by reference Shallow copy means the list get copied and content passed by reference
Folder Passed by reference Passed by reference
Folder List Shallow copy means the list get copied and content passed by reference Shallow copy means the list get copied and content passed by reference
Notes Passed by value Passed by value
Process Attachment Refer Document List Refer Document List

Data Mapping Heuristics

Data mapping heuristics is only applied to document data and document list. Consider Po is the originating process instance while Ps is spawned one. The following data mapping heuristic apply for spawned subprocesses, peer processes and newly started process.

Data Mapping Heuristic
Document All data values of Po are passed to Ps regardless of whether Ps uses this data. In addition, the following copy heuristics apply to the document data values Po has, but the Process Definition of Ps does not use and the data of Ps that hasn't been initialized yet via the prior step (passing all data from Po to Ps):
  • The same-type-rule - If Po uses a document data d1 with document type t1 and Po has exactly one document data with type t1 and if Ps has exactly one document data d2 with the same document type t1 then the document (including meta data) will be passed from d1 to d2.
  • The one-document-rule - If Po has exactly one document data d1 with type t1 and Ps uses exactly one document data d2 with type t1 (t1 and t2 might be the same types or not)}} then this document data (excluding meta data) will be passed from d1 to d2.
  • else the document data (including meta data) will be passed as process attachment(s) from Po to Ps (unless Ps does not support process attachments).
Document List Same as Document

Currently, Infinity Process Platform Portal does not support viewing of Document List, Folder and Folder List.

Department Scoping for Spawned Subprocess

In case the data associated with root process contains department information, it gets copied to the spawned process as it is. Thus, the department scope of a spawned process inherits the department scope of the root process.

Behavior of Subprocesses in Process Instance Hierarchy for Spawned Subprocesses

Is Subprocess Of Root Process Instance Subprocess Instance Must Be Completed
To Complete Root Process Instance
Abort Of Root Process Instance Results
In Abort Of Subprocess Instance
Abort Of Subprocess Instance Results
In Abort Of Root Process Instance
Interrupted Subprocess: Recovery Of
Root Process Instance Recovers Subprocess
Synchronous Subprocess Supported Supported Supported (If it hasn't been terminated yet) Supported (configurable - the user can decide whether to abort root process instance) Supported
Asynchronous Subprocess Not Supported Not Supported Not Supported Not Supported Not Supported (since asynchronous 'subprocesses' are not real subprocesses)
Spawned Subprocess Supported Supported Supported (If it hasn't been terminated yet) Supported (configurable - the user can decide whether to abort root process instance Supported