In my process model, I have a sequence of steps, then a forking gateway at which two threads start. Each thread makes some changes to the documents contained in its pipeline. After that, the two threads are And-joined.
[FONT=courier new] ...--> A --> Fork --> B1 --> B2 --> Join --> D ... \ / \--> C1 --> C2 --/[/font]
If the step “Fork” puts something (a document) to the pipeline, then both B1 and C1 will have this document in their input pipeline.
I have a question and a problem here.
If I modify a field of the document in, say, B1: is that change immediately visible in C1 or C2? I.e. is the process pipeline more like a global process variable or more like a “thread local” variable (“thread” as in “process thread or branch”)?
In the step “Join” I’d like to gather changes made in the two threads. But both threads have the document under the same name. Should I then declare two input documents with the same name and type as the input of the service that backs (implements) the step “Join”? Or how else can I tell one document (coming via the thread B) from the other (coming via the thread C)?
A clarification will be much appreciated!