Explicit IORules
The example process - in the BPMN Diagram – Task 1 reads I1, I2, I3 and I4 and produces O1, O2, O3 and O4 - This diagram DOES NOT define which input creates which output and which input attributes can/must be available to execute the activity.
The BPMN Specification defines
Each Activity can have [0-n] InputSets, each input Set is mapped to exactly one Output Set.
Input and Output Sets can contain [1-n] Artefacts, which Output Set is created by which InputSet is defined via [0-n] IORules.
This detailed IO behavior semantic is modeled inside a BPMN Allocation Diagram, which is assigned to the Task for which the IO behavior should be specified as following:
Task with two input Sets ({I1, I2} {I3, I4}, two output sets ({O1, O2} {O3, O4} and two corresponding IORules (IORule 1, IORule 2) . Semantic: Task1 can be instantiated if I1 AND I2 are available OR if I3 AND I4 are available. If the Task is instantiated with I1 AND I2 it will produce O1 AND O2, if the Task was instantiated with I3 AND I4 it will produce O3 AND O4.