Merge pull request #412 from sartography/bugfix/missing-data-output

Restrict task search in subprocess updates
This commit is contained in:
Elizabeth Esswein
2024-05-21 15:33:59 -04:00
committed by GitHub
3 changed files with 6 additions and 6 deletions

View File

@ -85,7 +85,7 @@ class CallActivity(SubWorkflowTask):
def copy_data(self, my_task, subworkflow):
start = subworkflow.get_next_task(spec_name='Start')
start = subworkflow.get_next_task(subworkflow.task_tree, skip_subprocesses=True, spec_name='Start')
if subworkflow.spec.io_specification is None or len(subworkflow.spec.io_specification.data_inputs) == 0:
# Copy all task data into start task if no inputs specified
start.set_data(**my_task.data)
@ -106,7 +106,7 @@ class CallActivity(SubWorkflowTask):
# Copy all workflow data if no outputs are specified
my_task.data = deepcopy(subworkflow.last_task.data)
else:
end = subworkflow.get_next_task(spec_name='End')
end = subworkflow.get_next_task(subworkflow.task_tree, skip_subprocesses=True, spec_name='End')
# Otherwise only copy data with the specified names
for var in subworkflow.spec.io_specification.data_outputs:
if var.bpmn_id not in end.data:

View File

@ -41,11 +41,11 @@ class BpmnTaskFilter(TaskFilter):
class BpmnTaskIterator(TaskIterator):
def __init__(self, task, end_at_spec=None, max_depth=1000, depth_first=True, skip_subpprocesses=False, task_filter=None, **kwargs):
def __init__(self, task, end_at_spec=None, max_depth=1000, depth_first=True, skip_subprocesses=False, task_filter=None, **kwargs):
task_filter = task_filter or BpmnTaskFilter(**kwargs)
super().__init__(task, end_at_spec, max_depth, depth_first, task_filter)
self.skip_subpprocesses = skip_subpprocesses
self.skip_subprocesses = skip_subprocesses
def _next(self):
@ -64,7 +64,7 @@ class BpmnTaskIterator(TaskIterator):
# Do not descend into a completed subprocess to look for unfinished tasks.
if (
subprocess is None
or self.skip_subpprocesses
or self.skip_subprocesses
or (task.state >= TaskState.FINISHED_MASK and self.task_filter.state <= TaskState.FINISHED_MASK)
):
subprocess_tasks = []

View File

@ -112,7 +112,7 @@ class BpmnWorkflow(BpmnBaseWorkflow):
"""
if event.target is not None:
# This limits results to tasks in the specified workflow
tasks = event.target.get_tasks(skip_subpprocesses=True, state=TaskState.NOT_FINISHED_MASK, catches_event=event)
tasks = event.target.get_tasks(skip_subprocesses=True, state=TaskState.NOT_FINISHED_MASK, catches_event=event)
else:
self.update_collaboration(event)
tasks = self.get_tasks(state=TaskState.NOT_FINISHED_MASK, catches_event=event)