I have a workflow that looks like this:
FileSource -arc1-> Process1 -arc2-> Process2 -arc3-> output
What I would like to achieve is for arc 1 to split, and arc 3 to merge: i.e. I would like arc 2 to copy. However, it seems like a merge is automatically inserted after each process that takes a split: i.e. arc 2 is a merge by default. This is causing my workflow to not work as expected.
To better understand my problem, let me describe the actual situation. The FileSource is a directory containing multiple job files. Process 1 processes each of these files and produces an output file - the output to arc 2 is the filehandle containing the output. I would like Process 2 to do some post-processing on each file, however, because arc 2 does a merge, Process 2 (which is a UNIX command) receives an incorrect input argument (i.e. it makes a single call with all the output filehandles concatenated as a single string, whereas what I want is multiple calls with individual filehandles).
How should I work around this problem?
Use a Sub-Process
You are correct, split/merge arcs only currently work around a single task. However the task can be both an activity or a subprocess.
So the "workaround" is as follows. You should place the two steps Process1 and Process together into their own process and call this process from within the split/merge arcs.
Main: FileSource -arc1(split)-> Body -arc3(merge)-> output
Body: Process1 -arc2-> Process2
To specify the call from the Main process to the Body process, simply drag Body from the JOpera library into the control flow or data flow views of the Main process