(v9) Dynamically disabling / bypassing external dependency in a workflow?

Discussion created by daryl.brown_ACI on Apr 1, 2016
Latest reply on Apr 4, 2016 by Pete Wirfs
I'm not sure if what I'm doing is possible, so I'm throwing this out to the community...

I have a particular "settlement" workflow that requires a particular DB process to have completed before we begin, so I have that DB process included as an external dependency in the workflow.
Now, in the event that this workflow is run manually, I'm using pop-up prompts to let the user specify whether or not we're trying to generate a new extract (default) or regenerate an old one.  Now in the event that we're trying to regenerate an old one, I no longer need that external dependency to that DB process to be in place...but I'm currently at a loss as to how to do that.

Here's what I've considered at so far:
  1. Using MODIFY_TASK -- this doesn't seem to work, as I can't modify the workflow itself to add or remove the external dependency
  2. Using MODIFY_UC_OBJECT to do a 'Go Immediately' on the task that follows the external dependency -- this would probably work, but it would still leave the external dependency active/pending, which would need to be addressed.
  3. Replace the external dependency with a script or event object that will check to see whether the DB process completed.  This script/event could be disabled via STOP NOMSG when it's not needed -- this would work, but it'd be a clunky way to basically implement an external dependency manually; the script / event would not immediately complete as soon as the DB process did in the same way an external dependency would.
  4. Bury the external dependency in a sub-workflow that could be disabled via STOP_NOMSG when it's not needed -- this would work, but it doesn't strike me as particularly elegant
Has anyone out there run up against a problem like this?  How have you addressed it?