For example: In B service, I am using ‘X’ document as an input variable but not included in the output and using this ‘X’ for the entire process by preserving these input variables in clear pipeline service
My doubt is Will it work for the entire flow correctly If we don’t include ‘X’ in the output of the service?
Any suggestions appreciable
I believe yes as long you are preserving the variable in the svcB and invoking this flow in your main flow svcA you can be able to access this name/value in the pipeline… Please test it but you can also consider defining that var in the o/p of the serviceB for better understanding of the entire flow which will help in error handling/troubleshooting scenarios.
My feedback is to avoid pub.flow:clearPipeline (my recommendation is to never use it) and instead explicitly drop variables when they are no longer needed. Edit: I view the use of clearPipeline as lazy/sloppy coding. Too many times I’ve seen cluttered pipelines in services with dozens of steps. It is a headache to read/maintain. Drop vars as soon as possible to keep a minimal pipeline.
What is your “B service” doing that it has no output? Is it simply manipulating X? If so, no output is okay but it may be more clear to callers that you’re modifying X if you declare it as an output.
I too agree with Rob always Drop var’s as much as possible (part of code review/clean up efforts).
Also please note…clearPipeline is most or widely used service.
Is this service used in any process step in a BPM Process Model?
If so, at least the step implementation in Process Development should set the doctype as an output.
When the model runtime parameters are set OptimizeLocally=true (possible when the model only runs on one logical server) and ExpressPipeline=true, the Process Engine will remove any unspecified outputs from the pipeline before transitioning to the next step.
During Build&Upload you check the Build Report for any messages related to defined inputs which are not specified as output on earlier steps.