Multi-Instance Sub-Processes

There is a change in the processing of multi-instance sub-processes.

In multi-instance sub-process call tasks instances, the individual sub-process can complete in any order. Output mappings can be made from a non-array sub-process parameter into an array field in the calling process. The target array field is populated from the values returned by the sub-process instances.

In pre-version 5.x TIBCO BPM Enterprise, regardless of the order in which the sub-process instances completed, the output value was assigned into the target array element in the order in which the sub-process instances were started. In other words, the return value from the first sub-process instance was always assigned to the first target array field element, the second sub-process instance output value was always assigned to the second target array field element. If the sub-process instances completed in a different order than they were started then the target field had null values assigned to their corresponding target array field elements.

In version 5.x+ this is no longer the case. The target array field elements are now assigned in the order in which the sub-process instances complete. In other words, if the third sub-process instance completes first then its output value is the first element in the target array field.

Therefore, for single to multi-instance output mappings, the target list must be configured as Append to Target List. To enforce this, a problem marker is raised on any multi-instance sub-process single to multi-instance output data mapping, unless you configure it as Append to Target List.

If your version 5.x BPM application is designed to rely on the list element index corresponding to the specific order in which the sub-process instance was invoked, this will no longer work in version 5.x+.