Merge commit 'ba67d7ad342481231aa5e11508e033f74e86d61f' into main

This commit is contained in:
Dan 2023-01-26 18:17:35 -05:00
commit b2e44a3ef2
62 changed files with 3511 additions and 2665 deletions

View File

@ -1,16 +1,14 @@
from SpiffWorkflow.exceptions import WorkflowException from SpiffWorkflow.exceptions import WorkflowTaskException
class WorkflowDataException(WorkflowException): class WorkflowDataException(WorkflowTaskException):
def __init__(self, task, data_input=None, data_output=None, message=None): def __init__(self, message, task, data_input=None, data_output=None):
""" """
:param task: the task that generated the error :param task: the task that generated the error
:param data_input: the spec of the input variable (if a data input) :param data_input: the spec of the input variable (if a data input)
:param data_output: the spec of the output variable (if a data output) :param data_output: the spec of the output variable (if a data output)
""" """
super().__init__(task.task_spec, message or 'data object error') super().__init__(message, task)
self.task = task
self.data_input = data_input self.data_input = data_input
self.data_output = data_output self.data_output = data_output
self.task_trace = self.get_task_trace(task)

View File

@ -43,13 +43,23 @@ from ..specs.UserTask import UserTask
from .ProcessParser import ProcessParser from .ProcessParser import ProcessParser
from .node_parser import DEFAULT_NSMAP from .node_parser import DEFAULT_NSMAP
from .util import full_tag, xpath_eval, first from .util import full_tag, xpath_eval, first
from .task_parsers import (UserTaskParser, NoneTaskParser, ManualTaskParser, from .TaskParser import TaskParser
ExclusiveGatewayParser, ParallelGatewayParser, InclusiveGatewayParser, from .task_parsers import (
CallActivityParser, ScriptTaskParser, SubWorkflowParser, GatewayParser,
ServiceTaskParser) ConditionalGatewayParser,
from .event_parsers import (EventBasedGatewayParser, StartEventParser, EndEventParser, BoundaryEventParser, CallActivityParser,
IntermediateCatchEventParser, IntermediateThrowEventParser, ScriptTaskParser,
SendTaskParser, ReceiveTaskParser) SubWorkflowParser,
)
from .event_parsers import (
EventBasedGatewayParser,
StartEventParser, EndEventParser,
BoundaryEventParser,
IntermediateCatchEventParser,
IntermediateThrowEventParser,
SendTaskParser,
ReceiveTaskParser
)
XSD_PATH = os.path.join(os.path.dirname(__file__), 'schema', 'BPMN20.xsd') XSD_PATH = os.path.join(os.path.dirname(__file__), 'schema', 'BPMN20.xsd')
@ -94,17 +104,17 @@ class BpmnParser(object):
PARSER_CLASSES = { PARSER_CLASSES = {
full_tag('startEvent'): (StartEventParser, StartEvent), full_tag('startEvent'): (StartEventParser, StartEvent),
full_tag('endEvent'): (EndEventParser, EndEvent), full_tag('endEvent'): (EndEventParser, EndEvent),
full_tag('userTask'): (UserTaskParser, UserTask), full_tag('userTask'): (TaskParser, UserTask),
full_tag('task'): (NoneTaskParser, NoneTask), full_tag('task'): (TaskParser, NoneTask),
full_tag('subProcess'): (SubWorkflowParser, CallActivity), full_tag('subProcess'): (SubWorkflowParser, CallActivity),
full_tag('manualTask'): (ManualTaskParser, ManualTask), full_tag('manualTask'): (TaskParser, ManualTask),
full_tag('exclusiveGateway'): (ExclusiveGatewayParser, ExclusiveGateway), full_tag('exclusiveGateway'): (ConditionalGatewayParser, ExclusiveGateway),
full_tag('parallelGateway'): (ParallelGatewayParser, ParallelGateway), full_tag('parallelGateway'): (GatewayParser, ParallelGateway),
full_tag('inclusiveGateway'): (InclusiveGatewayParser, InclusiveGateway), full_tag('inclusiveGateway'): (ConditionalGatewayParser, InclusiveGateway),
full_tag('callActivity'): (CallActivityParser, CallActivity), full_tag('callActivity'): (CallActivityParser, CallActivity),
full_tag('transaction'): (SubWorkflowParser, TransactionSubprocess), full_tag('transaction'): (SubWorkflowParser, TransactionSubprocess),
full_tag('scriptTask'): (ScriptTaskParser, ScriptTask), full_tag('scriptTask'): (ScriptTaskParser, ScriptTask),
full_tag('serviceTask'): (ServiceTaskParser, ServiceTask), full_tag('serviceTask'): (TaskParser, ServiceTask),
full_tag('intermediateCatchEvent'): (IntermediateCatchEventParser, IntermediateCatchEvent), full_tag('intermediateCatchEvent'): (IntermediateCatchEventParser, IntermediateCatchEvent),
full_tag('intermediateThrowEvent'): (IntermediateThrowEventParser, IntermediateThrowEvent), full_tag('intermediateThrowEvent'): (IntermediateThrowEventParser, IntermediateThrowEvent),
full_tag('boundaryEvent'): (BoundaryEventParser, BoundaryEvent), full_tag('boundaryEvent'): (BoundaryEventParser, BoundaryEvent),

View File

@ -28,6 +28,7 @@ from ..specs.events.event_definitions import CancelEventDefinition
from ..specs.MultiInstanceTask import getDynamicMIClass from ..specs.MultiInstanceTask import getDynamicMIClass
from ..specs.SubWorkflowTask import CallActivity, TransactionSubprocess, SubWorkflowTask from ..specs.SubWorkflowTask import CallActivity, TransactionSubprocess, SubWorkflowTask
from ..specs.ExclusiveGateway import ExclusiveGateway from ..specs.ExclusiveGateway import ExclusiveGateway
from ..specs.InclusiveGateway import InclusiveGateway
from ...dmn.specs.BusinessRuleTask import BusinessRuleTask from ...dmn.specs.BusinessRuleTask import BusinessRuleTask
from ...operators import Attrib, PathAttrib from ...operators import Attrib, PathAttrib
from .util import one, first from .util import one, first
@ -188,9 +189,9 @@ class TaskParser(NodeParser):
children = sorted(children, key=lambda tup: float(tup[0]["y"])) children = sorted(children, key=lambda tup: float(tup[0]["y"]))
default_outgoing = self.node.get('default') default_outgoing = self.node.get('default')
if not default_outgoing: if len(children) == 1 and isinstance(self.task, (ExclusiveGateway, InclusiveGateway)):
if len(children) == 1 or not isinstance(self.task, ExclusiveGateway):
(position, c, target_node, sequence_flow) = children[0] (position, c, target_node, sequence_flow) = children[0]
if self.parse_condition(sequence_flow) is None:
default_outgoing = sequence_flow.get('id') default_outgoing = sequence_flow.get('id')
for (position, c, target_node, sequence_flow) in children: for (position, c, target_node, sequence_flow) in children:

View File

@ -5,11 +5,19 @@ from SpiffWorkflow.bpmn.specs.events.event_definitions import CorrelationPropert
from .ValidationException import ValidationException from .ValidationException import ValidationException
from .TaskParser import TaskParser from .TaskParser import TaskParser
from .util import first, one from .util import first, one
from ..specs.events.event_definitions import (MultipleEventDefinition, TimerEventDefinition, MessageEventDefinition, from ..specs.events.event_definitions import (
ErrorEventDefinition, EscalationEventDefinition, MultipleEventDefinition,
TimeDateEventDefinition,
DurationTimerEventDefinition,
CycleTimerEventDefinition,
MessageEventDefinition,
ErrorEventDefinition,
EscalationEventDefinition,
SignalEventDefinition, SignalEventDefinition,
CancelEventDefinition, CycleTimerEventDefinition, CancelEventDefinition,
TerminateEventDefinition, NoneEventDefinition) TerminateEventDefinition,
NoneEventDefinition
)
CAMUNDA_MODEL_NS = 'http://camunda.org/schema/1.0/bpmn' CAMUNDA_MODEL_NS = 'http://camunda.org/schema/1.0/bpmn'
@ -81,18 +89,16 @@ class EventDefinitionParser(TaskParser):
"""Parse the timerEventDefinition node and return an instance of TimerEventDefinition.""" """Parse the timerEventDefinition node and return an instance of TimerEventDefinition."""
try: try:
label = self.node.get('name', self.node.get('id')) name = self.node.get('name', self.node.get('id'))
time_date = first(self.xpath('.//bpmn:timeDate')) time_date = first(self.xpath('.//bpmn:timeDate'))
if time_date is not None: if time_date is not None:
return TimerEventDefinition(label, time_date.text) return TimeDateEventDefinition(name, time_date.text)
time_duration = first(self.xpath('.//bpmn:timeDuration')) time_duration = first(self.xpath('.//bpmn:timeDuration'))
if time_duration is not None: if time_duration is not None:
return TimerEventDefinition(label, time_duration.text) return DurationTimerEventDefinition(name, time_duration.text)
time_cycle = first(self.xpath('.//bpmn:timeCycle')) time_cycle = first(self.xpath('.//bpmn:timeCycle'))
if time_cycle is not None: if time_cycle is not None:
return CycleTimerEventDefinition(label, time_cycle.text) return CycleTimerEventDefinition(name, time_cycle.text)
raise ValidationException("Unknown Time Specification", node=self.node, file_name=self.filename) raise ValidationException("Unknown Time Specification", node=self.node, file_name=self.filename)
except Exception as e: except Exception as e:
raise ValidationException("Time Specification Error. " + str(e), node=self.node, file_name=self.filename) raise ValidationException("Time Specification Error. " + str(e), node=self.node, file_name=self.filename)
@ -170,9 +176,6 @@ class StartEventParser(EventDefinitionParser):
event_definition = self.get_event_definition([MESSAGE_EVENT_XPATH, SIGNAL_EVENT_XPATH, TIMER_EVENT_XPATH]) event_definition = self.get_event_definition([MESSAGE_EVENT_XPATH, SIGNAL_EVENT_XPATH, TIMER_EVENT_XPATH])
task = self._create_task(event_definition) task = self._create_task(event_definition)
self.spec.start.connect(task) self.spec.start.connect(task)
if isinstance(event_definition, CycleTimerEventDefinition):
# We are misusing cycle timers, so this is a hack whereby we will revisit ourselves if we fire.
task.connect(task)
return task return task
def handles_multiple_outgoing(self): def handles_multiple_outgoing(self):

View File

@ -25,41 +25,19 @@ from .util import one, DEFAULT_NSMAP
CAMUNDA_MODEL_NS = 'http://camunda.org/schema/1.0/bpmn' CAMUNDA_MODEL_NS = 'http://camunda.org/schema/1.0/bpmn'
class UserTaskParser(TaskParser): class GatewayParser(TaskParser):
def handles_multiple_outgoing(self):
""" return True
Base class for parsing User Tasks
"""
pass
class ManualTaskParser(UserTaskParser): class ConditionalGatewayParser(GatewayParser):
"""
Base class for parsing Manual Tasks. Currently assumes that Manual Tasks
should be treated the same way as User Tasks.
"""
pass
class NoneTaskParser(UserTaskParser):
"""
Base class for parsing unspecified Tasks. Currently assumes that such Tasks
should be treated the same way as User Tasks.
"""
pass
class ExclusiveGatewayParser(TaskParser):
""" """
Parses an Exclusive Gateway, setting up the outgoing conditions Parses an Exclusive Gateway, setting up the outgoing conditions
appropriately. appropriately.
""" """
def connect_outgoing(self, outgoing_task, sequence_flow_node, is_default): def connect_outgoing(self, outgoing_task, sequence_flow_node, is_default):
if is_default: if is_default:
super(ExclusiveGatewayParser, self).connect_outgoing(outgoing_task, sequence_flow_node, is_default) super().connect_outgoing(outgoing_task, sequence_flow_node, is_default)
else: else:
cond = self.parse_condition(sequence_flow_node) cond = self.parse_condition(sequence_flow_node)
if cond is None: if cond is None:
@ -69,33 +47,6 @@ class ExclusiveGatewayParser(TaskParser):
self.filename) self.filename)
self.task.connect_outgoing_if(cond, outgoing_task) self.task.connect_outgoing_if(cond, outgoing_task)
def handles_multiple_outgoing(self):
return True
class ParallelGatewayParser(TaskParser):
"""
Parses a Parallel Gateway.
"""
def handles_multiple_outgoing(self):
return True
class InclusiveGatewayParser(TaskParser):
"""
Parses an Inclusive Gateway.
"""
def handles_multiple_outgoing(self):
"""
At the moment I haven't implemented support for diverging inclusive
gateways
"""
return False
class SubprocessParser: class SubprocessParser:
@ -200,11 +151,3 @@ class ScriptTaskParser(TaskParser):
f"Invalid Script Task. No Script Provided. " + str(ae), f"Invalid Script Task. No Script Provided. " + str(ae),
node=self.node, file_name=self.filename) node=self.node, file_name=self.filename)
class ServiceTaskParser(TaskParser):
"""
Parses a ServiceTask node.
"""
pass

View File

@ -7,10 +7,21 @@ from SpiffWorkflow.bpmn.specs.BpmnProcessSpec import BpmnDataSpecification
from .dictionary import DictionaryConverter from .dictionary import DictionaryConverter
from ..specs.events.event_definitions import MultipleEventDefinition, SignalEventDefinition, MessageEventDefinition, NoneEventDefinition from ..specs.events.event_definitions import (
from ..specs.events.event_definitions import TimerEventDefinition, CycleTimerEventDefinition, TerminateEventDefinition NoneEventDefinition,
from ..specs.events.event_definitions import ErrorEventDefinition, EscalationEventDefinition, CancelEventDefinition MultipleEventDefinition,
from ..specs.events.event_definitions import CorrelationProperty, NamedEventDefinition SignalEventDefinition,
MessageEventDefinition,
CorrelationProperty,
TimeDateEventDefinition,
DurationTimerEventDefinition,
CycleTimerEventDefinition,
ErrorEventDefinition,
EscalationEventDefinition,
CancelEventDefinition,
TerminateEventDefinition,
NamedEventDefinition
)
from ..specs.BpmnSpecMixin import BpmnSpecMixin from ..specs.BpmnSpecMixin import BpmnSpecMixin
from ...operators import Attrib, PathAttrib from ...operators import Attrib, PathAttrib
@ -89,9 +100,19 @@ class BpmnTaskSpecConverter(DictionaryConverter):
self.data_converter = data_converter self.data_converter = data_converter
self.typename = typename if typename is not None else spec_class.__name__ self.typename = typename if typename is not None else spec_class.__name__
event_definitions = [ NoneEventDefinition, CancelEventDefinition, TerminateEventDefinition, event_definitions = [
SignalEventDefinition, MessageEventDefinition, ErrorEventDefinition, EscalationEventDefinition, NoneEventDefinition,
TimerEventDefinition, CycleTimerEventDefinition , MultipleEventDefinition] CancelEventDefinition,
TerminateEventDefinition,
SignalEventDefinition,
MessageEventDefinition,
ErrorEventDefinition,
EscalationEventDefinition,
TimeDateEventDefinition,
DurationTimerEventDefinition,
CycleTimerEventDefinition,
MultipleEventDefinition
]
for event_definition in event_definitions: for event_definition in event_definitions:
self.register( self.register(
@ -238,12 +259,9 @@ class BpmnTaskSpecConverter(DictionaryConverter):
dct['name'] = event_definition.name dct['name'] = event_definition.name
if isinstance(event_definition, MessageEventDefinition): if isinstance(event_definition, MessageEventDefinition):
dct['correlation_properties'] = [prop.__dict__ for prop in event_definition.correlation_properties] dct['correlation_properties'] = [prop.__dict__ for prop in event_definition.correlation_properties]
if isinstance(event_definition, TimerEventDefinition): if isinstance(event_definition, (TimeDateEventDefinition, DurationTimerEventDefinition, CycleTimerEventDefinition)):
dct['label'] = event_definition.label dct['name'] = event_definition.name
dct['dateTime'] = event_definition.dateTime dct['expression'] = event_definition.expression
if isinstance(event_definition, CycleTimerEventDefinition):
dct['label'] = event_definition.label
dct['cycle_definition'] = event_definition.cycle_definition
if isinstance(event_definition, ErrorEventDefinition): if isinstance(event_definition, ErrorEventDefinition):
dct['error_code'] = event_definition.error_code dct['error_code'] = event_definition.error_code
if isinstance(event_definition, EscalationEventDefinition): if isinstance(event_definition, EscalationEventDefinition):

View File

@ -176,51 +176,54 @@ class TransactionSubprocessTaskConverter(BpmnTaskSpecConverter):
return self.task_spec_from_dict(dct) return self.task_spec_from_dict(dct)
class ExclusiveGatewayConverter(BpmnTaskSpecConverter): class ConditionalGatewayConverter(BpmnTaskSpecConverter):
def __init__(self, data_converter=None, typename=None):
super().__init__(ExclusiveGateway, data_converter, typename)
def to_dict(self, spec): def to_dict(self, spec):
dct = self.get_default_attributes(spec) dct = self.get_default_attributes(spec)
dct.update(self.get_bpmn_attributes(spec)) dct.update(self.get_bpmn_attributes(spec))
dct['default_task_spec'] = spec.default_task_spec
dct['cond_task_specs'] = [ self.bpmn_condition_to_dict(cond) for cond in spec.cond_task_specs ] dct['cond_task_specs'] = [ self.bpmn_condition_to_dict(cond) for cond in spec.cond_task_specs ]
dct['choice'] = spec.choice dct['choice'] = spec.choice
return dct return dct
def from_dict(self, dct): def from_dict(self, dct):
conditions = dct.pop('cond_task_specs') conditions = dct.pop('cond_task_specs')
default_task_spec = dct.pop('default_task_spec')
spec = self.task_spec_from_dict(dct) spec = self.task_spec_from_dict(dct)
spec.cond_task_specs = [ self.bpmn_condition_from_dict(cond) for cond in conditions ] spec.cond_task_specs = [ self.bpmn_condition_from_dict(cond) for cond in conditions ]
spec.default_task_spec = default_task_spec
return spec return spec
def bpmn_condition_from_dict(self, dct): def bpmn_condition_from_dict(self, dct):
return (_BpmnCondition(dct['condition']), dct['task_spec']) return (_BpmnCondition(dct['condition']) if dct['condition'] is not None else None, dct['task_spec'])
def bpmn_condition_to_dict(self, condition): def bpmn_condition_to_dict(self, condition):
expr, task_spec = condition expr, task_spec = condition
return { return {
'condition': expr.args[0], 'condition': expr.args[0] if expr is not None else None,
'task_spec': task_spec 'task_spec': task_spec
} }
class InclusiveGatewayConverter(BpmnTaskSpecConverter):
class ExclusiveGatewayConverter(ConditionalGatewayConverter):
def __init__(self, data_converter=None, typename=None): def __init__(self, data_converter=None, typename=None):
super().__init__(InclusiveGateway, data_converter, typename) super().__init__(ExclusiveGateway, data_converter, typename)
def to_dict(self, spec): def to_dict(self, spec):
dct = self.get_default_attributes(spec) dct = super().to_dict(spec)
dct.update(self.get_bpmn_attributes(spec)) dct['default_task_spec'] = spec.default_task_spec
dct.update(self.get_join_attributes(spec))
return dct return dct
def from_dict(self, dct): def from_dict(self, dct):
return self.task_spec_from_dict(dct) default_task_spec = dct.pop('default_task_spec')
spec = super().from_dict(dct)
spec.default_task_spec = default_task_spec
return spec
class InclusiveGatewayConverter(ConditionalGatewayConverter):
def __init__(self, data_converter=None, typename=None):
super().__init__(InclusiveGateway, data_converter, typename)
class ParallelGatewayConverter(BpmnTaskSpecConverter): class ParallelGatewayConverter(BpmnTaskSpecConverter):

View File

@ -1,4 +1,95 @@
from copy import deepcopy from copy import deepcopy
from datetime import datetime, timedelta
from SpiffWorkflow.exceptions import WorkflowException
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.specs.events.event_definitions import LOCALTZ
class VersionMigrationError(WorkflowException):
pass
def version_1_1_to_1_2(old):
"""
Upgrade v1.1 serialization to v1.2.
Expressions in timer event definitions have been converted from python expressions to
ISO 8601 expressions.
Cycle timers no longer connect back to themselves. New children are created from a single
tasks rather than reusing previously executed tasks.
All conditions (including the default) are included in the conditions for gateways.
"""
new = deepcopy(old)
def td_to_iso(td):
total = td.total_seconds()
v1, seconds = total // 60, total % 60
v2, minutes = v1 // 60, v1 % 60
days, hours = v2 // 24, v2 % 60
return f"P{days:.0f}DT{hours:.0f}H{minutes:.0f}M{seconds}S"
message = "Unable to convert time specifications for {spec}. This most likely because the values are set during workflow execution."
has_timer = lambda ts: 'event_definition' in ts and ts['event_definition']['typename'] in [ 'CycleTimerEventDefinition', 'TimerEventDefinition']
for spec in [ ts for ts in new['spec']['task_specs'].values() if has_timer(ts) ]:
spec['event_definition']['name'] = spec['event_definition'].pop('label')
if spec['event_definition']['typename'] == 'TimerEventDefinition':
expr = spec['event_definition'].pop('dateTime')
try:
dt = eval(expr)
if isinstance(dt, datetime):
spec['event_definition']['expression'] = f"'{dt.isoformat()}'"
spec['event_definition']['typename'] = 'TimeDateEventDefinition'
elif isinstance(dt, timedelta):
spec['event_definition']['expression'] = f"'{td_to_iso(dt)}'"
spec['event_definition']['typename'] = 'DurationTimerEventDefinition'
except:
raise VersionMigrationError(message.format(spec=spec['name']))
if spec['event_definition']['typename'] == 'CycleTimerEventDefinition':
tasks = [ t for t in new['tasks'].values() if t['task_spec'] == spec['name'] ]
task = tasks[0] if len(tasks) > 0 else None
expr = spec['event_definition'].pop('cycle_definition')
try:
repeat, duration = eval(expr)
spec['event_definition']['expression'] = f"'R{repeat}/{td_to_iso(duration)}'"
if task is not None:
cycles_complete = task['data'].pop('repeat_count', 0)
start_time = task['internal_data'].pop('start_time', None)
if start_time is not None:
dt = datetime.fromisoformat(start_time)
task['internal_data']['event_value'] = {
'cycles': repeat - cycles_complete,
'next': datetime.combine(dt.date(), dt.time(), LOCALTZ).isoformat(),
'duration': duration.total_seconds(),
}
except:
raise VersionMigrationError(message.format(spec=spec['name']))
if spec['typename'] == 'StartEvent':
spec['outputs'].remove(spec['name'])
if task is not None:
children = [ new['tasks'][c] for c in task['children'] ]
# Formerly cycles were handled by looping back and reusing the tasks so this removes the extra tasks
remove = [ c for c in children if c['task_spec'] == task['task_spec']][0]
for task_id in remove['children']:
child = new['tasks'][task_id]
if child['task_spec'].startswith('return') or child['state'] != TaskState.COMPLETED:
new['tasks'].pop(task_id)
else:
task['children'].append(task_id)
task['children'].remove(remove['id'])
new['tasks'].pop(remove['id'])
for spec in [ts for ts in new['spec']['task_specs'].values() if ts['typename'] == 'ExclusiveGateway']:
if (None, spec['default_task_spec']) not in spec['cond_task_specs']:
spec['cond_task_specs'].append((None, spec['default_task_spec']))
new['VERSION'] = "1.2"
return new
def version_1_0_to_1_1(old): def version_1_0_to_1_1(old):
""" """
@ -47,8 +138,11 @@ def version_1_0_to_1_1(old):
task['children'] = [ c for c in task['children'] if c in sp['tasks'] ] task['children'] = [ c for c in task['children'] if c in sp['tasks'] ]
new['subprocesses'] = subprocesses new['subprocesses'] = subprocesses
return new new['VERSION'] = "1.1"
return version_1_1_to_1_2(new)
MIGRATIONS = { MIGRATIONS = {
'1.0': version_1_0_to_1_1, '1.0': version_1_0_to_1_1,
'1.1': version_1_1_to_1_2,
} }

View File

@ -64,7 +64,7 @@ class BpmnWorkflowSerializer:
# This is the default version set on the workflow, it can be overwritten # This is the default version set on the workflow, it can be overwritten
# using the configure_workflow_spec_converter. # using the configure_workflow_spec_converter.
VERSION = "1.1" VERSION = "1.2"
VERSION_KEY = "serializer_version" VERSION_KEY = "serializer_version"
DEFAULT_JSON_ENCODER_CLS = None DEFAULT_JSON_ENCODER_CLS = None
DEFAULT_JSON_DECODER_CLS = None DEFAULT_JSON_DECODER_CLS = None

View File

@ -72,15 +72,17 @@ class BpmnDataSpecification:
def get(self, my_task): def get(self, my_task):
"""Copy a value form the workflow data to the task data.""" """Copy a value form the workflow data to the task data."""
if self.name not in my_task.workflow.data: if self.name not in my_task.workflow.data:
message = f"Workflow variable {self.name} not found" message = f"Data object '{self.name}' " \
raise WorkflowDataException(my_task, data_input=self, message=message) f"does not exist and can not be read."
raise WorkflowDataException(message, my_task, data_input=self)
my_task.data[self.name] = deepcopy(my_task.workflow.data[self.name]) my_task.data[self.name] = deepcopy(my_task.workflow.data[self.name])
def set(self, my_task): def set(self, my_task):
"""Copy a value from the task data to the workflow data""" """Copy a value from the task data to the workflow data"""
if self.name not in my_task.data: if self.name not in my_task.data:
message = f"Task variable {self.name} not found" message = f"A Data Object '{self.name}' " \
raise WorkflowDataException(my_task, data_output=self, message=message) f"could not be set, it does not exist in the task data"
raise WorkflowDataException(message, my_task, data_output=self)
my_task.workflow.data[self.name] = deepcopy(my_task.data[self.name]) my_task.workflow.data[self.name] = deepcopy(my_task.data[self.name])
del my_task.data[self.name] del my_task.data[self.name]
data_log.info(f'Set workflow variable {self.name}', extra=my_task.log_info()) data_log.info(f'Set workflow variable {self.name}', extra=my_task.log_info())
@ -88,12 +90,12 @@ class BpmnDataSpecification:
def copy(self, source, destination, data_input=False, data_output=False): def copy(self, source, destination, data_input=False, data_output=False):
"""Copy a value from one task to another.""" """Copy a value from one task to another."""
if self.name not in source.data: if self.name not in source.data:
message = f"Unable to copy {self.name}" message = f"'{self.name}' was not found in the task data"
raise WorkflowDataException( raise WorkflowDataException(
message,
source, source,
data_input=self if data_input else None, data_input=self if data_input else None,
data_output=self if data_output else None, data_output=self if data_output else None,
message=message
) )
destination.data[self.name] = deepcopy(source.data[self.name]) destination.data[self.name] = deepcopy(source.data[self.name])

View File

@ -32,7 +32,6 @@ class _BpmnCondition(Operator):
return task.workflow.script_engine.evaluate(task, self.args[0]) return task.workflow.script_engine.evaluate(task, self.args[0])
class BpmnSpecMixin(TaskSpec): class BpmnSpecMixin(TaskSpec):
""" """
All BPMN spec classes should mix this superclass in. It adds a number of All BPMN spec classes should mix this superclass in. It adds a number of
@ -70,6 +69,9 @@ class BpmnSpecMixin(TaskSpec):
evaluates to true. This should only be called if the task has a evaluates to true. This should only be called if the task has a
connect_if method (e.g. ExclusiveGateway). connect_if method (e.g. ExclusiveGateway).
""" """
if condition is None:
self.connect(taskspec)
else:
self.connect_if(_BpmnCondition(condition), taskspec) self.connect_if(_BpmnCondition(condition), taskspec)
def _on_ready_hook(self, my_task): def _on_ready_hook(self, my_task):

View File

@ -16,38 +16,20 @@
# License along with this library; if not, write to the Free Software # License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA # 02110-1301 USA
from ...exceptions import WorkflowException
from .BpmnSpecMixin import BpmnSpecMixin from .BpmnSpecMixin import BpmnSpecMixin
from ...specs.base import TaskSpec
from ...specs.ExclusiveChoice import ExclusiveChoice from ...specs.ExclusiveChoice import ExclusiveChoice
from ...specs.MultiChoice import MultiChoice
class ExclusiveGateway(ExclusiveChoice, BpmnSpecMixin): class ExclusiveGateway(ExclusiveChoice, BpmnSpecMixin):
""" """
Task Spec for a bpmn:exclusiveGateway node. Task Spec for a bpmn:exclusiveGateway node.
""" """
def test(self): def test(self):
""" # Bypass the check for no default output -- this is not required in BPMN
Checks whether all required attributes are set. Throws an exception MultiChoice.test(self)
if an error was detected.
"""
# This has been overridden to allow a single default flow out (without a
# condition) - useful for the converging type
TaskSpec.test(self)
# if len(self.cond_task_specs) < 1:
# raise WorkflowException(self, 'At least one output required.')
for condition, name in self.cond_task_specs:
if name is None:
raise WorkflowException('Condition with no task spec.', task_spec=self)
task_spec = self._wf_spec.get_task_spec_from_name(name)
if task_spec is None:
msg = 'Condition leads to non-existent task ' + repr(name)
raise WorkflowException(msg, task_spec=self)
if condition is None:
continue
@property @property
def spec_type(self): def spec_type(self):

View File

@ -16,13 +16,14 @@
# License along with this library; if not, write to the Free Software # License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA # 02110-1301 USA
from collections import deque
from SpiffWorkflow.exceptions import WorkflowTaskException
from ...task import TaskState from ...task import TaskState
from .UnstructuredJoin import UnstructuredJoin from .UnstructuredJoin import UnstructuredJoin
from ...specs.MultiChoice import MultiChoice
class InclusiveGateway(UnstructuredJoin): class InclusiveGateway(MultiChoice, UnstructuredJoin):
""" """
Task Spec for a bpmn:parallelGateway node. From the specification of BPMN Task Spec for a bpmn:parallelGateway node. From the specification of BPMN
(http://www.omg.org/spec/BPMN/2.0/PDF - document number:formal/2011-01-03): (http://www.omg.org/spec/BPMN/2.0/PDF - document number:formal/2011-01-03):
@ -62,58 +63,59 @@ class InclusiveGateway(UnstructuredJoin):
specified, the Inclusive Gateway throws an exception. specified, the Inclusive Gateway throws an exception.
""" """
@property def test(self):
def spec_type(self): MultiChoice.test(self)
return 'Inclusive Gateway' UnstructuredJoin.test(self)
def _check_threshold_unstructured(self, my_task, force=False): def _check_threshold_unstructured(self, my_task, force=False):
# Look at the tree to find all ready and waiting tasks (excluding ones completed_inputs, waiting_tasks = self._get_inputs_with_tokens(my_task)
# that are our completed inputs). uncompleted_inputs = [i for i in self.inputs if i not in completed_inputs]
tasks = []
for task in my_task.workflow.get_tasks(TaskState.READY | TaskState.WAITING):
if task.thread_id != my_task.thread_id:
continue
if task.workflow != my_task.workflow:
continue
if task.task_spec == my_task.task_spec:
continue
tasks.append(task)
inputs_with_tokens, waiting_tasks = self._get_inputs_with_tokens( # We only have to complete a task once for it to count, even if's on multiple paths
my_task) for task in waiting_tasks:
inputs_without_tokens = [ if task.task_spec in completed_inputs:
i for i in self.inputs if i not in inputs_with_tokens] waiting_tasks.remove(task)
waiting_tasks = [] if force:
for task in tasks: # If force is true, complete the task
if (self._has_directed_path_to( complete = True
task, self, elif len(waiting_tasks) > 0:
without_using_sequence_flow_from=inputs_with_tokens) and # If we have waiting tasks, we're obviously not done
not self._has_directed_path_to( complete = False
task, self, else:
without_using_sequence_flow_from=inputs_without_tokens)): # Handle the case where there are paths from active tasks that must go through uncompleted inputs
waiting_tasks.append(task) tasks = my_task.workflow.get_tasks(TaskState.READY | TaskState.WAITING, workflow=my_task.workflow)
sources = [t.task_spec for t in tasks]
return force or len(waiting_tasks) == 0, waiting_tasks # This will go back through a task spec's ancestors and return the source, if applicable
def check(spec):
for parent in spec.inputs:
return parent if parent in sources else check(parent)
def _has_directed_path_to(self, task, task_spec, # If we can get to a completed input from this task, we don't have to wait for it
without_using_sequence_flow_from=None): for spec in completed_inputs:
q = deque() source = check(spec)
done = set() if source is not None:
sources.remove(source)
without_using_sequence_flow_from = set( # Now check the rest of the uncompleted inputs and see if they can be reached from any of the remaining tasks
without_using_sequence_flow_from or []) unfinished_paths = []
for spec in uncompleted_inputs:
if check(spec) is not None:
unfinished_paths.append(spec)
break
q.append(task.task_spec) complete = len(unfinished_paths) == 0
while q:
n = q.popleft() return complete, waiting_tasks
if n == task_spec:
return True def _on_complete_hook(self, my_task):
for child in n.outputs: outputs = self._get_matching_outputs(my_task)
if child not in done and not ( if len(outputs) == 0:
n in without_using_sequence_flow_from and raise WorkflowTaskException(f'No conditions satisfied on gateway', task=my_task)
child == task_spec): my_task._sync_children(outputs, TaskState.FUTURE)
done.add(child)
q.append(child) @property
return False def spec_type(self):
return 'Inclusive Gateway'

View File

@ -42,10 +42,7 @@ class ParallelGateway(UnstructuredJoin):
def _check_threshold_unstructured(self, my_task, force=False): def _check_threshold_unstructured(self, my_task, force=False):
completed_inputs, waiting_tasks = self._get_inputs_with_tokens(my_task) completed_inputs, waiting_tasks = self._get_inputs_with_tokens(my_task)
return force or len(completed_inputs) >= len(self.inputs), waiting_tasks
# If the threshold was reached, get ready to fire.
return (force or len(completed_inputs) >= len(self.inputs),
waiting_tasks)
@property @property
def spec_type(self): def spec_type(self):

View File

@ -3,6 +3,7 @@ from copy import deepcopy
from SpiffWorkflow.task import TaskState from SpiffWorkflow.task import TaskState
from .BpmnSpecMixin import BpmnSpecMixin from .BpmnSpecMixin import BpmnSpecMixin
from ..exceptions import WorkflowDataException
from ...specs.base import TaskSpec from ...specs.base import TaskSpec
@ -51,7 +52,11 @@ class SubWorkflowTask(BpmnSpecMixin):
end = subworkflow.get_tasks_from_spec_name('End', workflow=subworkflow) end = subworkflow.get_tasks_from_spec_name('End', workflow=subworkflow)
# Otherwise only copy data with the specified names # Otherwise only copy data with the specified names
for var in subworkflow.spec.data_outputs: for var in subworkflow.spec.data_outputs:
try:
var.copy(end[0], my_task, data_output=True) var.copy(end[0], my_task, data_output=True)
except WorkflowDataException as wde:
wde.add_note("A Data Output was not provided as promised.")
raise wde
my_task._set_state(TaskState.READY) my_task._set_state(TaskState.READY)
@ -83,8 +88,11 @@ class SubWorkflowTask(BpmnSpecMixin):
else: else:
# Otherwise copy only task data with the specified names # Otherwise copy only task data with the specified names
for var in subworkflow.spec.data_inputs: for var in subworkflow.spec.data_inputs:
try:
var.copy(my_task, start[0], data_input=True) var.copy(my_task, start[0], data_input=True)
except WorkflowDataException as wde:
wde.add_note("You are missing a required Data Input for a call activity.")
raise wde
for child in subworkflow.task_tree.children: for child in subworkflow.task_tree.children:
child.task_spec._update(child) child.task_spec._update(child)

View File

@ -17,75 +17,34 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA # 02110-1301 USA
from ...exceptions import WorkflowException
from ...task import TaskState from ...task import TaskState
from .BpmnSpecMixin import BpmnSpecMixin from .BpmnSpecMixin import BpmnSpecMixin
from ...specs.Join import Join from ...specs.Join import Join
class UnstructuredJoin(Join, BpmnSpecMixin): class UnstructuredJoin(Join, BpmnSpecMixin):
""" """
A helper subclass of Join that makes it work in a slightly friendlier way A helper subclass of Join that makes it work in a slightly friendlier way
for the BPMN style threading for the BPMN style threading
""" """
def _check_threshold_unstructured(self, my_task, force=False):
raise NotImplementedError("Please implement this in the subclass")
def _get_inputs_with_tokens(self, my_task): def _get_inputs_with_tokens(self, my_task):
# Look at the tree to find all places where this task is used. # Look at the tree to find all places where this task is used.
tasks = [] tasks = [ t for t in my_task.workflow.get_tasks_from_spec_name(self.name) if t.workflow == my_task.workflow ]
for task in my_task.workflow.task_tree:
if task.thread_id != my_task.thread_id:
continue
if task.workflow != my_task.workflow:
continue
if task.task_spec != self:
continue
if task._is_finished():
continue
tasks.append(task)
# Look up which tasks have parent's completed. # Look up which tasks have parents completed.
waiting_tasks = [] waiting_tasks = []
completed_inputs = set() completed_inputs = set()
for task in tasks: for task in tasks:
if task.parent._has_state(TaskState.COMPLETED) and ( if task.parent.state == TaskState.COMPLETED:
task._has_state(TaskState.WAITING) or task == my_task):
if task.parent.task_spec in completed_inputs:
raise(WorkflowException
("Unsupported looping behaviour: two threads waiting"
" on the same sequence flow.", task_spec=self))
completed_inputs.add(task.parent.task_spec) completed_inputs.add(task.parent.task_spec)
else: # Ignore predicted tasks; we don't care about anything not definite
elif task.parent._has_state(TaskState.READY | TaskState.FUTURE | TaskState.WAITING):
waiting_tasks.append(task.parent) waiting_tasks.append(task.parent)
return completed_inputs, waiting_tasks return completed_inputs, waiting_tasks
def _do_join(self, my_task): def _do_join(self, my_task):
# Copied from Join parent class split_task = self._get_split_task(my_task)
# This has some minor changes
# One Join spec may have multiple corresponding Task objects::
#
# - Due to the MultiInstance pattern.
# - Due to the ThreadSplit pattern.
#
# When using the MultiInstance pattern, we want to join across
# the resulting task instances. When using the ThreadSplit
# pattern, we only join within the same thread. (Both patterns
# may also be mixed.)
#
# We are looking for all task instances that must be joined.
# We limit our search by starting at the split point.
if self.split_task:
split_task = my_task.workflow.get_task_spec_from_name(
self.split_task)
split_task = my_task._find_ancestor(split_task)
else:
split_task = my_task.workflow.task_tree
# Identify all corresponding task instances within the thread. # Identify all corresponding task instances within the thread.
# Also remember which of those instances was most recently changed, # Also remember which of those instances was most recently changed,
@ -98,35 +57,25 @@ class UnstructuredJoin(Join, BpmnSpecMixin):
# Ignore tasks from other threads. # Ignore tasks from other threads.
if task.thread_id != my_task.thread_id: if task.thread_id != my_task.thread_id:
continue continue
# Ignore tasks from other subprocesses:
if task.workflow != my_task.workflow:
continue
# Ignore my outgoing branches. # Ignore my outgoing branches.
if task._is_descendant_of(my_task): if self.split_task and task._is_descendant_of(my_task):
continue continue
# Ignore completed tasks (this is for loop handling)
if task._is_finished():
continue
# For an inclusive join, this can happen - it's a future join # For an inclusive join, this can happen - it's a future join
if not task.parent._is_finished(): if not task.parent._is_finished():
continue continue
# We have found a matching instance. # We have found a matching instance.
thread_tasks.append(task) thread_tasks.append(task)
# Check whether the state of the instance was recently # Check whether the state of the instance was recently changed.
# changed.
changed = task.parent.last_state_change changed = task.parent.last_state_change
if last_changed is None\ if last_changed is None or changed > last_changed.parent.last_state_change:
or changed > last_changed.parent.last_state_change:
last_changed = task last_changed = task
# Update data from all the same thread tasks. # Update data from all the same thread tasks.
thread_tasks.sort(key=lambda t: t.parent.last_state_change) thread_tasks.sort(key=lambda t: t.parent.last_state_change)
collected_data = {}
for task in thread_tasks: for task in thread_tasks:
self.data.update(task.data) collected_data.update(task.data)
# Mark the identified task instances as COMPLETED. The exception # Mark the identified task instances as COMPLETED. The exception
# is the most recently changed task, for which we assume READY. # is the most recently changed task, for which we assume READY.
@ -135,26 +84,13 @@ class UnstructuredJoin(Join, BpmnSpecMixin):
# (re)built underneath the node. # (re)built underneath the node.
for task in thread_tasks: for task in thread_tasks:
if task == last_changed: if task == last_changed:
task.data.update(self.data) task.data.update(collected_data)
self.entered_event.emit(my_task.workflow, my_task) self.entered_event.emit(my_task.workflow, my_task)
task._ready() task._ready()
else: else:
task._set_state(TaskState.COMPLETED) task._set_state(TaskState.COMPLETED)
task._drop_children() task._drop_children()
def _update_hook(self, my_task):
if not my_task.parent._is_finished():
return
target_state = getattr(my_task, '_bpmn_load_target_state', None)
if target_state == TaskState.WAITING:
my_task._set_state(TaskState.WAITING)
return
super(UnstructuredJoin, self)._update_hook(my_task)
def task_should_set_children_future(self, my_task): def task_should_set_children_future(self, my_task):
return True return True

View File

@ -74,12 +74,10 @@ class _BoundaryEventParent(Simple, BpmnSpecMixin):
for child in my_task.children: for child in my_task.children:
if isinstance(child.task_spec, BoundaryEvent): if isinstance(child.task_spec, BoundaryEvent):
child.task_spec.event_definition.reset(child) child.task_spec.event_definition.reset(child)
child._set_state(TaskState.WAITING)
def _child_complete_hook(self, child_task): def _child_complete_hook(self, child_task):
# If the main child completes, or a cancelling event occurs, cancel any # If the main child completes, or a cancelling event occurs, cancel any unfinished children
# unfinished children
if child_task.task_spec == self.main_child_task_spec or child_task.task_spec.cancel_activity: if child_task.task_spec == self.main_child_task_spec or child_task.task_spec.cancel_activity:
for sibling in child_task.parent.children: for sibling in child_task.parent.children:
if sibling == child_task: if sibling == child_task:
@ -89,11 +87,6 @@ class _BoundaryEventParent(Simple, BpmnSpecMixin):
for t in child_task.workflow._get_waiting_tasks(): for t in child_task.workflow._get_waiting_tasks():
t.task_spec._update(t) t.task_spec._update(t)
# If our event is a cycle timer, we need to set it back to waiting so it can fire again
elif isinstance(child_task.task_spec.event_definition, CycleTimerEventDefinition):
child_task._set_state(TaskState.WAITING)
child_task.task_spec._update_hook(child_task)
def _predict_hook(self, my_task): def _predict_hook(self, my_task):
# Events attached to the main task might occur # Events attached to the main task might occur
@ -105,7 +98,6 @@ class _BoundaryEventParent(Simple, BpmnSpecMixin):
child._set_state(state) child._set_state(state)
class BoundaryEvent(CatchingEvent): class BoundaryEvent(CatchingEvent):
"""Task Spec for a bpmn:boundaryEvent node.""" """Task Spec for a bpmn:boundaryEvent node."""

View File

@ -40,3 +40,4 @@ class StartEvent(CatchingEvent):
my_task._set_state(TaskState.WAITING) my_task._set_state(TaskState.WAITING)
super(StartEvent, self).catch(my_task, event_definition) super(StartEvent, self).catch(my_task, event_definition)

View File

@ -17,11 +17,17 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA # 02110-1301 USA
import datetime import re
from datetime import datetime, timedelta, timezone
from calendar import monthrange
from time import timezone as tzoffset
from copy import deepcopy from copy import deepcopy
from SpiffWorkflow.task import TaskState from SpiffWorkflow.task import TaskState
LOCALTZ = timezone(timedelta(seconds=-1 * tzoffset))
class EventDefinition(object): class EventDefinition(object):
""" """
This is the base class for Event Definitions. It implements the default throw/catch This is the base class for Event Definitions. It implements the default throw/catch
@ -34,10 +40,6 @@ class EventDefinition(object):
and external flags. and external flags.
Default catch behavior is to set the event to fired Default catch behavior is to set the event to fired
""" """
# Format to use for specifying dates for time based events
TIME_FORMAT = '%Y-%m-%d %H:%M:%S.%f'
def __init__(self): def __init__(self):
# Ideally I'd mke these parameters, but I don't want to them to be parameters # Ideally I'd mke these parameters, but I don't want to them to be parameters
# for any subclasses (as they are based on event type, not user choice) and # for any subclasses (as they are based on event type, not user choice) and
@ -251,129 +253,218 @@ class TerminateEventDefinition(EventDefinition):
def event_type(self): def event_type(self):
return 'Terminate' return 'Terminate'
class TimerEventDefinition(EventDefinition):
"""
The TimerEventDefinition is the implementation of event definition used for
Catching Timer Events (Timer events aren't thrown).
"""
def __init__(self, label, dateTime): class TimerEventDefinition(EventDefinition):
def __init__(self, name, expression):
""" """
Constructor. Constructor.
:param label: The label of the event. Used for the description. :param name: The description of the timer.
:param dateTime: The dateTime expression for the expiry time. This is :param expression: An ISO 8601 datetime or interval expression.
passed to the Script Engine and must evaluate to a datetime (in the case of
a time-date event) or a timedelta (in the case of a duration event).
""" """
super(TimerEventDefinition, self).__init__() super().__init__()
self.label = label self.name = name
self.dateTime = dateTime self.expression = expression
@staticmethod
def get_datetime(expression):
dt = datetime.fromisoformat(expression)
if dt.tzinfo is None:
dt = datetime.combine(dt.date(), dt.time(), LOCALTZ)
return dt.astimezone(timezone.utc)
@staticmethod
def get_timedelta_from_start(parsed_duration, start=None):
start = start or datetime.now(timezone.utc)
years, months, days = parsed_duration.pop('years', 0), parsed_duration.pop('months', 0), parsed_duration.pop('days', 0)
months += years * 12
for idx in range(int(months)):
year, month = start.year + idx // 12, start.month + idx % 12
days += monthrange(year, month)[1]
year, month = start.year + months // 12, start.month + months % 12
days += (months - int(months)) * monthrange(year, month)[1]
parsed_duration['days'] = days
return timedelta(**parsed_duration)
@staticmethod
def get_timedelta_from_end(parsed_duration, end):
years, months, days = parsed_duration.pop('years', 0), parsed_duration.pop('months', 0), parsed_duration.pop('days', 0)
months += years * 12
for idx in range(1, int(months) + 1):
year = end.year - (1 + (idx - end.month) // 12)
month = 1 + (end.month - idx - 1) % 12
days += monthrange(year, month)[1]
days += (months - int(months)) * monthrange(
end.year - (1 + (int(months)- end.month) // 12),
1 + (end.month - months - 1) % 12)[1]
parsed_duration['days'] = days
return timedelta(**parsed_duration)
@staticmethod
def parse_iso_duration(expression):
# Based on https://en.wikipedia.org/wiki/ISO_8601#Time_intervals
parsed, expr_t, current = {}, False, expression.lower().strip('p').replace(',', '.')
for designator in ['years', 'months', 'weeks', 'days', 't', 'hours', 'minutes', 'seconds']:
value = current.split(designator[0], 1)
if len(value) == 2:
duration, remainder = value
if duration.isdigit():
parsed[designator] = int(duration)
elif duration.replace('.', '').isdigit() and not remainder:
parsed[designator] = float(duration)
if designator in parsed or designator == 't':
current = remainder
if designator == 't':
expr_t = True
date_specs, time_specs = ['years', 'months', 'days'], ['hours', 'minutes', 'seconds']
parsed_t = len([d for d in parsed if d in time_specs]) > 0
if len(current) or parsed_t != expr_t or ('weeks' in parsed and any(v for v in parsed if v in date_specs)):
raise Exception('Invalid duration')
# The actual timedelta will have to be computed based on a start or end date, to account for
# months lengths, leap days, etc. This returns a dict of the parsed elements
return parsed
@staticmethod
def parse_iso_week(expression):
# https://en.wikipedia.org/wiki/ISO_8601#Week_dates
m = re.match('(\d{4})W(\d{2})(\d)(T.+)?', expression.upper().replace('-', ''))
year, month, day, ts = m.groups()
ds = datetime.fromisocalendar(int(year), int(month), int(day)).strftime('%Y-%m-%d')
return TimerEventDefinition.get_datetime(ds + (ts or ''))
@staticmethod
def parse_time_or_duration(expression):
if expression.upper().startswith('P'):
return TimerEventDefinition.parse_iso_duration(expression)
elif 'W' in expression.upper():
return TimerEventDefinition.parse_iso_week(expression)
else:
return TimerEventDefinition.get_datetime(expression)
@staticmethod
def parse_iso_recurring_interval(expression):
components = expression.upper().replace('--', '/').strip('R').split('/')
cycles = int(components[0]) if components[0] else -1
start_or_duration = TimerEventDefinition.parse_time_or_duration(components[1])
if len(components) == 3:
end_or_duration = TimerEventDefinition.parse_time_or_duration(components[2])
else:
end_or_duration = None
if isinstance(start_or_duration, datetime):
# Start time + interval duration
start = start_or_duration
duration = TimerEventDefinition.get_timedelta_from_start(end_or_duration, start_or_duration)
elif isinstance(end_or_duration, datetime):
# End time + interval duration
duration = TimerEventDefinition.get_timedelta_from_end(start_or_duration, end_or_duration)
start = end_or_duration - duration
elif end_or_duration is None:
# Just an interval duration, assume a start time of now
start = datetime.now(timezone.utc)
duration = TimeDateEventDefinition.get_timedelta_from_start(start_or_duration, start)
else:
raise Exception("Invalid recurring interval")
return cycles, start, duration
def __eq__(self, other):
return self.__class__.__name__ == other.__class__.__name__ and self.name == other.name
class TimeDateEventDefinition(TimerEventDefinition):
"""A Timer event represented by a specific date/time."""
@property @property
def event_type(self): def event_type(self):
return 'Timer' return 'Time Date Timer'
def has_fired(self, my_task): def has_fired(self, my_task):
""" event_value = my_task._get_internal_data('event_value')
The Timer is considered to have fired if the evaluated dateTime if event_value is None:
expression is before datetime.datetime.now() event_value = my_task.workflow.script_engine.evaluate(my_task, self.expression)
""" my_task._set_internal_data(event_value=event_value)
if TimerEventDefinition.parse_time_or_duration(event_value) < datetime.now(timezone.utc):
my_task._set_internal_data(event_fired=True)
return my_task._get_internal_data('event_fired', False)
if my_task.internal_data.get('event_fired'): def timer_value(self, my_task):
# If we manually send this event, this will be set return my_task._get_internal_data('event_value')
return True
dt = my_task.workflow.script_engine.evaluate(my_task, self.dateTime)
if isinstance(dt,datetime.timedelta):
if my_task._get_internal_data('start_time',None) is not None:
start_time = datetime.datetime.strptime(my_task._get_internal_data('start_time',None), self.TIME_FORMAT)
elapsed = datetime.datetime.now() - start_time
return elapsed > dt
else:
my_task.internal_data['start_time'] = datetime.datetime.now().strftime(self.TIME_FORMAT)
return False
if dt is None:
return False
if isinstance(dt, datetime.datetime):
if dt.tzinfo:
tz = dt.tzinfo
now = tz.fromutc(datetime.datetime.utcnow().replace(tzinfo=tz))
else:
now = datetime.datetime.now()
else:
# assume type is a date, not datetime
now = datetime.date.today()
return now > dt
def __eq__(self, other):
return self.__class__.__name__ == other.__class__.__name__ and self.label == other.label
class CycleTimerEventDefinition(EventDefinition): class DurationTimerEventDefinition(TimerEventDefinition):
""" """A timer event represented by a duration"""
The TimerEventDefinition is the implementation of event definition used for
Catching Timer Events (Timer events aren't thrown).
The cycle definition should evaluate to a tuple of @property
(n repetitions, repetition duration) def event_type(self):
""" return 'Duration Timer'
def __init__(self, label, cycle_definition):
super(CycleTimerEventDefinition, self).__init__() def has_fired(self, my_task):
self.label = label event_value = my_task._get_internal_data("event_value")
# The way we're using cycle timers doesn't really align with how the BPMN spec if event_value is None:
# describes is (the example of "every monday at 9am") expression = my_task.workflow.script_engine.evaluate(my_task, self.expression)
# I am not sure why this isn't a subprocess with a repeat count that starts parsed_duration = TimerEventDefinition.parse_iso_duration(expression)
# with a duration timer event_value = (datetime.now(timezone.utc) + TimerEventDefinition.get_timedelta_from_start(parsed_duration)).isoformat()
self.cycle_definition = cycle_definition my_task._set_internal_data(event_value=event_value)
if TimerEventDefinition.get_datetime(event_value) < datetime.now(timezone.utc):
my_task._set_internal_data(event_fired=True)
return my_task._get_internal_data('event_fired', False)
def timer_value(self, my_task):
return my_task._get_internal_data("event_value")
class CycleTimerEventDefinition(TimerEventDefinition):
@property @property
def event_type(self): def event_type(self):
return 'Cycle Timer' return 'Cycle Timer'
def has_fired(self, my_task): def has_fired(self, my_task):
# We will fire this timer whenever a cycle completes
# The task itself will manage counting how many times it fires
if my_task.internal_data.get('event_fired'): if not my_task._get_internal_data('event_fired'):
# If we manually send this event, this will be set # Only check for the next cycle when the event has not fired to prevent cycles from being skipped.
event_value = my_task._get_internal_data('event_value')
if event_value is None:
expression = my_task.workflow.script_engine.evaluate(my_task, self.expression)
cycles, start, duration = TimerEventDefinition.parse_iso_recurring_interval(expression)
event_value = {'cycles': cycles, 'next': start.isoformat(), 'duration': duration.total_seconds()}
if event_value['cycles'] > 0:
next_event = datetime.fromisoformat(event_value['next'])
if next_event < datetime.now(timezone.utc):
my_task._set_internal_data(event_fired=True)
event_value['next'] = (next_event + timedelta(seconds=event_value['duration'])).isoformat()
my_task._set_internal_data(event_value=event_value)
return my_task._get_internal_data('event_fired', False)
def timer_value(self, my_task):
event_value = my_task._get_internal_data('event_value')
if event_value is not None and event_value['cycles'] > 0:
return event_value['next']
def complete(self, my_task):
event_value = my_task._get_internal_data('event_value')
if event_value is not None and event_value['cycles'] == 0:
my_task.internal_data.pop('event_value')
return True return True
repeat, delta = my_task.workflow.script_engine.evaluate(my_task, self.cycle_definition) def complete_cycle(self, my_task):
# Only increment when the task completes
# This is the first time we've entered this event if my_task._get_internal_data('event_value') is not None:
if my_task.internal_data.get('repeat') is None: my_task.internal_data['event_value']['cycles'] -= 1
my_task.internal_data['repeat'] = repeat
if my_task.get_data('repeat_count') is None:
# This is now a looping task, and if we use internal data, the repeat count won't persist
my_task.set_data(repeat_count=0)
now = datetime.datetime.now()
if my_task._get_internal_data('start_time') is None:
start_time = now
my_task.internal_data['start_time'] = now.strftime(self.TIME_FORMAT)
else:
start_time = datetime.datetime.strptime(my_task._get_internal_data('start_time'),self.TIME_FORMAT)
if my_task.get_data('repeat_count') >= repeat or (now - start_time) < delta:
return False
return True
def reset(self, my_task):
repeat_count = my_task.get_data('repeat_count')
if repeat_count is None:
# If this is a boundary event, then repeat count will not have been set
my_task.set_data(repeat_count=0)
else:
my_task.set_data(repeat_count=repeat_count + 1)
my_task.internal_data['start_time'] = None
super(CycleTimerEventDefinition, self).reset(my_task)
def __eq__(self, other):
return self.__class__.__name__ == other.__class__.__name__ and self.label == other.label
class MultipleEventDefinition(EventDefinition): class MultipleEventDefinition(EventDefinition):

View File

@ -17,7 +17,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA # 02110-1301 USA
from .event_definitions import MessageEventDefinition, NoneEventDefinition from .event_definitions import MessageEventDefinition, NoneEventDefinition, CycleTimerEventDefinition
from ..BpmnSpecMixin import BpmnSpecMixin from ..BpmnSpecMixin import BpmnSpecMixin
from ....specs.Simple import Simple from ....specs.Simple import Simple
from ....task import TaskState from ....task import TaskState
@ -69,6 +69,12 @@ class CatchingEvent(Simple, BpmnSpecMixin):
if isinstance(self.event_definition, MessageEventDefinition): if isinstance(self.event_definition, MessageEventDefinition):
self.event_definition.update_task_data(my_task) self.event_definition.update_task_data(my_task)
elif isinstance(self.event_definition, CycleTimerEventDefinition):
self.event_definition.complete_cycle(my_task)
if not self.event_definition.complete(my_task):
for output in self.outputs:
my_task._add_child(output)
my_task._set_state(TaskState.WAITING)
self.event_definition.reset(my_task) self.event_definition.reset(my_task)
super(CatchingEvent, self)._on_complete_hook(my_task) super(CatchingEvent, self)._on_complete_hook(my_task)

View File

@ -16,7 +16,12 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA # 02110-1301 USA
from SpiffWorkflow.bpmn.specs.events.event_definitions import MessageEventDefinition, MultipleEventDefinition from SpiffWorkflow.bpmn.specs.events.event_definitions import (
MessageEventDefinition,
MultipleEventDefinition,
NamedEventDefinition,
TimerEventDefinition,
)
from .PythonScriptEngine import PythonScriptEngine from .PythonScriptEngine import PythonScriptEngine
from .specs.events.event_types import CatchingEvent from .specs.events.event_types import CatchingEvent
from .specs.events.StartEvent import StartEvent from .specs.events.StartEvent import StartEvent
@ -155,9 +160,21 @@ class BpmnWorkflow(Workflow):
event_definition.payload = payload event_definition.payload = payload
self.catch(event_definition, correlations=correlations) self.catch(event_definition, correlations=correlations)
def do_engine_steps(self, exit_at = None, def waiting_events(self):
will_complete_task=None, # Ultimately I'd like to add an event class so that EventDefinitions would not so double duty as both specs
did_complete_task=None): # and instantiations, and this method would return that. However, I think that's beyond the scope of the
# current request.
events = []
for task in [t for t in self.get_waiting_tasks() if isinstance(t.task_spec, CatchingEvent)]:
event_definition = task.task_spec.event_definition
events.append({
'event_type': event_definition.event_type,
'name': event_definition.name if isinstance(event_definition, NamedEventDefinition) else None,
'value': event_definition.timer_value(task) if isinstance(event_definition, TimerEventDefinition) else None,
})
return events
def do_engine_steps(self, exit_at = None, will_complete_task=None, did_complete_task=None):
""" """
Execute any READY tasks that are engine specific (for example, gateways Execute any READY tasks that are engine specific (for example, gateways
or script tasks). This is done in a loop, so it will keep completing or script tasks). This is done in a loop, so it will keep completing
@ -168,9 +185,7 @@ class BpmnWorkflow(Workflow):
:param will_complete_task: Callback that will be called prior to completing a task :param will_complete_task: Callback that will be called prior to completing a task
:param did_complete_task: Callback that will be called after completing a task :param did_complete_task: Callback that will be called after completing a task
""" """
engine_steps = list( engine_steps = list([t for t in self.get_tasks(TaskState.READY) if self._is_engine_task(t.task_spec)])
[t for t in self.get_tasks(TaskState.READY)
if self._is_engine_task(t.task_spec)])
while engine_steps: while engine_steps:
for task in engine_steps: for task in engine_steps:
if will_complete_task is not None: if will_complete_task is not None:
@ -180,9 +195,7 @@ class BpmnWorkflow(Workflow):
did_complete_task(task) did_complete_task(task)
if task.task_spec.name == exit_at: if task.task_spec.name == exit_at:
return task return task
engine_steps = list( engine_steps = list([t for t in self.get_tasks(TaskState.READY) if self._is_engine_task(t.task_spec)])
[t for t in self.get_tasks(TaskState.READY)
if self._is_engine_task(t.task_spec)])
def refresh_waiting_tasks(self, def refresh_waiting_tasks(self,
will_refresh_task=None, will_refresh_task=None,
@ -255,6 +268,3 @@ class BpmnWorkflow(Workflow):
def _is_engine_task(self, task_spec): def _is_engine_task(self, task_spec):
return (not hasattr(task_spec, 'is_engine_task') or task_spec.is_engine_task()) return (not hasattr(task_spec, 'is_engine_task') or task_spec.is_engine_task())
def _task_completed_notify(self, task):
super(BpmnWorkflow, self)._task_completed_notify(task)

View File

@ -53,16 +53,11 @@ class ExclusiveChoice(MultiChoice):
:param task_spec: The following task spec. :param task_spec: The following task spec.
""" """
assert self.default_task_spec is None assert self.default_task_spec is None
self.outputs.append(task_spec)
self.default_task_spec = task_spec.name self.default_task_spec = task_spec.name
task_spec._connect_notify(self) super().connect(task_spec)
def test(self): def test(self):
""" super().test()
Checks whether all required attributes are set. Throws an exception
if an error was detected.
"""
MultiChoice.test(self)
if self.default_task_spec is None: if self.default_task_spec is None:
raise WorkflowException('A default output is required.', task_spec=self) raise WorkflowException('A default output is required.', task_spec=self)
@ -76,10 +71,10 @@ class ExclusiveChoice(MultiChoice):
my_task._set_likely_task(spec) my_task._set_likely_task(spec)
def _on_complete_hook(self, my_task): def _on_complete_hook(self, my_task):
# Find the first matching condition.
output = self._wf_spec.get_task_spec_from_name(self.default_task_spec) output = self._wf_spec.get_task_spec_from_name(self.default_task_spec)
for condition, spec_name in self.cond_task_specs: for condition, spec_name in self.cond_task_specs:
if condition is None or condition._matches(my_task): if condition is not None and condition._matches(my_task):
output = self._wf_spec.get_task_spec_from_name(spec_name) output = self._wf_spec.get_task_spec_from_name(spec_name)
break break

View File

@ -125,6 +125,26 @@ class Join(TaskSpec):
return True return True
return False return False
def _get_split_task(self, my_task):
# One Join spec may have multiple corresponding Task objects::
#
# - Due to the MultiInstance pattern.
# - Due to the ThreadSplit pattern.
#
# When using the MultiInstance pattern, we want to join across
# the resulting task instances. When using the ThreadSplit
# pattern, we only join within the same thread. (Both patterns
# may also be mixed.)
#
# We are looking for all task instances that must be joined.
# We limit our search by starting at the split point.
if self.split_task:
task_spec = my_task.workflow.get_task_spec_from_name(self.split_task)
split_task = my_task._find_ancestor(task_spec)
else:
split_task = my_task.workflow.task_tree
return split_task
def _check_threshold_unstructured(self, my_task, force=False): def _check_threshold_unstructured(self, my_task, force=False):
# The default threshold is the number of inputs. # The default threshold is the number of inputs.
threshold = valueof(my_task, self.threshold) threshold = valueof(my_task, self.threshold)
@ -168,7 +188,6 @@ class Join(TaskSpec):
for task in tasks: for task in tasks:
# Refresh path prediction. # Refresh path prediction.
task.task_spec._predict(task) task.task_spec._predict(task)
if not self._branch_may_merge_at(task): if not self._branch_may_merge_at(task):
completed += 1 completed += 1
elif self._branch_is_complete(task): elif self._branch_is_complete(task):
@ -219,24 +238,8 @@ class Join(TaskSpec):
self._do_join(my_task) self._do_join(my_task)
def _do_join(self, my_task): def _do_join(self, my_task):
# One Join spec may have multiple corresponding Task objects::
# split_task = self._get_split_task(my_task)
# - Due to the MultiInstance pattern.
# - Due to the ThreadSplit pattern.
#
# When using the MultiInstance pattern, we want to join across
# the resulting task instances. When using the ThreadSplit
# pattern, we only join within the same thread. (Both patterns
# may also be mixed.)
#
# We are looking for all task instances that must be joined.
# We limit our search by starting at the split point.
if self.split_task:
split_task = my_task.workflow.get_task_spec_from_name(
self.split_task)
split_task = my_task._find_ancestor(split_task)
else:
split_task = my_task.workflow.task_tree
# Identify all corresponding task instances within the thread. # Identify all corresponding task instances within the thread.
# Also remember which of those instances was most recently changed, # Also remember which of those instances was most recently changed,
@ -259,8 +262,7 @@ class Join(TaskSpec):
# Check whether the state of the instance was recently # Check whether the state of the instance was recently
# changed. # changed.
changed = task.parent.last_state_change changed = task.parent.last_state_change
if last_changed is None \ if last_changed is None or changed > last_changed.parent.last_state_change:
or changed > last_changed.parent.last_state_change:
last_changed = task last_changed = task
# Mark the identified task instances as COMPLETED. The exception # Mark the identified task instances as COMPLETED. The exception
@ -276,8 +278,6 @@ class Join(TaskSpec):
task._set_state(TaskState.COMPLETED) task._set_state(TaskState.COMPLETED)
task._drop_children() task._drop_children()
def _on_trigger(self, my_task): def _on_trigger(self, my_task):
""" """
May be called to fire the Join before the incoming branches are May be called to fire the Join before the incoming branches are

View File

@ -116,24 +116,21 @@ class MultiChoice(TaskSpec):
if child.task_spec in outputs: if child.task_spec in outputs:
child._set_state(best_state) child._set_state(best_state)
def _get_matching_outputs(self, my_task):
outputs = []
for condition, output in self.cond_task_specs:
if self.choice is not None and output not in self.choice:
continue
if condition is None or condition._matches(my_task):
outputs.append(self._wf_spec.get_task_spec_from_name(output))
return outputs
def _on_complete_hook(self, my_task): def _on_complete_hook(self, my_task):
""" """
Runs the task. Should not be called directly. Runs the task. Should not be called directly.
Returns True if completed, False otherwise. Returns True if completed, False otherwise.
""" """
# Find all matching conditions. my_task._sync_children(self._get_matching_outputs(my_task), TaskState.FUTURE)
outputs = []
for condition, output in self.cond_task_specs:
if self.choice is not None and output not in self.choice:
continue
if condition is None:
outputs.append(self._wf_spec.get_task_spec_from_name(output))
continue
if not condition._matches(my_task):
continue
outputs.append(self._wf_spec.get_task_spec_from_name(output))
my_task._sync_children(outputs, TaskState.FUTURE)
def serialize(self, serializer): def serialize(self, serializer):
return serializer.serialize_multi_choice(self) return serializer.serialize_multi_choice(self)

View File

@ -3,7 +3,8 @@
from SpiffWorkflow.bpmn.specs.ExclusiveGateway import ExclusiveGateway from SpiffWorkflow.bpmn.specs.ExclusiveGateway import ExclusiveGateway
from SpiffWorkflow.bpmn.specs.UserTask import UserTask from SpiffWorkflow.bpmn.specs.UserTask import UserTask
from SpiffWorkflow.bpmn.parser.BpmnParser import BpmnParser from SpiffWorkflow.bpmn.parser.BpmnParser import BpmnParser
from SpiffWorkflow.bpmn.parser.task_parsers import ExclusiveGatewayParser, UserTaskParser from SpiffWorkflow.bpmn.parser.TaskParser import TaskParser
from SpiffWorkflow.bpmn.parser.task_parsers import ConditionalGatewayParser
from SpiffWorkflow.bpmn.parser.util import full_tag from SpiffWorkflow.bpmn.parser.util import full_tag
from SpiffWorkflow.bpmn.serializer.bpmn_converters import BpmnTaskSpecConverter from SpiffWorkflow.bpmn.serializer.bpmn_converters import BpmnTaskSpecConverter
@ -38,7 +39,7 @@ class TestUserTask(UserTask):
def deserialize(self, serializer, wf_spec, s_state): def deserialize(self, serializer, wf_spec, s_state):
return serializer.deserialize_generic(wf_spec, s_state, TestUserTask) return serializer.deserialize_generic(wf_spec, s_state, TestUserTask)
class TestExclusiveGatewayParser(ExclusiveGatewayParser): class TestExclusiveGatewayParser(ConditionalGatewayParser):
def parse_condition(self, sequence_flow_node): def parse_condition(self, sequence_flow_node):
cond = super().parse_condition(sequence_flow_node) cond = super().parse_condition(sequence_flow_node)
@ -62,7 +63,7 @@ class TestUserTaskConverter(BpmnTaskSpecConverter):
class TestBpmnParser(BpmnParser): class TestBpmnParser(BpmnParser):
OVERRIDE_PARSER_CLASSES = { OVERRIDE_PARSER_CLASSES = {
full_tag('userTask'): (UserTaskParser, TestUserTask), full_tag('userTask'): (TaskParser, TestUserTask),
full_tag('exclusiveGateway'): (TestExclusiveGatewayParser, ExclusiveGateway), full_tag('exclusiveGateway'): (TestExclusiveGatewayParser, ExclusiveGateway),
full_tag('callActivity'): (CallActivityParser, CallActivity) full_tag('callActivity'): (CallActivityParser, CallActivity)
} }

View File

@ -25,7 +25,10 @@ class CallActivityDataTest(BpmnWorkflowTestCase):
with self.assertRaises(WorkflowDataException) as exc: with self.assertRaises(WorkflowDataException) as exc:
self.advance_to_subprocess() self.advance_to_subprocess()
self.assertEqual(exc.var.name,'in_2') self.assertEqual("'in_2' was not found in the task data. "
"You are missing a required Data Input for a call activity.",
str(exc.exception))
self.assertEqual(exc.exception.data_input.name,'in_2')
def testCallActivityMissingOutput(self): def testCallActivityMissingOutput(self):
@ -40,7 +43,10 @@ class CallActivityDataTest(BpmnWorkflowTestCase):
with self.assertRaises(WorkflowDataException) as exc: with self.assertRaises(WorkflowDataException) as exc:
self.complete_subprocess() self.complete_subprocess()
self.assertEqual(exc.var.name,'out_2')
self.assertEqual("'out_2' was not found in the task data. A Data Output was not provided as promised.",
str(exc.exception))
self.assertEqual(exc.exception.data_output.name,'out_2')
def actual_test(self, save_restore=False): def actual_test(self, save_restore=False):

View File

@ -0,0 +1,39 @@
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from SpiffWorkflow.exceptions import WorkflowTaskException
from .BpmnWorkflowTestCase import BpmnWorkflowTestCase
class InclusiveGatewayTest(BpmnWorkflowTestCase):
def setUp(self):
spec, subprocess = self.load_workflow_spec('inclusive_gateway.bpmn', 'main')
self.workflow = BpmnWorkflow(spec)
self.workflow.do_engine_steps()
def testDefaultConditionOnly(self):
self.set_data({'v': -1, 'u': -1, 'w': -1})
self.workflow.do_engine_steps()
self.assertTrue(self.workflow.is_completed())
self.assertDictEqual(self.workflow.data, {'v': 0, 'u': -1, 'w': -1})
def testDefaultConditionOnlySaveRestore(self):
self.set_data({'v': -1, 'u': -1, 'w': -1})
self.save_restore()
self.workflow.do_engine_steps()
self.assertTrue(self.workflow.is_completed())
self.assertDictEqual(self.workflow.data, {'v': 0, 'u': -1, 'w': -1})
def testNoPathFromSecondGateway(self):
self.set_data({'v': 0, 'u': -1, 'w': -1})
self.assertRaises(WorkflowTaskException, self.workflow.do_engine_steps)
def testParallelCondition(self):
self.set_data({'v': 0, 'u': 1, 'w': 1})
self.workflow.do_engine_steps()
self.assertTrue(self.workflow.is_completed())
self.assertDictEqual(self.workflow.data, {'v': 0, 'u': 1, 'w': 1})
def set_data(self, value):
task = self.workflow.get_ready_user_tasks()[0]
task.data = value
task.complete()

View File

@ -5,7 +5,6 @@ import datetime
import time import time
from SpiffWorkflow.task import TaskState from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
__author__ = 'kellym' __author__ = 'kellym'
@ -16,9 +15,8 @@ class NITimerDurationTest(BpmnWorkflowTestCase):
Non-Interrupting Timer boundary test Non-Interrupting Timer boundary test
""" """
def setUp(self): def setUp(self):
self.script_engine = PythonScriptEngine(default_globals={"timedelta": datetime.timedelta})
spec, subprocesses = self.load_workflow_spec('timer-non-interrupt-boundary.bpmn', 'NonInterruptTimer') spec, subprocesses = self.load_workflow_spec('timer-non-interrupt-boundary.bpmn', 'NonInterruptTimer')
self.workflow = BpmnWorkflow(spec, subprocesses, script_engine=self.script_engine) self.workflow = BpmnWorkflow(spec, subprocesses)
def load_spec(self): def load_spec(self):
return return
@ -31,57 +29,44 @@ class NITimerDurationTest(BpmnWorkflowTestCase):
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks))
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_tasks(TaskState.READY) ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) event = self.workflow.get_tasks_from_spec_name('Event_0jyy8ao')[0]
ready_tasks[0].data['work_done'] = 'No' self.assertEqual(event.state, TaskState.WAITING)
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps()
loopcount = 0 loopcount = 0
# test bpmn has a timeout of .25s
# we should terminate loop before that.
starttime = datetime.datetime.now() starttime = datetime.datetime.now()
while loopcount < 10: # test bpmn has a timeout of .2s; we should terminate loop before that.
ready_tasks = self.workflow.get_tasks(TaskState.READY) # The subprocess will also wait
if len(ready_tasks) > 1: while len(self.workflow.get_waiting_tasks()) == 2 and loopcount < 10:
break
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = self.script_engine
#self.assertEqual(1, len(self.workflow.get_tasks(Task.WAITING)))
time.sleep(0.1) time.sleep(0.1)
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps()
loopcount = loopcount +1
endtime = datetime.datetime.now()
duration = endtime-starttime
# appropriate time here is .5 seconds
# due to the .3 seconds that we loop and then
# the two conditions that we complete after the timer completes.
self.assertEqual(duration<datetime.timedelta(seconds=.5),True)
self.assertEqual(duration>datetime.timedelta(seconds=.2),True)
for task in ready_tasks:
if task.task_spec == 'GetReason':
task.data['delay_reason'] = 'Just Because'
else:
task.data['work_done'] = 'Yes'
self.workflow.complete_task_from_id(task.id)
self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_tasks(TaskState.READY) ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) # There should be one ready task until the boundary event fires
ready_tasks[0].data['experience'] = 'Great!' self.assertEqual(len(self.workflow.get_ready_user_tasks()), 1)
self.workflow.complete_task_from_id(ready_tasks[0].id) self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps()
loopcount += 1
endtime = datetime.datetime.now()
duration = endtime - starttime
# appropriate time here is .5 seconds due to the .3 seconds that we loop and then
self.assertEqual(duration < datetime.timedelta(seconds=.5), True)
self.assertEqual(duration > datetime.timedelta(seconds=.2), True)
ready_tasks = self.workflow.get_ready_user_tasks()
# Now there should be two.
self.assertEqual(len(ready_tasks), 2)
for task in ready_tasks:
if task.task_spec.name == 'GetReason':
task.data['delay_reason'] = 'Just Because'
elif task.task_spec.name == 'Activity_Work':
task.data['work_done'] = 'Yes'
task.complete()
self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
self.assertEqual(self.workflow.is_completed(),True) self.assertEqual(self.workflow.is_completed(),True)
self.assertEqual(self.workflow.last_task.data,{'work_done': 'Yes', 'experience': 'Great!'}) self.assertEqual(self.workflow.last_task.data, {'work_done': 'Yes', 'delay_reason': 'Just Because'})
print (self.workflow.last_task.data)
print(duration)
def suite(): def suite():

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17fwemw" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_17fwemw" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="MultiInstance" isExecutable="true"> <bpmn:process id="MultiInstance" isExecutable="true">
<bpmn:startEvent id="StartEvent_1" name="StartEvent_1"> <bpmn:startEvent id="StartEvent_1" name="StartEvent_1">
<bpmn:outgoing>Flow_0t6p1sb</bpmn:outgoing> <bpmn:outgoing>Flow_0t6p1sb</bpmn:outgoing>
@ -40,7 +40,7 @@
<bpmn:incoming>Flow_1dah8xt</bpmn:incoming> <bpmn:incoming>Flow_1dah8xt</bpmn:incoming>
<bpmn:outgoing>Flow_0io0g18</bpmn:outgoing> <bpmn:outgoing>Flow_0io0g18</bpmn:outgoing>
</bpmn:manualTask> </bpmn:manualTask>
<bpmn:exclusiveGateway id="Gateway_1cn7vsp"> <bpmn:exclusiveGateway id="Gateway_1cn7vsp" default="Flow_1sx7n9u">
<bpmn:incoming>Flow_0io0g18</bpmn:incoming> <bpmn:incoming>Flow_0io0g18</bpmn:incoming>
<bpmn:incoming>Flow_0i1bv5g</bpmn:incoming> <bpmn:incoming>Flow_0i1bv5g</bpmn:incoming>
<bpmn:outgoing>Flow_1sx7n9u</bpmn:outgoing> <bpmn:outgoing>Flow_1sx7n9u</bpmn:outgoing>
@ -52,85 +52,6 @@
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MultiInstance"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="MultiInstance">
<bpmndi:BPMNEdge id="Flow_0ugjw69_di" bpmnElement="Flow_0ugjw69">
<di:waypoint x="810" y="117" />
<di:waypoint x="912" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0t6p1sb_di" bpmnElement="Flow_0t6p1sb">
<di:waypoint x="208" y="117" />
<di:waypoint x="230" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_1g0pmib_di" bpmnElement="Event_End">
<dc:Bounds x="912" y="99" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="903" y="75" width="54" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="172" y="99" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="159" y="142" width="64" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1iyilui_di" bpmnElement="Activity_Loop">
<dc:Bounds x="710" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_088tnzu_di" bpmnElement="Activity_088tnzu">
<dc:Bounds x="230" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0ds4mp0_di" bpmnElement="Flow_0ds4mp0">
<di:waypoint x="330" y="117" />
<di:waypoint x="345" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Gateway_07go3pk_di" bpmnElement="Gateway_07go3pk" isMarkerVisible="true">
<dc:Bounds x="615" y="92" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="602" y="62" width="78" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1oo4mpj_di" bpmnElement="Flow_1oo4mpj">
<di:waypoint x="640" y="142" />
<di:waypoint x="640" y="330" />
<di:waypoint x="930" y="330" />
<di:waypoint x="930" y="135" />
<bpmndi:BPMNLabel>
<dc:Bounds x="745" y="312" width="80" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0u92n7b_di" bpmnElement="Flow_0u92n7b">
<di:waypoint x="665" y="117" />
<di:waypoint x="710" y="117" />
<bpmndi:BPMNLabel>
<dc:Bounds x="670" y="99" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0io0g18_di" bpmnElement="Flow_0io0g18">
<di:waypoint x="530" y="117" />
<di:waypoint x="535" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Gateway_08wnx3s_di" bpmnElement="Gateway_08wnx3s" isMarkerVisible="true">
<dc:Bounds x="345" y="92" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="341" y="62" width="58" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1dah8xt_di" bpmnElement="Flow_1dah8xt">
<di:waypoint x="395" y="117" />
<di:waypoint x="430" y="117" />
<bpmndi:BPMNLabel>
<dc:Bounds x="395" y="99" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_0ow7pu7_di" bpmnElement="Activity_0flre28">
<dc:Bounds x="430" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1cn7vsp_di" bpmnElement="Gateway_1cn7vsp" isMarkerVisible="true">
<dc:Bounds x="535" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1sx7n9u_di" bpmnElement="Flow_1sx7n9u">
<di:waypoint x="585" y="117" />
<di:waypoint x="615" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0i1bv5g_di" bpmnElement="Flow_0i1bv5g"> <bpmndi:BPMNEdge id="Flow_0i1bv5g_di" bpmnElement="Flow_0i1bv5g">
<di:waypoint x="370" y="142" /> <di:waypoint x="370" y="142" />
<di:waypoint x="370" y="280" /> <di:waypoint x="370" y="280" />
@ -140,6 +61,85 @@
<dc:Bounds x="448" y="262" width="34" height="14" /> <dc:Bounds x="448" y="262" width="34" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1sx7n9u_di" bpmnElement="Flow_1sx7n9u">
<di:waypoint x="585" y="117" />
<di:waypoint x="615" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dah8xt_di" bpmnElement="Flow_1dah8xt">
<di:waypoint x="395" y="117" />
<di:waypoint x="430" y="117" />
<bpmndi:BPMNLabel>
<dc:Bounds x="395" y="99" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0io0g18_di" bpmnElement="Flow_0io0g18">
<di:waypoint x="530" y="117" />
<di:waypoint x="535" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0u92n7b_di" bpmnElement="Flow_0u92n7b">
<di:waypoint x="665" y="117" />
<di:waypoint x="710" y="117" />
<bpmndi:BPMNLabel>
<dc:Bounds x="670" y="99" width="35" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1oo4mpj_di" bpmnElement="Flow_1oo4mpj">
<di:waypoint x="640" y="142" />
<di:waypoint x="640" y="330" />
<di:waypoint x="930" y="330" />
<di:waypoint x="930" y="135" />
<bpmndi:BPMNLabel>
<dc:Bounds x="745" y="312" width="80" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ds4mp0_di" bpmnElement="Flow_0ds4mp0">
<di:waypoint x="330" y="117" />
<di:waypoint x="345" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ugjw69_di" bpmnElement="Flow_0ugjw69">
<di:waypoint x="810" y="117" />
<di:waypoint x="912" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0t6p1sb_di" bpmnElement="Flow_0t6p1sb">
<di:waypoint x="208" y="117" />
<di:waypoint x="230" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="172" y="99" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="159" y="142" width="64" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1g0pmib_di" bpmnElement="Event_End">
<dc:Bounds x="912" y="99" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="903" y="75" width="54" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1iyilui_di" bpmnElement="Activity_Loop">
<dc:Bounds x="710" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_088tnzu_di" bpmnElement="Activity_088tnzu">
<dc:Bounds x="230" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_07go3pk_di" bpmnElement="Gateway_07go3pk" isMarkerVisible="true">
<dc:Bounds x="615" y="92" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="602" y="62" width="78" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_08wnx3s_di" bpmnElement="Gateway_08wnx3s" isMarkerVisible="true">
<dc:Bounds x="345" y="92" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="341" y="62" width="58" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ow7pu7_di" bpmnElement="Activity_0flre28">
<dc:Bounds x="430" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1cn7vsp_di" bpmnElement="Gateway_1cn7vsp" isMarkerVisible="true">
<dc:Bounds x="535" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:signavio="http://www.signavio.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="Signavio Process Editor, http://www.signavio.com" exporterVersion="" expressionLanguage="http://www.w3.org/1999/XPath" id="sid-2fc8d290-3438-4612-ab5e-9e4275b62328" targetNamespace="http://www.signavio.com/bpmn20" typeLanguage="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd"> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:signavio="http://www.signavio.com" id="sid-2fc8d290-3438-4612-ab5e-9e4275b62328" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="4.11.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<collaboration id="sid-57b12279-7637-4e61-a08d-6173a2240830"> <collaboration id="sid-57b12279-7637-4e61-a08d-6173a2240830">
<participant id="sid-6BD4C90B-DA06-4B4A-AFE2-12B17C92C450" name="Parallel Join Long Inclusive" processRef="sid-bae04828-c969-4480-8cfe-09ad1f97d81c"> <participant id="sid-6BD4C90B-DA06-4B4A-AFE2-12B17C92C450" name="Parallel Join Long Inclusive" processRef="sid-bae04828-c969-4480-8cfe-09ad1f97d81c">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
</participant> </participant>
</collaboration> </collaboration>
<process id="sid-bae04828-c969-4480-8cfe-09ad1f97d81c" isClosed="false" isExecutable="false" name="Parallel Join Long Inclusive" processType="None"> <process id="sid-bae04828-c969-4480-8cfe-09ad1f97d81c" name="Parallel Join Long Inclusive" processType="None" isClosed="false" isExecutable="false">
<laneSet id="sid-aeac4a42-8864-4379-ac00-1c7cf35d7ab6"> <laneSet id="sid-aeac4a42-8864-4379-ac00-1c7cf35d7ab6">
<lane id="sid-60200172-646E-4166-9CFB-1558C5A0F3E8" name="Tester"> <lane id="sid-60200172-646E-4166-9CFB-1558C5A0F3E8" name="Tester">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue=""/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="" />
</extensionElements> </extensionElements>
<flowNodeRef>sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF</flowNodeRef> <flowNodeRef>sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF</flowNodeRef>
<flowNodeRef>sid-F4CFA154-9281-4579-B117-0859A2BFF7E8</flowNodeRef> <flowNodeRef>sid-F4CFA154-9281-4579-B117-0859A2BFF7E8</flowNodeRef>
@ -54,240 +54,240 @@
</laneSet> </laneSet>
<startEvent id="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF" name=""> <startEvent id="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<outgoing>sid-54E118FA-9A24-434C-9E65-36F9D01FB43D</outgoing> <outgoing>sid-54E118FA-9A24-434C-9E65-36F9D01FB43D</outgoing>
</startEvent> </startEvent>
<parallelGateway gatewayDirection="Diverging" id="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" name=""> <parallelGateway id="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-54E118FA-9A24-434C-9E65-36F9D01FB43D</incoming> <incoming>sid-54E118FA-9A24-434C-9E65-36F9D01FB43D</incoming>
<outgoing>sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C</outgoing> <outgoing>sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C</outgoing>
<outgoing>sid-C7247231-5152-424E-A240-B07B76E8F5EC</outgoing> <outgoing>sid-C7247231-5152-424E-A240-B07B76E8F5EC</outgoing>
</parallelGateway> </parallelGateway>
<task completionQuantity="1" id="sid-E489DED4-8C38-4841-80BC-E514353C1B8C" isForCompensation="false" name="Thread 1 - Task 1" startQuantity="1"> <task id="sid-E489DED4-8C38-4841-80BC-E514353C1B8C" name="Thread 1 - Task 1">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE</incoming> <incoming>sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE</incoming>
<outgoing>sid-0204722F-5A92-4236-BBF1-C66123E14E22</outgoing> <outgoing>sid-0204722F-5A92-4236-BBF1-C66123E14E22</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-B88338F7-5084-4532-9ABB-7387B1E5A664" isForCompensation="false" name="Thread 1 - Task 2" startQuantity="1"> <task id="sid-B88338F7-5084-4532-9ABB-7387B1E5A664" name="Thread 1 - Task 2">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-0204722F-5A92-4236-BBF1-C66123E14E22</incoming> <incoming>sid-0204722F-5A92-4236-BBF1-C66123E14E22</incoming>
<outgoing>sid-699ED598-1AB9-4A3B-9315-9C89578FB017</outgoing> <outgoing>sid-699ED598-1AB9-4A3B-9315-9C89578FB017</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-35745597-A6C0-424B-884C-C5C23B60C942" isForCompensation="false" name="Thread 1 - Task 3" startQuantity="1"> <task id="sid-35745597-A6C0-424B-884C-C5C23B60C942" name="Thread 1 - Task 3">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-699ED598-1AB9-4A3B-9315-9C89578FB017</incoming> <incoming>sid-699ED598-1AB9-4A3B-9315-9C89578FB017</incoming>
<outgoing>sid-85116AFA-E95A-4384-9695-361C1A6070C3</outgoing> <outgoing>sid-85116AFA-E95A-4384-9695-361C1A6070C3</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114" isForCompensation="false" name="Thread 1 - Task 4" startQuantity="1"> <task id="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114" name="Thread 1 - Task 4">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-85116AFA-E95A-4384-9695-361C1A6070C3</incoming> <incoming>sid-85116AFA-E95A-4384-9695-361C1A6070C3</incoming>
<outgoing>sid-84756278-D67A-4E65-AD96-24325F08E2D1</outgoing> <outgoing>sid-84756278-D67A-4E65-AD96-24325F08E2D1</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570" isForCompensation="false" name="Thread 2 - Task 2" startQuantity="1"> <task id="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570" name="Thread 2 - Task 2">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27</incoming> <incoming>sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27</incoming>
<outgoing>sid-C132728C-7DAF-468C-A807-90A34847071E</outgoing> <outgoing>sid-C132728C-7DAF-468C-A807-90A34847071E</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-A8E18F57-FC41-401D-A397-9264C3E48293" isForCompensation="false" name="Thread 2 - Task 3" startQuantity="1"> <task id="sid-A8E18F57-FC41-401D-A397-9264C3E48293" name="Thread 2 - Task 3">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-C132728C-7DAF-468C-A807-90A34847071E</incoming> <incoming>sid-C132728C-7DAF-468C-A807-90A34847071E</incoming>
<outgoing>sid-4A3A7E6E-F79B-4842-860C-407DB9227023</outgoing> <outgoing>sid-4A3A7E6E-F79B-4842-860C-407DB9227023</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD" isForCompensation="false" name="Thread 2 - Task 4" startQuantity="1"> <task id="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD" name="Thread 2 - Task 4">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-4A3A7E6E-F79B-4842-860C-407DB9227023</incoming> <incoming>sid-4A3A7E6E-F79B-4842-860C-407DB9227023</incoming>
<outgoing>sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4</outgoing> <outgoing>sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08" isForCompensation="false" name="Thread 2 - Task 1" startQuantity="1"> <task id="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08" name="Thread 2 - Task 1">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-D7D86B12-A88C-4072-9852-6DD62643556A</incoming> <incoming>sid-D7D86B12-A88C-4072-9852-6DD62643556A</incoming>
<outgoing>sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27</outgoing> <outgoing>sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-107A993F-6302-4391-9BE2-068C9C7B693B" isForCompensation="false" name="Done" startQuantity="1"> <task id="sid-107A993F-6302-4391-9BE2-068C9C7B693B" name="Done">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-369B410B-EA82-4896-91FD-23FFF759494A</incoming> <incoming>sid-369B410B-EA82-4896-91FD-23FFF759494A</incoming>
<outgoing>sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D</outgoing> <outgoing>sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C" isForCompensation="false" name="Thread 1 - Task 5" startQuantity="1"> <task id="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C" name="Thread 1 - Task 5">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-84756278-D67A-4E65-AD96-24325F08E2D1</incoming> <incoming>sid-84756278-D67A-4E65-AD96-24325F08E2D1</incoming>
<outgoing>sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC</outgoing> <outgoing>sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-54BB293D-91B6-41B5-A5C4-423300D74D14" isForCompensation="false" name="Thread 1 - Task 6" startQuantity="1"> <task id="sid-54BB293D-91B6-41B5-A5C4-423300D74D14" name="Thread 1 - Task 6">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC</incoming> <incoming>sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC</incoming>
<outgoing>sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11</outgoing> <outgoing>sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0" isForCompensation="false" name="Thread 1 - Task 7" startQuantity="1"> <task id="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0" name="Thread 1 - Task 7">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11</incoming> <incoming>sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11</incoming>
<outgoing>sid-13838920-8EE4-45CB-8F01-29F13CA13819</outgoing> <outgoing>sid-13838920-8EE4-45CB-8F01-29F13CA13819</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-E6A08072-E35C-4545-9C66-B74B615F34C2" isForCompensation="false" name="Thread 1 - Task 8" startQuantity="1"> <task id="sid-E6A08072-E35C-4545-9C66-B74B615F34C2" name="Thread 1 - Task 8">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-13838920-8EE4-45CB-8F01-29F13CA13819</incoming> <incoming>sid-13838920-8EE4-45CB-8F01-29F13CA13819</incoming>
<outgoing>sid-FAA04C3A-F55B-4947-850D-5A180D43BD61</outgoing> <outgoing>sid-FAA04C3A-F55B-4947-850D-5A180D43BD61</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-BEC02819-27FE-4484-8FDA-08450F4DE618" isForCompensation="false" name="Thread 1 - Task 9" startQuantity="1"> <task id="sid-BEC02819-27FE-4484-8FDA-08450F4DE618" name="Thread 1 - Task 9">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-FAA04C3A-F55B-4947-850D-5A180D43BD61</incoming> <incoming>sid-FAA04C3A-F55B-4947-850D-5A180D43BD61</incoming>
<outgoing>sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51</outgoing> <outgoing>sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0" isForCompensation="false" name="Thread 1 - Task 10" startQuantity="1"> <task id="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0" name="Thread 1 - Task 10">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51</incoming> <incoming>sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51</incoming>
<outgoing>sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9</outgoing> <outgoing>sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-08397892-678C-4706-A05F-8F6DAE9B5423" isForCompensation="false" name="Thread 1 - Task 11" startQuantity="1"> <task id="sid-08397892-678C-4706-A05F-8F6DAE9B5423" name="Thread 1 - Task 11">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9</incoming> <incoming>sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9</incoming>
<outgoing>sid-661F5F14-5B94-4977-9827-20654AE2719B</outgoing> <outgoing>sid-661F5F14-5B94-4977-9827-20654AE2719B</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-3500C16F-8037-4987-9022-8E30AB6B0590" isForCompensation="false" name="Thread 1 - Task 12" startQuantity="1"> <task id="sid-3500C16F-8037-4987-9022-8E30AB6B0590" name="Thread 1 - Task 12">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-661F5F14-5B94-4977-9827-20654AE2719B</incoming> <incoming>sid-661F5F14-5B94-4977-9827-20654AE2719B</incoming>
<outgoing>sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E</outgoing> <outgoing>sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-A473B421-0981-49D8-BD5A-66832BD518EC" isForCompensation="false" name="Thread 2 - Task 5" startQuantity="1"> <task id="sid-A473B421-0981-49D8-BD5A-66832BD518EC" name="Thread 2 - Task 5">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4</incoming> <incoming>sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4</incoming>
<outgoing>sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4</outgoing> <outgoing>sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A" isForCompensation="false" name="Thread 2 - Task 6" startQuantity="1"> <task id="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A" name="Thread 2 - Task 6">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4</incoming> <incoming>sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4</incoming>
<outgoing>sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84</outgoing> <outgoing>sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-D67A997E-C7CF-4581-8749-4F931D8737B5" isForCompensation="false" name="Thread 2 - Task 7" startQuantity="1"> <task id="sid-D67A997E-C7CF-4581-8749-4F931D8737B5" name="Thread 2 - Task 7">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84</incoming> <incoming>sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84</incoming>
<outgoing>sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6</outgoing> <outgoing>sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-399AE395-D46F-4A30-B875-E904970AF141" isForCompensation="false" name="Thread 2 - Task 8" startQuantity="1"> <task id="sid-399AE395-D46F-4A30-B875-E904970AF141" name="Thread 2 - Task 8">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6</incoming> <incoming>sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6</incoming>
<outgoing>sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C</outgoing> <outgoing>sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA" isForCompensation="false" name="Thread 2 - Task 9" startQuantity="1"> <task id="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA" name="Thread 2 - Task 9">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C</incoming> <incoming>sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C</incoming>
<outgoing>sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8</outgoing> <outgoing>sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474" isForCompensation="false" name="Thread 2 - Task 10" startQuantity="1"> <task id="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474" name="Thread 2 - Task 10">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8</incoming> <incoming>sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8</incoming>
<outgoing>sid-42540C95-8E89-4B6F-B133-F677FA72C9FF</outgoing> <outgoing>sid-42540C95-8E89-4B6F-B133-F677FA72C9FF</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-CF5677F8-747F-4E95-953E-4DAB186958F4" isForCompensation="false" name="Thread 2 - Task 11" startQuantity="1"> <task id="sid-CF5677F8-747F-4E95-953E-4DAB186958F4" name="Thread 2 - Task 11">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-42540C95-8E89-4B6F-B133-F677FA72C9FF</incoming> <incoming>sid-42540C95-8E89-4B6F-B133-F677FA72C9FF</incoming>
<outgoing>sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B</outgoing> <outgoing>sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283" isForCompensation="false" name="Thread 2 - Task 12" startQuantity="1"> <task id="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283" name="Thread 2 - Task 12">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B</incoming> <incoming>sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B</incoming>
<outgoing>sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D</outgoing> <outgoing>sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF" isForCompensation="false" name="Thread 1 - Choose" startQuantity="1"> <task id="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF" name="Thread 1 - Choose">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C</incoming> <incoming>sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C</incoming>
<outgoing>sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2</outgoing> <outgoing>sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2</outgoing>
</task> </task>
<exclusiveGateway gatewayDirection="Diverging" id="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" name=""> <exclusiveGateway id="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2</incoming> <incoming>sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2</incoming>
<outgoing>sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE</outgoing> <outgoing>sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE</outgoing>
<outgoing>sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416</outgoing> <outgoing>sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416</outgoing>
</exclusiveGateway> </exclusiveGateway>
<task completionQuantity="1" id="sid-732095A1-B07A-4B08-A46B-277C12901DED" isForCompensation="false" name="Thread 1 - No Task" startQuantity="1"> <task id="sid-732095A1-B07A-4B08-A46B-277C12901DED" name="Thread 1 - No Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416</incoming> <incoming>sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416</incoming>
<outgoing>sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB</outgoing> <outgoing>sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74" isForCompensation="false" name="Thread 2 - Choose" startQuantity="1"> <task id="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74" name="Thread 2 - Choose">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-C7247231-5152-424E-A240-B07B76E8F5EC</incoming> <incoming>sid-C7247231-5152-424E-A240-B07B76E8F5EC</incoming>
<outgoing>sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E</outgoing> <outgoing>sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E</outgoing>
</task> </task>
<exclusiveGateway gatewayDirection="Diverging" id="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" name=""> <exclusiveGateway id="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E</incoming> <incoming>sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E</incoming>
<outgoing>sid-D7D86B12-A88C-4072-9852-6DD62643556A</outgoing> <outgoing>sid-D7D86B12-A88C-4072-9852-6DD62643556A</outgoing>
<outgoing>sid-16EB4D98-7F77-4046-8CDD-E07C796542FE</outgoing> <outgoing>sid-16EB4D98-7F77-4046-8CDD-E07C796542FE</outgoing>
</exclusiveGateway> </exclusiveGateway>
<task completionQuantity="1" id="sid-B2E34105-96D5-4020-85D9-C569BA42D618" isForCompensation="false" name="Thread 2 - No Task" startQuantity="1"> <task id="sid-B2E34105-96D5-4020-85D9-C569BA42D618" name="Thread 2 - No Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-16EB4D98-7F77-4046-8CDD-E07C796542FE</incoming> <incoming>sid-16EB4D98-7F77-4046-8CDD-E07C796542FE</incoming>
<outgoing>sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D</outgoing> <outgoing>sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D</outgoing>
</task> </task>
<inclusiveGateway gatewayDirection="Converging" id="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" name=""> <inclusiveGateway id="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" name="" gatewayDirection="Converging" default="sid-369B410B-EA82-4896-91FD-23FFF759494A">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D</incoming> <incoming>sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D</incoming>
<incoming>sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E</incoming> <incoming>sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E</incoming>
@ -295,339 +295,359 @@
</inclusiveGateway> </inclusiveGateway>
<endEvent id="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B" name=""> <endEvent id="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D</incoming> <incoming>sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D</incoming>
</endEvent> </endEvent>
<endEvent id="sid-4864A824-7467-421A-A654-83EE83F7681C" name=""> <endEvent id="sid-4864A824-7467-421A-A654-83EE83F7681C" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB</incoming> <incoming>sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB</incoming>
</endEvent> </endEvent>
<endEvent id="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B" name=""> <endEvent id="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D</incoming> <incoming>sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D</incoming>
</endEvent> </endEvent>
<sequenceFlow id="sid-54E118FA-9A24-434C-9E65-36F9D01FB43D" name="" sourceRef="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF" targetRef="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8"/> <sequenceFlow id="sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D" name="" sourceRef="sid-107A993F-6302-4391-9BE2-068C9C7B693B" targetRef="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B" />
<sequenceFlow id="sid-699ED598-1AB9-4A3B-9315-9C89578FB017" name="" sourceRef="sid-B88338F7-5084-4532-9ABB-7387B1E5A664" targetRef="sid-35745597-A6C0-424B-884C-C5C23B60C942"/> <sequenceFlow id="sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB" name="" sourceRef="sid-732095A1-B07A-4B08-A46B-277C12901DED" targetRef="sid-4864A824-7467-421A-A654-83EE83F7681C" />
<sequenceFlow id="sid-85116AFA-E95A-4384-9695-361C1A6070C3" name="" sourceRef="sid-35745597-A6C0-424B-884C-C5C23B60C942" targetRef="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114"/> <sequenceFlow id="sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D" name="" sourceRef="sid-B2E34105-96D5-4020-85D9-C569BA42D618" targetRef="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B" />
<sequenceFlow id="sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27" name="" sourceRef="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08" targetRef="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570"/> <sequenceFlow id="sid-369B410B-EA82-4896-91FD-23FFF759494A" name="" sourceRef="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" targetRef="sid-107A993F-6302-4391-9BE2-068C9C7B693B" />
<sequenceFlow id="sid-C132728C-7DAF-468C-A807-90A34847071E" name="" sourceRef="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570" targetRef="sid-A8E18F57-FC41-401D-A397-9264C3E48293"/> <sequenceFlow id="sid-16EB4D98-7F77-4046-8CDD-E07C796542FE" name="No" sourceRef="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" targetRef="sid-B2E34105-96D5-4020-85D9-C569BA42D618">
<sequenceFlow id="sid-4A3A7E6E-F79B-4842-860C-407DB9227023" name="" sourceRef="sid-A8E18F57-FC41-401D-A397-9264C3E48293" targetRef="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD"/> <conditionExpression xsi:type="tFormalExpression">choice == 'No'</conditionExpression>
<sequenceFlow id="sid-0204722F-5A92-4236-BBF1-C66123E14E22" name="" sourceRef="sid-E489DED4-8C38-4841-80BC-E514353C1B8C" targetRef="sid-B88338F7-5084-4532-9ABB-7387B1E5A664"/> </sequenceFlow>
<sequenceFlow id="sid-84756278-D67A-4E65-AD96-24325F08E2D1" name="" sourceRef="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114" targetRef="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C"/> <sequenceFlow id="sid-D7D86B12-A88C-4072-9852-6DD62643556A" name="Yes" sourceRef="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" targetRef="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08">
<sequenceFlow id="sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC" name="" sourceRef="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C" targetRef="sid-54BB293D-91B6-41B5-A5C4-423300D74D14"/> <conditionExpression xsi:type="tFormalExpression">choice == 'Yes'</conditionExpression>
<sequenceFlow id="sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11" name="" sourceRef="sid-54BB293D-91B6-41B5-A5C4-423300D74D14" targetRef="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0"/> </sequenceFlow>
<sequenceFlow id="sid-13838920-8EE4-45CB-8F01-29F13CA13819" name="" sourceRef="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0" targetRef="sid-E6A08072-E35C-4545-9C66-B74B615F34C2"/> <sequenceFlow id="sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E" name="" sourceRef="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74" targetRef="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" />
<sequenceFlow id="sid-FAA04C3A-F55B-4947-850D-5A180D43BD61" name="" sourceRef="sid-E6A08072-E35C-4545-9C66-B74B615F34C2" targetRef="sid-BEC02819-27FE-4484-8FDA-08450F4DE618"/> <sequenceFlow id="sid-C7247231-5152-424E-A240-B07B76E8F5EC" name="" sourceRef="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" targetRef="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74" />
<sequenceFlow id="sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51" name="" sourceRef="sid-BEC02819-27FE-4484-8FDA-08450F4DE618" targetRef="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0"/> <sequenceFlow id="sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416" name="No" sourceRef="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" targetRef="sid-732095A1-B07A-4B08-A46B-277C12901DED">
<sequenceFlow id="sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9" name="" sourceRef="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0" targetRef="sid-08397892-678C-4706-A05F-8F6DAE9B5423"/> <conditionExpression xsi:type="tFormalExpression">choice == 'No'</conditionExpression>
<sequenceFlow id="sid-661F5F14-5B94-4977-9827-20654AE2719B" name="" sourceRef="sid-08397892-678C-4706-A05F-8F6DAE9B5423" targetRef="sid-3500C16F-8037-4987-9022-8E30AB6B0590"/> </sequenceFlow>
<sequenceFlow id="sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4" name="" sourceRef="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD" targetRef="sid-A473B421-0981-49D8-BD5A-66832BD518EC"/> <sequenceFlow id="sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE" name="Yes" sourceRef="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" targetRef="sid-E489DED4-8C38-4841-80BC-E514353C1B8C">
<sequenceFlow id="sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4" name="" sourceRef="sid-A473B421-0981-49D8-BD5A-66832BD518EC" targetRef="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A"/> <conditionExpression xsi:type="tFormalExpression">choice == 'Yes'</conditionExpression>
<sequenceFlow id="sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84" name="" sourceRef="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A" targetRef="sid-D67A997E-C7CF-4581-8749-4F931D8737B5"/> </sequenceFlow>
<sequenceFlow id="sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6" name="" sourceRef="sid-D67A997E-C7CF-4581-8749-4F931D8737B5" targetRef="sid-399AE395-D46F-4A30-B875-E904970AF141"/> <sequenceFlow id="sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2" name="" sourceRef="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF" targetRef="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" />
<sequenceFlow id="sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C" name="" sourceRef="sid-399AE395-D46F-4A30-B875-E904970AF141" targetRef="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA"/> <sequenceFlow id="sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C" name="" sourceRef="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" targetRef="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF" />
<sequenceFlow id="sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8" name="" sourceRef="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA" targetRef="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474"/> <sequenceFlow id="sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E" name="" sourceRef="sid-3500C16F-8037-4987-9022-8E30AB6B0590" targetRef="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" />
<sequenceFlow id="sid-42540C95-8E89-4B6F-B133-F677FA72C9FF" name="" sourceRef="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474" targetRef="sid-CF5677F8-747F-4E95-953E-4DAB186958F4"/> <sequenceFlow id="sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D" name="" sourceRef="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283" targetRef="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" />
<sequenceFlow id="sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B" name="" sourceRef="sid-CF5677F8-747F-4E95-953E-4DAB186958F4" targetRef="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283"/> <sequenceFlow id="sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B" name="" sourceRef="sid-CF5677F8-747F-4E95-953E-4DAB186958F4" targetRef="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283" />
<sequenceFlow id="sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D" name="" sourceRef="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283" targetRef="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283"/> <sequenceFlow id="sid-42540C95-8E89-4B6F-B133-F677FA72C9FF" name="" sourceRef="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474" targetRef="sid-CF5677F8-747F-4E95-953E-4DAB186958F4" />
<sequenceFlow id="sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E" name="" sourceRef="sid-3500C16F-8037-4987-9022-8E30AB6B0590" targetRef="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283"/> <sequenceFlow id="sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8" name="" sourceRef="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA" targetRef="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474" />
<sequenceFlow id="sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C" name="" sourceRef="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" targetRef="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF"/> <sequenceFlow id="sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C" name="" sourceRef="sid-399AE395-D46F-4A30-B875-E904970AF141" targetRef="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA" />
<sequenceFlow id="sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2" name="" sourceRef="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF" targetRef="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3"/> <sequenceFlow id="sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6" name="" sourceRef="sid-D67A997E-C7CF-4581-8749-4F931D8737B5" targetRef="sid-399AE395-D46F-4A30-B875-E904970AF141" />
<sequenceFlow id="sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE" name="Yes" sourceRef="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" targetRef="sid-E489DED4-8C38-4841-80BC-E514353C1B8C"/> <sequenceFlow id="sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84" name="" sourceRef="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A" targetRef="sid-D67A997E-C7CF-4581-8749-4F931D8737B5" />
<sequenceFlow id="sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416" name="No" sourceRef="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" targetRef="sid-732095A1-B07A-4B08-A46B-277C12901DED"/> <sequenceFlow id="sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4" name="" sourceRef="sid-A473B421-0981-49D8-BD5A-66832BD518EC" targetRef="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A" />
<sequenceFlow id="sid-C7247231-5152-424E-A240-B07B76E8F5EC" name="" sourceRef="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" targetRef="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74"/> <sequenceFlow id="sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4" name="" sourceRef="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD" targetRef="sid-A473B421-0981-49D8-BD5A-66832BD518EC" />
<sequenceFlow id="sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E" name="" sourceRef="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74" targetRef="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247"/> <sequenceFlow id="sid-661F5F14-5B94-4977-9827-20654AE2719B" name="" sourceRef="sid-08397892-678C-4706-A05F-8F6DAE9B5423" targetRef="sid-3500C16F-8037-4987-9022-8E30AB6B0590" />
<sequenceFlow id="sid-D7D86B12-A88C-4072-9852-6DD62643556A" name="Yes" sourceRef="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" targetRef="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08"/> <sequenceFlow id="sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9" name="" sourceRef="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0" targetRef="sid-08397892-678C-4706-A05F-8F6DAE9B5423" />
<sequenceFlow id="sid-16EB4D98-7F77-4046-8CDD-E07C796542FE" name="No" sourceRef="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" targetRef="sid-B2E34105-96D5-4020-85D9-C569BA42D618"/> <sequenceFlow id="sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51" name="" sourceRef="sid-BEC02819-27FE-4484-8FDA-08450F4DE618" targetRef="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0" />
<sequenceFlow id="sid-369B410B-EA82-4896-91FD-23FFF759494A" name="" sourceRef="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" targetRef="sid-107A993F-6302-4391-9BE2-068C9C7B693B"/> <sequenceFlow id="sid-FAA04C3A-F55B-4947-850D-5A180D43BD61" name="" sourceRef="sid-E6A08072-E35C-4545-9C66-B74B615F34C2" targetRef="sid-BEC02819-27FE-4484-8FDA-08450F4DE618" />
<sequenceFlow id="sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D" name="" sourceRef="sid-B2E34105-96D5-4020-85D9-C569BA42D618" targetRef="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B"/> <sequenceFlow id="sid-13838920-8EE4-45CB-8F01-29F13CA13819" name="" sourceRef="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0" targetRef="sid-E6A08072-E35C-4545-9C66-B74B615F34C2" />
<sequenceFlow id="sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB" name="" sourceRef="sid-732095A1-B07A-4B08-A46B-277C12901DED" targetRef="sid-4864A824-7467-421A-A654-83EE83F7681C"/> <sequenceFlow id="sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11" name="" sourceRef="sid-54BB293D-91B6-41B5-A5C4-423300D74D14" targetRef="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0" />
<sequenceFlow id="sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D" name="" sourceRef="sid-107A993F-6302-4391-9BE2-068C9C7B693B" targetRef="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B"/> <sequenceFlow id="sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC" name="" sourceRef="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C" targetRef="sid-54BB293D-91B6-41B5-A5C4-423300D74D14" />
<sequenceFlow id="sid-84756278-D67A-4E65-AD96-24325F08E2D1" name="" sourceRef="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114" targetRef="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C" />
<sequenceFlow id="sid-0204722F-5A92-4236-BBF1-C66123E14E22" name="" sourceRef="sid-E489DED4-8C38-4841-80BC-E514353C1B8C" targetRef="sid-B88338F7-5084-4532-9ABB-7387B1E5A664" />
<sequenceFlow id="sid-4A3A7E6E-F79B-4842-860C-407DB9227023" name="" sourceRef="sid-A8E18F57-FC41-401D-A397-9264C3E48293" targetRef="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD" />
<sequenceFlow id="sid-C132728C-7DAF-468C-A807-90A34847071E" name="" sourceRef="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570" targetRef="sid-A8E18F57-FC41-401D-A397-9264C3E48293" />
<sequenceFlow id="sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27" name="" sourceRef="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08" targetRef="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570" />
<sequenceFlow id="sid-85116AFA-E95A-4384-9695-361C1A6070C3" name="" sourceRef="sid-35745597-A6C0-424B-884C-C5C23B60C942" targetRef="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114" />
<sequenceFlow id="sid-699ED598-1AB9-4A3B-9315-9C89578FB017" name="" sourceRef="sid-B88338F7-5084-4532-9ABB-7387B1E5A664" targetRef="sid-35745597-A6C0-424B-884C-C5C23B60C942" />
<sequenceFlow id="sid-54E118FA-9A24-434C-9E65-36F9D01FB43D" name="" sourceRef="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF" targetRef="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" />
</process> </process>
<bpmndi:BPMNDiagram id="sid-d7f55d66-d70d-4f50-9532-31276aaea03a"> <bpmndi:BPMNDiagram id="sid-d7f55d66-d70d-4f50-9532-31276aaea03a">
<bpmndi:BPMNPlane bpmnElement="sid-57b12279-7637-4e61-a08d-6173a2240830" id="sid-edae3a17-b904-4ec1-a288-9730ccde4694"> <bpmndi:BPMNPlane id="sid-edae3a17-b904-4ec1-a288-9730ccde4694" bpmnElement="sid-57b12279-7637-4e61-a08d-6173a2240830">
<bpmndi:BPMNShape bpmnElement="sid-6BD4C90B-DA06-4B4A-AFE2-12B17C92C450" id="sid-6BD4C90B-DA06-4B4A-AFE2-12B17C92C450_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-6BD4C90B-DA06-4B4A-AFE2-12B17C92C450_gui" bpmnElement="sid-6BD4C90B-DA06-4B4A-AFE2-12B17C92C450" isHorizontal="true">
<omgdc:Bounds height="1222.0" width="930.0" x="105.0" y="75.0"/> <omgdc:Bounds x="155" y="75" width="930" height="1222" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-60200172-646E-4166-9CFB-1558C5A0F3E8" id="sid-60200172-646E-4166-9CFB-1558C5A0F3E8_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-60200172-646E-4166-9CFB-1558C5A0F3E8_gui" bpmnElement="sid-60200172-646E-4166-9CFB-1558C5A0F3E8" isHorizontal="true">
<omgdc:Bounds height="1222.0" width="900.0" x="135.0" y="75.0"/> <omgdc:Bounds x="185" y="75" width="900" height="1222" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF" id="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF_gui"> <bpmndi:BPMNEdge id="sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D_gui" bpmnElement="sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D">
<omgdc:Bounds height="30.0" width="30.0" x="180.0" y="135.0"/> <omgdi:waypoint x="841" y="1240" />
</bpmndi:BPMNShape> <omgdi:waypoint x="921" y="1240" />
<bpmndi:BPMNShape bpmnElement="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8" id="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8_gui">
<omgdc:Bounds height="40.0" width="40.0" x="265.0" y="130.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E489DED4-8C38-4841-80BC-E514353C1B8C" id="sid-E489DED4-8C38-4841-80BC-E514353C1B8C_gui">
<omgdc:Bounds height="80.0" width="100.0" x="570.0" y="255.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-B88338F7-5084-4532-9ABB-7387B1E5A664" id="sid-B88338F7-5084-4532-9ABB-7387B1E5A664_gui">
<omgdc:Bounds height="80.0" width="100.0" x="787.5" y="255.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-35745597-A6C0-424B-884C-C5C23B60C942" id="sid-35745597-A6C0-424B-884C-C5C23B60C942_gui">
<omgdc:Bounds height="80.0" width="100.0" x="781.5" y="375.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114" id="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114_gui">
<omgdc:Bounds height="80.0" width="100.0" x="781.5" y="495.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570" id="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570_gui">
<omgdc:Bounds height="80.0" width="100.0" x="241.5" y="585.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-A8E18F57-FC41-401D-A397-9264C3E48293" id="sid-A8E18F57-FC41-401D-A397-9264C3E48293_gui">
<omgdc:Bounds height="80.0" width="100.0" x="241.5" y="705.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD" id="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD_gui">
<omgdc:Bounds height="80.0" width="100.0" x="241.5" y="825.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08" id="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08_gui">
<omgdc:Bounds height="80.0" width="100.0" x="221.5" y="465.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-107A993F-6302-4391-9BE2-068C9C7B693B" id="sid-107A993F-6302-4391-9BE2-068C9C7B693B_gui">
<omgdc:Bounds height="80.0" width="100.0" x="691.5" y="1200.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C" id="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C_gui">
<omgdc:Bounds height="80.0" width="100.0" x="618.5" y="495.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-54BB293D-91B6-41B5-A5C4-423300D74D14" id="sid-54BB293D-91B6-41B5-A5C4-423300D74D14_gui">
<omgdc:Bounds height="80.0" width="100.0" x="438.5" y="495.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0" id="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0_gui">
<omgdc:Bounds height="80.0" width="100.0" x="438.5" y="637.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E6A08072-E35C-4545-9C66-B74B615F34C2" id="sid-E6A08072-E35C-4545-9C66-B74B615F34C2_gui">
<omgdc:Bounds height="80.0" width="100.0" x="616.5" y="637.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-BEC02819-27FE-4484-8FDA-08450F4DE618" id="sid-BEC02819-27FE-4484-8FDA-08450F4DE618_gui">
<omgdc:Bounds height="80.0" width="100.0" x="787.5" y="637.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0" id="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0_gui">
<omgdc:Bounds height="80.0" width="100.0" x="787.5" y="746.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-08397892-678C-4706-A05F-8F6DAE9B5423" id="sid-08397892-678C-4706-A05F-8F6DAE9B5423_gui">
<omgdc:Bounds height="80.0" width="100.0" x="787.5" y="885.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-3500C16F-8037-4987-9022-8E30AB6B0590" id="sid-3500C16F-8037-4987-9022-8E30AB6B0590_gui">
<omgdc:Bounds height="80.0" width="100.0" x="787.5" y="1005.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-A473B421-0981-49D8-BD5A-66832BD518EC" id="sid-A473B421-0981-49D8-BD5A-66832BD518EC_gui">
<omgdc:Bounds height="80.0" width="100.0" x="442.5" y="749.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A" id="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A_gui">
<omgdc:Bounds height="80.0" width="100.0" x="619.5" y="749.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-D67A997E-C7CF-4581-8749-4F931D8737B5" id="sid-D67A997E-C7CF-4581-8749-4F931D8737B5_gui">
<omgdc:Bounds height="80.0" width="100.0" x="619.5" y="884.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-399AE395-D46F-4A30-B875-E904970AF141" id="sid-399AE395-D46F-4A30-B875-E904970AF141_gui">
<omgdc:Bounds height="80.0" width="100.0" x="441.5" y="884.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA" id="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA_gui">
<omgdc:Bounds height="80.0" width="100.0" x="242.5" y="939.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474" id="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474_gui">
<omgdc:Bounds height="80.0" width="100.0" x="242.5" y="1076.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-CF5677F8-747F-4E95-953E-4DAB186958F4" id="sid-CF5677F8-747F-4E95-953E-4DAB186958F4_gui">
<omgdc:Bounds height="80.0" width="100.0" x="438.5" y="1005.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283" id="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283_gui">
<omgdc:Bounds height="80.0" width="100.0" x="401.5" y="1144.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF" id="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF_gui">
<omgdc:Bounds height="80.0" width="100.0" x="450.0" y="110.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" id="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="600.0" y="135.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-732095A1-B07A-4B08-A46B-277C12901DED" id="sid-732095A1-B07A-4B08-A46B-277C12901DED_gui">
<omgdc:Bounds height="80.0" width="100.0" x="713.0" y="115.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74" id="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74_gui">
<omgdc:Bounds height="80.0" width="100.0" x="235.0" y="211.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" id="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="265.0" y="330.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-B2E34105-96D5-4020-85D9-C569BA42D618" id="sid-B2E34105-96D5-4020-85D9-C569BA42D618_gui">
<omgdc:Bounds height="80.0" width="100.0" x="358.0" y="310.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283" id="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283_gui">
<omgdc:Bounds height="40.0" width="40.0" x="600.0" y="1219.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B" id="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B_gui">
<omgdc:Bounds height="28.0" width="28.0" x="394.0" y="436.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-4864A824-7467-421A-A654-83EE83F7681C" id="sid-4864A824-7467-421A-A654-83EE83F7681C_gui">
<omgdc:Bounds height="28.0" width="28.0" x="882.0" y="141.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B" id="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B_gui">
<omgdc:Bounds height="28.0" width="28.0" x="871.0" y="1226.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-FAA04C3A-F55B-4947-850D-5A180D43BD61" id="sid-FAA04C3A-F55B-4947-850D-5A180D43BD61_gui">
<omgdi:waypoint x="716.0" y="677.0"/>
<omgdi:waypoint x="787.0" y="677.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-16EB4D98-7F77-4046-8CDD-E07C796542FE" id="sid-16EB4D98-7F77-4046-8CDD-E07C796542FE_gui"> <bpmndi:BPMNEdge id="sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB_gui" bpmnElement="sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB">
<omgdi:waypoint x="305.0" y="350.0"/> <omgdi:waypoint x="863" y="155" />
<omgdi:waypoint x="358.0" y="350.0"/> <omgdi:waypoint x="932" y="155" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E" id="sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E_gui"> <bpmndi:BPMNEdge id="sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D_gui" bpmnElement="sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D">
<omgdi:waypoint x="837.0" y="1085.0"/> <omgdi:waypoint x="458" y="390" />
<omgdi:waypoint x="837.5" y="1147.0"/> <omgdi:waypoint x="458" y="436" />
<omgdi:waypoint x="620.5" y="1147.0"/>
<omgdi:waypoint x="620.0" y="1219.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27" id="sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27_gui"> <bpmndi:BPMNEdge id="sid-369B410B-EA82-4896-91FD-23FFF759494A_gui" bpmnElement="sid-369B410B-EA82-4896-91FD-23FFF759494A">
<omgdi:waypoint x="277.0" y="545.0"/> <omgdi:waypoint x="690" y="1239" />
<omgdi:waypoint x="284.0" y="585.0"/> <omgdi:waypoint x="741" y="1240" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-4A3A7E6E-F79B-4842-860C-407DB9227023" id="sid-4A3A7E6E-F79B-4842-860C-407DB9227023_gui"> <bpmndi:BPMNEdge id="sid-16EB4D98-7F77-4046-8CDD-E07C796542FE_gui" bpmnElement="sid-16EB4D98-7F77-4046-8CDD-E07C796542FE">
<omgdi:waypoint x="291.0" y="785.0"/> <omgdi:waypoint x="355" y="350" />
<omgdi:waypoint x="291.0" y="825.0"/> <omgdi:waypoint x="408" y="350" />
<bpmndi:BPMNLabel>
<omgdc:Bounds x="374" y="325" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416" id="sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416_gui"> <bpmndi:BPMNEdge id="sid-D7D86B12-A88C-4072-9852-6DD62643556A_gui" bpmnElement="sid-D7D86B12-A88C-4072-9852-6DD62643556A">
<omgdi:waypoint x="640.0" y="155.0"/> <omgdi:waypoint x="335" y="370" />
<omgdi:waypoint x="713.0" y="155.0"/> <omgdi:waypoint x="335.5" y="417.5" />
<omgdi:waypoint x="321.5" y="412" />
<omgdi:waypoint x="321" y="465" />
<bpmndi:BPMNLabel>
<omgdc:Bounds x="319" y="390" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C132728C-7DAF-468C-A807-90A34847071E" id="sid-C132728C-7DAF-468C-A807-90A34847071E_gui"> <bpmndi:BPMNEdge id="sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E_gui" bpmnElement="sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E">
<omgdi:waypoint x="291.0" y="665.0"/> <omgdi:waypoint x="335" y="291" />
<omgdi:waypoint x="291.0" y="705.0"/> <omgdi:waypoint x="335" y="330" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-13838920-8EE4-45CB-8F01-29F13CA13819" id="sid-13838920-8EE4-45CB-8F01-29F13CA13819_gui"> <bpmndi:BPMNEdge id="sid-C7247231-5152-424E-A240-B07B76E8F5EC_gui" bpmnElement="sid-C7247231-5152-424E-A240-B07B76E8F5EC">
<omgdi:waypoint x="538.0" y="677.0"/> <omgdi:waypoint x="335" y="170" />
<omgdi:waypoint x="616.0" y="677.0"/> <omgdi:waypoint x="335" y="211" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-369B410B-EA82-4896-91FD-23FFF759494A" id="sid-369B410B-EA82-4896-91FD-23FFF759494A_gui"> <bpmndi:BPMNEdge id="sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416_gui" bpmnElement="sid-C06DF3AB-4CE5-4123-8033-8AACDCDF4416">
<omgdi:waypoint x="640.0" y="1239.0"/> <omgdi:waypoint x="690" y="155" />
<omgdi:waypoint x="691.0" y="1240.0"/> <omgdi:waypoint x="763" y="155" />
<bpmndi:BPMNLabel>
<omgdc:Bounds x="719" y="130" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2" id="sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2_gui"> <bpmndi:BPMNEdge id="sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE_gui" bpmnElement="sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE">
<omgdi:waypoint x="550.0" y="152.0"/> <omgdi:waypoint x="670" y="175" />
<omgdi:waypoint x="600.0" y="155.0"/> <omgdi:waypoint x="670" y="255" />
<bpmndi:BPMNLabel>
<omgdc:Bounds x="676" y="205" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-661F5F14-5B94-4977-9827-20654AE2719B" id="sid-661F5F14-5B94-4977-9827-20654AE2719B_gui"> <bpmndi:BPMNEdge id="sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2_gui" bpmnElement="sid-7F5D9083-6201-43F9-BBEE-664E7310F4F2">
<omgdi:waypoint x="837.0" y="965.0"/> <omgdi:waypoint x="600" y="152" />
<omgdi:waypoint x="837.0" y="1005.0"/> <omgdi:waypoint x="650" y="155" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D" id="sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D_gui"> <bpmndi:BPMNEdge id="sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C_gui" bpmnElement="sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C">
<omgdi:waypoint x="501.0" y="1184.0"/> <omgdi:waypoint x="355" y="150" />
<omgdi:waypoint x="544.0" y="1184.0"/> <omgdi:waypoint x="500" y="150" />
<omgdi:waypoint x="544.0" y="1220.0"/>
<omgdi:waypoint x="600.0" y="1234.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C7247231-5152-424E-A240-B07B76E8F5EC" id="sid-C7247231-5152-424E-A240-B07B76E8F5EC_gui"> <bpmndi:BPMNEdge id="sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E_gui" bpmnElement="sid-C0DC27C3-19F9-4D3D-9D04-8869DAEDEF1E">
<omgdi:waypoint x="285.0" y="170.0"/> <omgdi:waypoint x="887" y="1085" />
<omgdi:waypoint x="285.0" y="211.0"/> <omgdi:waypoint x="887.5" y="1147" />
<omgdi:waypoint x="670.5" y="1147" />
<omgdi:waypoint x="670" y="1219" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D" id="sid-E47AA9C3-9EB7-4B07-BB17-086388AACE0D_gui"> <bpmndi:BPMNEdge id="sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D_gui" bpmnElement="sid-A8886943-1369-43FB-BFC1-FF1FF974EB5D">
<omgdi:waypoint x="791.0" y="1240.0"/> <omgdi:waypoint x="551" y="1184" />
<omgdi:waypoint x="871.0" y="1240.0"/> <omgdi:waypoint x="594" y="1184" />
<omgdi:waypoint x="594" y="1220" />
<omgdi:waypoint x="650" y="1234" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE" id="sid-C609F3E0-2D09-469C-8750-3E3BA8C926BE_gui"> <bpmndi:BPMNEdge id="sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B_gui" bpmnElement="sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B">
<omgdi:waypoint x="620.0" y="175.0"/> <omgdi:waypoint x="538" y="1085" />
<omgdi:waypoint x="620.0" y="255.0"/> <omgdi:waypoint x="538.5" y="1114.5" />
<omgdi:waypoint x="501.5" y="1114.5" />
<omgdi:waypoint x="501" y="1144" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11" id="sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11_gui"> <bpmndi:BPMNEdge id="sid-42540C95-8E89-4B6F-B133-F677FA72C9FF_gui" bpmnElement="sid-42540C95-8E89-4B6F-B133-F677FA72C9FF">
<omgdi:waypoint x="488.0" y="575.0"/> <omgdi:waypoint x="392" y="1098" />
<omgdi:waypoint x="488.0" y="637.0"/> <omgdi:waypoint x="488" y="1063" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C" id="sid-7BFA5A55-E297-40FC-88A6-DF1DA809A12C_gui"> <bpmndi:BPMNEdge id="sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8_gui" bpmnElement="sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8">
<omgdi:waypoint x="305.0" y="150.0"/> <omgdi:waypoint x="342" y="1019" />
<omgdi:waypoint x="450.0" y="150.0"/> <omgdi:waypoint x="342" y="1076" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-54E118FA-9A24-434C-9E65-36F9D01FB43D" id="sid-54E118FA-9A24-434C-9E65-36F9D01FB43D_gui"> <bpmndi:BPMNEdge id="sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C_gui" bpmnElement="sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C">
<omgdi:waypoint x="210.0" y="150.0"/> <omgdi:waypoint x="491" y="924" />
<omgdi:waypoint x="265.0" y="150.0"/> <omgdi:waypoint x="442" y="924" />
<omgdi:waypoint x="442" y="979" />
<omgdi:waypoint x="392" y="979" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84" id="sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84_gui"> <bpmndi:BPMNEdge id="sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6_gui" bpmnElement="sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6">
<omgdi:waypoint x="669.0" y="829.0"/> <omgdi:waypoint x="669" y="924" />
<omgdi:waypoint x="669.0" y="884.0"/> <omgdi:waypoint x="591" y="924" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-84756278-D67A-4E65-AD96-24325F08E2D1" id="sid-84756278-D67A-4E65-AD96-24325F08E2D1_gui"> <bpmndi:BPMNEdge id="sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84_gui" bpmnElement="sid-BE9CBE97-0E09-4A37-BD98-65592D2F2E84">
<omgdi:waypoint x="781.0" y="535.0"/> <omgdi:waypoint x="719" y="829" />
<omgdi:waypoint x="718.0" y="535.0"/> <omgdi:waypoint x="719" y="884" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8" id="sid-1DD0519A-72AD-4FB1-91D6-4D18F2DA1FC8_gui"> <bpmndi:BPMNEdge id="sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4_gui" bpmnElement="sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4">
<omgdi:waypoint x="292.0" y="1019.0"/> <omgdi:waypoint x="592" y="789" />
<omgdi:waypoint x="292.0" y="1076.0"/> <omgdi:waypoint x="669" y="789" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4" id="sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4_gui"> <bpmndi:BPMNEdge id="sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4_gui" bpmnElement="sid-B45563D3-2FBE-406D-93E4-85A2DD04B1A4">
<omgdi:waypoint x="341.0" y="865.0"/> <omgdi:waypoint x="391" y="865" />
<omgdi:waypoint x="392.0" y="865.0"/> <omgdi:waypoint x="442" y="865" />
<omgdi:waypoint x="392.0" y="789.0"/> <omgdi:waypoint x="442" y="789" />
<omgdi:waypoint x="442.0" y="789.0"/> <omgdi:waypoint x="492" y="789" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB" id="sid-A0A2FCFF-E2BE-4FE6-A4D2-CCB3DCF68BFB_gui"> <bpmndi:BPMNEdge id="sid-661F5F14-5B94-4977-9827-20654AE2719B_gui" bpmnElement="sid-661F5F14-5B94-4977-9827-20654AE2719B">
<omgdi:waypoint x="813.0" y="155.0"/> <omgdi:waypoint x="887" y="965" />
<omgdi:waypoint x="882.0" y="155.0"/> <omgdi:waypoint x="887" y="1005" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9" id="sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9_gui"> <bpmndi:BPMNEdge id="sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9_gui" bpmnElement="sid-2A94D2F0-DF4B-45B6-A30D-FFB9BDF6E9D9">
<omgdi:waypoint x="837.0" y="826.0"/> <omgdi:waypoint x="887" y="826" />
<omgdi:waypoint x="837.0" y="885.0"/> <omgdi:waypoint x="887" y="885" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C" id="sid-8449C64C-CF1D-4601-ACAE-2CD61BE2D36C_gui"> <bpmndi:BPMNEdge id="sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51_gui" bpmnElement="sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51">
<omgdi:waypoint x="441.0" y="924.0"/> <omgdi:waypoint x="887" y="717" />
<omgdi:waypoint x="392.0" y="924.0"/> <omgdi:waypoint x="887" y="746" />
<omgdi:waypoint x="392.0" y="979.0"/>
<omgdi:waypoint x="342.0" y="979.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-0204722F-5A92-4236-BBF1-C66123E14E22" id="sid-0204722F-5A92-4236-BBF1-C66123E14E22_gui"> <bpmndi:BPMNEdge id="sid-FAA04C3A-F55B-4947-850D-5A180D43BD61_gui" bpmnElement="sid-FAA04C3A-F55B-4947-850D-5A180D43BD61">
<omgdi:waypoint x="670.0" y="295.0"/> <omgdi:waypoint x="766" y="677" />
<omgdi:waypoint x="787.0" y="295.0"/> <omgdi:waypoint x="837" y="677" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E" id="sid-DC398932-1111-4CA2-AEB4-D460E0E06C6E_gui"> <bpmndi:BPMNEdge id="sid-13838920-8EE4-45CB-8F01-29F13CA13819_gui" bpmnElement="sid-13838920-8EE4-45CB-8F01-29F13CA13819">
<omgdi:waypoint x="285.0" y="291.0"/> <omgdi:waypoint x="588" y="677" />
<omgdi:waypoint x="285.0" y="330.0"/> <omgdi:waypoint x="666" y="677" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-85116AFA-E95A-4384-9695-361C1A6070C3" id="sid-85116AFA-E95A-4384-9695-361C1A6070C3_gui"> <bpmndi:BPMNEdge id="sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11_gui" bpmnElement="sid-9CA8DF1F-1622-4F6A-B9A6-761C60C29A11">
<omgdi:waypoint x="831.0" y="455.0"/> <omgdi:waypoint x="538" y="575" />
<omgdi:waypoint x="831.0" y="495.0"/> <omgdi:waypoint x="538" y="637" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-42540C95-8E89-4B6F-B133-F677FA72C9FF" id="sid-42540C95-8E89-4B6F-B133-F677FA72C9FF_gui"> <bpmndi:BPMNEdge id="sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC_gui" bpmnElement="sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC">
<omgdi:waypoint x="342.0" y="1098.0"/> <omgdi:waypoint x="668" y="535" />
<omgdi:waypoint x="438.0" y="1063.0"/> <omgdi:waypoint x="588" y="535" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC" id="sid-0C53B343-3753-4EED-A6FE-C1A7DFBF13BC_gui"> <bpmndi:BPMNEdge id="sid-84756278-D67A-4E65-AD96-24325F08E2D1_gui" bpmnElement="sid-84756278-D67A-4E65-AD96-24325F08E2D1">
<omgdi:waypoint x="618.0" y="535.0"/> <omgdi:waypoint x="831" y="535" />
<omgdi:waypoint x="538.0" y="535.0"/> <omgdi:waypoint x="768" y="535" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6" id="sid-C96EBBBD-7DDA-4875-89AC-0F030E53C2B6_gui"> <bpmndi:BPMNEdge id="sid-0204722F-5A92-4236-BBF1-C66123E14E22_gui" bpmnElement="sid-0204722F-5A92-4236-BBF1-C66123E14E22">
<omgdi:waypoint x="619.0" y="924.0"/> <omgdi:waypoint x="720" y="295" />
<omgdi:waypoint x="541.0" y="924.0"/> <omgdi:waypoint x="837" y="295" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-D7D86B12-A88C-4072-9852-6DD62643556A" id="sid-D7D86B12-A88C-4072-9852-6DD62643556A_gui"> <bpmndi:BPMNEdge id="sid-4A3A7E6E-F79B-4842-860C-407DB9227023_gui" bpmnElement="sid-4A3A7E6E-F79B-4842-860C-407DB9227023">
<omgdi:waypoint x="285.0" y="370.0"/> <omgdi:waypoint x="341" y="785" />
<omgdi:waypoint x="285.5" y="417.5"/> <omgdi:waypoint x="341" y="825" />
<omgdi:waypoint x="271.5" y="412.0"/>
<omgdi:waypoint x="271.0" y="465.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-699ED598-1AB9-4A3B-9315-9C89578FB017" id="sid-699ED598-1AB9-4A3B-9315-9C89578FB017_gui"> <bpmndi:BPMNEdge id="sid-C132728C-7DAF-468C-A807-90A34847071E_gui" bpmnElement="sid-C132728C-7DAF-468C-A807-90A34847071E">
<omgdi:waypoint x="835.0" y="335.0"/> <omgdi:waypoint x="341" y="665" />
<omgdi:waypoint x="833.0" y="375.0"/> <omgdi:waypoint x="341" y="705" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4" id="sid-0E826E42-8FBC-4532-96EA-C82E7340CBA4_gui"> <bpmndi:BPMNEdge id="sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27_gui" bpmnElement="sid-AE7CFA43-AC83-4F28-BCE3-AD7BE9CE6F27">
<omgdi:waypoint x="542.0" y="789.0"/> <omgdi:waypoint x="327" y="545" />
<omgdi:waypoint x="619.0" y="789.0"/> <omgdi:waypoint x="334" y="585" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51" id="sid-A19043EA-D140-48AE-99A1-4B1EA3DE0E51_gui"> <bpmndi:BPMNEdge id="sid-85116AFA-E95A-4384-9695-361C1A6070C3_gui" bpmnElement="sid-85116AFA-E95A-4384-9695-361C1A6070C3">
<omgdi:waypoint x="837.0" y="717.0"/> <omgdi:waypoint x="881" y="455" />
<omgdi:waypoint x="837.0" y="746.0"/> <omgdi:waypoint x="881" y="495" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D" id="sid-8E17C1AF-45C2-48C7-A794-1259E2ECA43D_gui"> <bpmndi:BPMNEdge id="sid-699ED598-1AB9-4A3B-9315-9C89578FB017_gui" bpmnElement="sid-699ED598-1AB9-4A3B-9315-9C89578FB017">
<omgdi:waypoint x="408.0" y="390.0"/> <omgdi:waypoint x="885" y="335" />
<omgdi:waypoint x="408.0" y="436.0"/> <omgdi:waypoint x="883" y="375" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B" id="sid-108A05A6-D07C-4DA9-AAC3-8075A721B44B_gui"> <bpmndi:BPMNEdge id="sid-54E118FA-9A24-434C-9E65-36F9D01FB43D_gui" bpmnElement="sid-54E118FA-9A24-434C-9E65-36F9D01FB43D">
<omgdi:waypoint x="488.0" y="1085.0"/> <omgdi:waypoint x="260" y="150" />
<omgdi:waypoint x="488.5" y="1114.5"/> <omgdi:waypoint x="315" y="150" />
<omgdi:waypoint x="451.5" y="1114.5"/>
<omgdi:waypoint x="451.0" y="1144.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF_gui" bpmnElement="sid-9CAB06E6-EDCF-4193-869A-FE8328E8CBFF">
<omgdc:Bounds x="230" y="135" width="30" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8_gui" bpmnElement="sid-F4CFA154-9281-4579-B117-0859A2BFF7E8">
<omgdc:Bounds x="315" y="130" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E489DED4-8C38-4841-80BC-E514353C1B8C_gui" bpmnElement="sid-E489DED4-8C38-4841-80BC-E514353C1B8C">
<omgdc:Bounds x="620" y="255" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-B88338F7-5084-4532-9ABB-7387B1E5A664_gui" bpmnElement="sid-B88338F7-5084-4532-9ABB-7387B1E5A664">
<omgdc:Bounds x="838" y="255" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-35745597-A6C0-424B-884C-C5C23B60C942_gui" bpmnElement="sid-35745597-A6C0-424B-884C-C5C23B60C942">
<omgdc:Bounds x="832" y="375" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114_gui" bpmnElement="sid-0BC1E7F7-CBDA-4591-95B9-320FCBEF6114">
<omgdc:Bounds x="832" y="495" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570_gui" bpmnElement="sid-45841FFD-3D92-4A18-9CE3-84DC5282F570">
<omgdc:Bounds x="292" y="585" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-A8E18F57-FC41-401D-A397-9264C3E48293_gui" bpmnElement="sid-A8E18F57-FC41-401D-A397-9264C3E48293">
<omgdc:Bounds x="292" y="705" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD_gui" bpmnElement="sid-E98E44A0-A273-4350-BA75-B37F2FCBA1DD">
<omgdc:Bounds x="292" y="825" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08_gui" bpmnElement="sid-29C1DD4B-9E3E-4686-892D-D47927F6DA08">
<omgdc:Bounds x="272" y="465" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-107A993F-6302-4391-9BE2-068C9C7B693B_gui" bpmnElement="sid-107A993F-6302-4391-9BE2-068C9C7B693B">
<omgdc:Bounds x="742" y="1200" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C_gui" bpmnElement="sid-71AA325A-4D02-46B4-8DC9-00C90BC5337C">
<omgdc:Bounds x="669" y="495" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-54BB293D-91B6-41B5-A5C4-423300D74D14_gui" bpmnElement="sid-54BB293D-91B6-41B5-A5C4-423300D74D14">
<omgdc:Bounds x="489" y="495" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0_gui" bpmnElement="sid-D8777102-7A64-42E6-A988-D0AE3049ABB0">
<omgdc:Bounds x="489" y="637" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E6A08072-E35C-4545-9C66-B74B615F34C2_gui" bpmnElement="sid-E6A08072-E35C-4545-9C66-B74B615F34C2">
<omgdc:Bounds x="667" y="637" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-BEC02819-27FE-4484-8FDA-08450F4DE618_gui" bpmnElement="sid-BEC02819-27FE-4484-8FDA-08450F4DE618">
<omgdc:Bounds x="838" y="637" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0_gui" bpmnElement="sid-6576AA43-43DF-4086-98C8-FD2B22F20EB0">
<omgdc:Bounds x="838" y="746" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-08397892-678C-4706-A05F-8F6DAE9B5423_gui" bpmnElement="sid-08397892-678C-4706-A05F-8F6DAE9B5423">
<omgdc:Bounds x="838" y="885" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-3500C16F-8037-4987-9022-8E30AB6B0590_gui" bpmnElement="sid-3500C16F-8037-4987-9022-8E30AB6B0590">
<omgdc:Bounds x="838" y="1005" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-A473B421-0981-49D8-BD5A-66832BD518EC_gui" bpmnElement="sid-A473B421-0981-49D8-BD5A-66832BD518EC">
<omgdc:Bounds x="493" y="749" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A_gui" bpmnElement="sid-F18EA1E5-B692-484C-AB84-2F422BF7868A">
<omgdc:Bounds x="670" y="749" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-D67A997E-C7CF-4581-8749-4F931D8737B5_gui" bpmnElement="sid-D67A997E-C7CF-4581-8749-4F931D8737B5">
<omgdc:Bounds x="670" y="884" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-399AE395-D46F-4A30-B875-E904970AF141_gui" bpmnElement="sid-399AE395-D46F-4A30-B875-E904970AF141">
<omgdc:Bounds x="492" y="884" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA_gui" bpmnElement="sid-738EA50B-3EB5-464B-96B8-6CA5FC30ECBA">
<omgdc:Bounds x="293" y="939" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474_gui" bpmnElement="sid-5598F421-4AC5-4C12-9239-EFAC51C5F474">
<omgdc:Bounds x="293" y="1076" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-CF5677F8-747F-4E95-953E-4DAB186958F4_gui" bpmnElement="sid-CF5677F8-747F-4E95-953E-4DAB186958F4">
<omgdc:Bounds x="489" y="1005" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283_gui" bpmnElement="sid-A73FF591-2A52-42DF-97DB-6CEEF8991283">
<omgdc:Bounds x="452" y="1144" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF_gui" bpmnElement="sid-69DF31CE-D587-4BA8-8BE6-72786108D8DF">
<omgdc:Bounds x="500" y="110" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3_gui" bpmnElement="sid-38B84B23-6757-4357-9AF5-A62A5C8AC1D3" isMarkerVisible="true">
<omgdc:Bounds x="650" y="135" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-732095A1-B07A-4B08-A46B-277C12901DED_gui" bpmnElement="sid-732095A1-B07A-4B08-A46B-277C12901DED">
<omgdc:Bounds x="763" y="115" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74_gui" bpmnElement="sid-23391B60-C6A7-4C9E-9F95-43EA84ECFB74">
<omgdc:Bounds x="285" y="211" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247_gui" bpmnElement="sid-9A40D0CD-3BD0-4A0D-A6B0-60FD60265247" isMarkerVisible="true">
<omgdc:Bounds x="315" y="330" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-B2E34105-96D5-4020-85D9-C569BA42D618_gui" bpmnElement="sid-B2E34105-96D5-4020-85D9-C569BA42D618">
<omgdc:Bounds x="408" y="310" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283_gui" bpmnElement="sid-3D1455CF-6B1E-4EB1-81B2-D738110BB283">
<omgdc:Bounds x="650" y="1219" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B_gui" bpmnElement="sid-75EE4F61-E8E2-441B-8818-30E3BACF140B">
<omgdc:Bounds x="444" y="436" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-4864A824-7467-421A-A654-83EE83F7681C_gui" bpmnElement="sid-4864A824-7467-421A-A654-83EE83F7681C">
<omgdc:Bounds x="932" y="141" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B_gui" bpmnElement="sid-6938255D-3C1A-4B94-9E83-4D467E0DDB4B">
<omgdc:Bounds x="921" y="1226" width="28" height="28" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</definitions> </definitions>

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:signavio="http://www.signavio.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="Signavio Process Editor, http://www.signavio.com" exporterVersion="" expressionLanguage="http://www.w3.org/1999/XPath" id="sid-e768d5da-695e-4e7f-9056-00d2c55ebc7a" targetNamespace="http://www.signavio.com/bpmn20" typeLanguage="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd"> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:signavio="http://www.signavio.com" id="sid-e768d5da-695e-4e7f-9056-00d2c55ebc7a" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="4.11.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<collaboration id="sid-0f17acc3-6084-4563-9deb-bdcad51f2d07"> <collaboration id="sid-0f17acc3-6084-4563-9deb-bdcad51f2d07">
<participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel One Path Ends" processRef="sid-33b2dda8-ca46-47ca-9f08-43de73abde9e"> <participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel One Path Ends" processRef="sid-33b2dda8-ca46-47ca-9f08-43de73abde9e">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
</participant> </participant>
</collaboration> </collaboration>
<process id="sid-33b2dda8-ca46-47ca-9f08-43de73abde9e" isClosed="false" isExecutable="false" name="Parallel One Path Ends" processType="None"> <process id="sid-33b2dda8-ca46-47ca-9f08-43de73abde9e" name="Parallel One Path Ends" processType="None" isClosed="false" isExecutable="false">
<laneSet id="sid-a3c82d8b-0ff3-4d32-822a-c4867d4b03ec"> <laneSet id="sid-a3c82d8b-0ff3-4d32-822a-c4867d4b03ec">
<lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester"> <lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue=""/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="" />
</extensionElements> </extensionElements>
<flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef> <flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef>
<flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef> <flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef>
@ -19,174 +19,178 @@
<flowNodeRef>sid-CA089240-802A-4C32-9130-FB1A33DDCCC3</flowNodeRef> <flowNodeRef>sid-CA089240-802A-4C32-9130-FB1A33DDCCC3</flowNodeRef>
<flowNodeRef>sid-E2054FDD-0C20-4939-938D-2169B317FEE7</flowNodeRef> <flowNodeRef>sid-E2054FDD-0C20-4939-938D-2169B317FEE7</flowNodeRef>
<flowNodeRef>sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5</flowNodeRef> <flowNodeRef>sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5</flowNodeRef>
<flowNodeRef>sid-F3A979E3-F586-4807-8223-1FAB5A5647B0</flowNodeRef>
<flowNodeRef>sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB</flowNodeRef> <flowNodeRef>sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB</flowNodeRef>
<flowNodeRef>sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84</flowNodeRef> <flowNodeRef>sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84</flowNodeRef>
<flowNodeRef>sid-40294A27-262C-4805-94A0-36AC9DFEA55A</flowNodeRef> <flowNodeRef>sid-40294A27-262C-4805-94A0-36AC9DFEA55A</flowNodeRef>
<flowNodeRef>sid-F3A979E3-F586-4807-8223-1FAB5A5647B0</flowNodeRef>
</lane> </lane>
</laneSet> </laneSet>
<startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name=""> <startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing> <outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing>
</startEvent> </startEvent>
<parallelGateway gatewayDirection="Diverging" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name=""> <parallelGateway id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming> <incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming>
<outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing> <outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing>
<outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing> <outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing>
</parallelGateway> </parallelGateway>
<task completionQuantity="1" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" isForCompensation="false" name="Parallel Task" startQuantity="1"> <task id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" name="Parallel Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming> <incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming>
<outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing> <outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" isForCompensation="false" name="Choice 1" startQuantity="1"> <task id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" name="Choice 1">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming> <incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming>
<outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing> <outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing>
</task> </task>
<exclusiveGateway gatewayDirection="Diverging" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name=""> <exclusiveGateway id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming> <incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming>
<outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing> <outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing>
<outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing> <outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing>
</exclusiveGateway> </exclusiveGateway>
<task completionQuantity="1" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" isForCompensation="false" name="Yes Task" startQuantity="1"> <task id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" name="Yes Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming> <incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming>
<outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing> <outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" isForCompensation="false" name="Done" startQuantity="1">
<extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/>
</extensionElements>
<incoming>sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A</incoming>
<outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing>
</task>
<endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name=""> <endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming> <incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming>
</endEvent> </endEvent>
<endEvent id="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84" name=""> <endEvent id="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming> <incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming>
</endEvent> </endEvent>
<inclusiveGateway gatewayDirection="Converging" id="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" name=""> <inclusiveGateway id="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" name="" gatewayDirection="Converging" default="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming> <incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming>
<incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming> <incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming>
<outgoing>sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A</outgoing> <outgoing>sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A</outgoing>
</inclusiveGateway> </inclusiveGateway>
<sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778"/> <sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" />
<sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86"/> <sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" />
<sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3"/> <sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" />
<sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7"/> <sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" />
<sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5"/> <sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-40294A27-262C-4805-94A0-36AC9DFEA55A"/> <conditionExpression xsi:type="tFormalExpression">choice == 'Yes'</conditionExpression>
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB"/> </sequenceFlow>
<sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84"/> <sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" />
<sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-40294A27-262C-4805-94A0-36AC9DFEA55A"/> <sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" />
<sequenceFlow id="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A" name="" sourceRef="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0"/> <sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84">
<conditionExpression xsi:type="tFormalExpression">choice == 'No'</conditionExpression>
</sequenceFlow>
<sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" />
<sequenceFlow id="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A" name="" sourceRef="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" />
<task id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" name="Done">
<extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements>
<incoming>sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A</incoming>
<outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing>
</task>
</process> </process>
<bpmndi:BPMNDiagram id="sid-45a74cc8-83cd-41da-8041-dd8449ea4c0f"> <bpmndi:BPMNDiagram id="sid-45a74cc8-83cd-41da-8041-dd8449ea4c0f">
<bpmndi:BPMNPlane bpmnElement="sid-0f17acc3-6084-4563-9deb-bdcad51f2d07" id="sid-8979dc6d-9b90-4b0d-8bab-1999dec21a52"> <bpmndi:BPMNPlane id="sid-8979dc6d-9b90-4b0d-8bab-1999dec21a52" bpmnElement="sid-0f17acc3-6084-4563-9deb-bdcad51f2d07">
<bpmndi:BPMNShape bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" isHorizontal="true">
<omgdc:Bounds height="479.0" width="776.0" x="120.0" y="90.0"/> <omgdc:Bounds x="120" y="90" width="776" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" isHorizontal="true">
<omgdc:Bounds height="479.0" width="746.0" x="150.0" y="90.0"/> <omgdc:Bounds x="150" y="90" width="746" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui"> <bpmndi:BPMNEdge id="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A_gui" bpmnElement="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A">
<omgdc:Bounds height="30.0" width="30.0" x="190.0" y="122.0"/> <omgdi:waypoint x="640" y="360" />
</bpmndi:BPMNShape> <omgdi:waypoint x="678" y="364" />
<bpmndi:BPMNShape bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui">
<omgdc:Bounds height="40.0" width="40.0" x="315.0" y="117.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui">
<omgdc:Bounds height="80.0" width="100.0" x="469.0" y="97.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="214.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="261.0" y="339.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui">
<omgdc:Bounds height="80.0" width="100.0" x="371.0" y="319.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui">
<omgdc:Bounds height="80.0" width="100.0" x="678.0" y="328.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui">
<omgdc:Bounds height="28.0" width="28.0" x="714.0" y="448.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84" id="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84_gui">
<omgdc:Bounds height="28.0" width="28.0" x="267.0" y="448.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-40294A27-262C-4805-94A0-36AC9DFEA55A" id="sid-40294A27-262C-4805-94A0-36AC9DFEA55A_gui">
<omgdc:Bounds height="40.0" width="40.0" x="600.0" y="339.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF" id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui">
<omgdi:waypoint x="301.0" y="359.0"/>
<omgdi:waypoint x="371.0" y="359.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui"> <bpmndi:BPMNEdge id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui" bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820">
<omgdi:waypoint x="355.0" y="137.0"/> <omgdi:waypoint x="569" y="137" />
<omgdi:waypoint x="469.0" y="137.0"/> <omgdi:waypoint x="620.5" y="137" />
<omgdi:waypoint x="620" y="339" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui"> <bpmndi:BPMNEdge id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui" bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42">
<omgdi:waypoint x="281.0" y="294.0"/> <omgdi:waypoint x="281" y="379" />
<omgdi:waypoint x="281.0" y="339.0"/> <omgdi:waypoint x="281" y="448" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A" id="sid-8B2BFD35-F1B2-4C77-AC51-F15960D8791A_gui"> <bpmndi:BPMNEdge id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui" bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF">
<omgdi:waypoint x="640.0" y="360.0"/> <omgdi:waypoint x="728" y="408" />
<omgdi:waypoint x="678.0" y="364.0"/> <omgdi:waypoint x="728" y="448" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui"> <bpmndi:BPMNEdge id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui" bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09">
<omgdi:waypoint x="728.0" y="408.0"/> <omgdi:waypoint x="471" y="359" />
<omgdi:waypoint x="728.0" y="448.0"/> <omgdi:waypoint x="600" y="359" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui"> <bpmndi:BPMNEdge id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui" bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF">
<omgdi:waypoint x="220.0" y="137.0"/> <omgdi:waypoint x="301" y="359" />
<omgdi:waypoint x="315.0" y="137.0"/> <omgdi:waypoint x="371" y="359" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09" id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui"> <bpmndi:BPMNEdge id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui" bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140">
<omgdi:waypoint x="471.0" y="359.0"/> <omgdi:waypoint x="281" y="294" />
<omgdi:waypoint x="600.0" y="359.0"/> <omgdi:waypoint x="281" y="339" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui"> <bpmndi:BPMNEdge id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui" bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C">
<omgdi:waypoint x="335.0" y="157.0"/> <omgdi:waypoint x="335" y="157" />
<omgdi:waypoint x="335.5" y="185.5"/> <omgdi:waypoint x="335.5" y="185.5" />
<omgdi:waypoint x="281.0" y="185.5"/> <omgdi:waypoint x="281" y="185.5" />
<omgdi:waypoint x="281.0" y="214.0"/> <omgdi:waypoint x="281" y="214" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui"> <bpmndi:BPMNEdge id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui" bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94">
<omgdi:waypoint x="281.0" y="379.0"/> <omgdi:waypoint x="355" y="137" />
<omgdi:waypoint x="281.0" y="448.0"/> <omgdi:waypoint x="469" y="137" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820" id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui"> <bpmndi:BPMNEdge id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui" bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612">
<omgdi:waypoint x="569.0" y="137.0"/> <omgdi:waypoint x="220" y="137" />
<omgdi:waypoint x="620.5" y="137.0"/> <omgdi:waypoint x="315" y="137" />
<omgdi:waypoint x="620.0" y="339.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui" bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE">
<omgdc:Bounds x="190" y="122" width="30" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui" bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778">
<omgdc:Bounds x="315" y="117" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui" bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86">
<omgdc:Bounds x="469" y="97" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui" bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3">
<omgdc:Bounds x="231" y="214" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" isMarkerVisible="true">
<omgdc:Bounds x="261" y="339" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui" bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<omgdc:Bounds x="371" y="319" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui" bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0">
<omgdc:Bounds x="678" y="328" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui" bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB">
<omgdc:Bounds x="714" y="448" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84_gui" bpmnElement="sid-8FFE9D52-DC83-46A8-BB36-98BA94E5FE84">
<omgdc:Bounds x="267" y="448" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-40294A27-262C-4805-94A0-36AC9DFEA55A_gui" bpmnElement="sid-40294A27-262C-4805-94A0-36AC9DFEA55A">
<omgdc:Bounds x="600" y="339" width="40" height="40" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</definitions> </definitions>

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:signavio="http://www.signavio.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="Signavio Process Editor, http://www.signavio.com" exporterVersion="" expressionLanguage="http://www.w3.org/1999/XPath" id="sid-30c405f0-d9e2-4a64-bee9-991f9cdd29ca" targetNamespace="http://www.signavio.com/bpmn20" typeLanguage="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd"> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:signavio="http://www.signavio.com" id="sid-30c405f0-d9e2-4a64-bee9-991f9cdd29ca" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="4.11.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<collaboration id="sid-5a474cce-f38e-40ef-8177-46451f1c0008"> <collaboration id="sid-5a474cce-f38e-40ef-8177-46451f1c0008">
<participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel Then Exclusive No Inclusive" processRef="sid-900d26c9-beab-47a4-8092-4284bfb39927"> <participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel Then Exclusive No Inclusive" processRef="sid-900d26c9-beab-47a4-8092-4284bfb39927">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
</participant> </participant>
</collaboration> </collaboration>
<process id="sid-900d26c9-beab-47a4-8092-4284bfb39927" isClosed="false" isExecutable="false" name="Parallel Then Exclusive No Inclusive" processType="None"> <process id="sid-900d26c9-beab-47a4-8092-4284bfb39927" name="Parallel Then Exclusive No Inclusive" processType="None" isClosed="false" isExecutable="false">
<laneSet id="sid-6ee2dc30-d14c-4d0c-9e3c-dab157e066ae"> <laneSet id="sid-6ee2dc30-d14c-4d0c-9e3c-dab157e066ae">
<lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester"> <lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue=""/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="" />
</extensionElements> </extensionElements>
<flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef> <flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef>
<flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef> <flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef>
@ -28,192 +28,196 @@
</laneSet> </laneSet>
<startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name=""> <startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing> <outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing>
</startEvent> </startEvent>
<parallelGateway gatewayDirection="Diverging" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name=""> <parallelGateway id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming> <incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming>
<outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing> <outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing>
<outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing> <outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing>
</parallelGateway> </parallelGateway>
<task completionQuantity="1" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" isForCompensation="false" name="Parallel Task" startQuantity="1"> <task id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" name="Parallel Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming> <incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming>
<outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing> <outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" isForCompensation="false" name="Choice 1" startQuantity="1"> <task id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" name="Choice 1">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming> <incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming>
<outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing> <outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing>
</task> </task>
<exclusiveGateway gatewayDirection="Diverging" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name=""> <exclusiveGateway id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming> <incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming>
<outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing> <outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing>
<outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing> <outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing>
</exclusiveGateway> </exclusiveGateway>
<task completionQuantity="1" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" isForCompensation="false" name="Yes Task" startQuantity="1"> <task id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" name="Yes Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming> <incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming>
<outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing> <outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" isForCompensation="false" name="No Task" startQuantity="1"> <task id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" name="No Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming> <incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming>
<outgoing>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</outgoing> <outgoing>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" isForCompensation="false" name="Done" startQuantity="1"> <task id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" name="Done">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</incoming> <incoming>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</incoming>
<outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing> <outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing>
</task> </task>
<endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name=""> <endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming> <incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming>
</endEvent> </endEvent>
<exclusiveGateway gatewayDirection="Converging" id="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" name=""> <exclusiveGateway id="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" name="" gatewayDirection="Converging" default="sid-3B450653-1657-4247-B96E-6E3E6262BB97">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</incoming> <incoming>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</incoming>
<incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming> <incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming>
<outgoing>sid-3B450653-1657-4247-B96E-6E3E6262BB97</outgoing> <outgoing>sid-3B450653-1657-4247-B96E-6E3E6262BB97</outgoing>
</exclusiveGateway> </exclusiveGateway>
<parallelGateway gatewayDirection="Converging" id="sid-D856C519-562B-46A3-B32C-9587F394BD0F" name=""> <parallelGateway id="sid-D856C519-562B-46A3-B32C-9587F394BD0F" name="" gatewayDirection="Converging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming> <incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming>
<incoming>sid-3B450653-1657-4247-B96E-6E3E6262BB97</incoming> <incoming>sid-3B450653-1657-4247-B96E-6E3E6262BB97</incoming>
<outgoing>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</outgoing> <outgoing>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</outgoing>
</parallelGateway> </parallelGateway>
<sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778"/> <sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" />
<sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86"/> <sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" />
<sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3"/> <sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" />
<sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7"/> <sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" />
<sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3"/> <sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3">
<sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5"/> <conditionExpression xsi:type="tFormalExpression">choice == 'No'</conditionExpression>
<sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-D856C519-562B-46A3-B32C-9587F394BD0F"/> </sequenceFlow>
<sequenceFlow id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" name="" sourceRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" targetRef="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2"/> <sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<sequenceFlow id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" name="" sourceRef="sid-D856C519-562B-46A3-B32C-9587F394BD0F" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0"/> <conditionExpression xsi:type="tFormalExpression">choice == 'Yes'</conditionExpression>
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB"/> </sequenceFlow>
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2"/> <sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-D856C519-562B-46A3-B32C-9587F394BD0F" />
<sequenceFlow id="sid-3B450653-1657-4247-B96E-6E3E6262BB97" name="" sourceRef="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" targetRef="sid-D856C519-562B-46A3-B32C-9587F394BD0F"/> <sequenceFlow id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" name="" sourceRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" targetRef="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" />
<sequenceFlow id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" name="" sourceRef="sid-D856C519-562B-46A3-B32C-9587F394BD0F" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" />
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" />
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" />
<sequenceFlow id="sid-3B450653-1657-4247-B96E-6E3E6262BB97" name="" sourceRef="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" targetRef="sid-D856C519-562B-46A3-B32C-9587F394BD0F" />
</process> </process>
<bpmndi:BPMNDiagram id="sid-8e452264-f261-4e0f-bb04-953b98a69997"> <bpmndi:BPMNDiagram id="sid-8e452264-f261-4e0f-bb04-953b98a69997">
<bpmndi:BPMNPlane bpmnElement="sid-5a474cce-f38e-40ef-8177-46451f1c0008" id="sid-2831b2c4-9485-4174-9ccc-4942ec15b903"> <bpmndi:BPMNPlane id="sid-2831b2c4-9485-4174-9ccc-4942ec15b903" bpmnElement="sid-5a474cce-f38e-40ef-8177-46451f1c0008">
<bpmndi:BPMNShape bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" isHorizontal="true">
<omgdc:Bounds height="479.0" width="776.0" x="120.0" y="90.0"/> <omgdc:Bounds x="120" y="90" width="776" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" isHorizontal="true">
<omgdc:Bounds height="479.0" width="746.0" x="150.0" y="90.0"/> <omgdc:Bounds x="150" y="90" width="746" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui"> <bpmndi:BPMNEdge id="sid-3B450653-1657-4247-B96E-6E3E6262BB97_gui" bpmnElement="sid-3B450653-1657-4247-B96E-6E3E6262BB97">
<omgdc:Bounds height="30.0" width="30.0" x="190.0" y="122.0"/> <omgdi:waypoint x="543" y="410" />
</bpmndi:BPMNShape> <omgdi:waypoint x="568.5" y="410.5" />
<bpmndi:BPMNShape bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui"> <omgdi:waypoint x="568.5" y="368" />
<omgdc:Bounds height="40.0" width="40.0" x="315.0" y="117.0"/> <omgdi:waypoint x="600" y="368" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui">
<omgdc:Bounds height="80.0" width="100.0" x="469.0" y="97.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="214.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="261.0" y="339.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui">
<omgdc:Bounds height="80.0" width="100.0" x="371.0" y="319.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="437.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui">
<omgdc:Bounds height="80.0" width="100.0" x="678.0" y="328.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui">
<omgdc:Bounds height="28.0" width="28.0" x="714.0" y="448.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" id="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="503.0" y="390.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-D856C519-562B-46A3-B32C-9587F394BD0F" id="sid-D856C519-562B-46A3-B32C-9587F394BD0F_gui">
<omgdc:Bounds height="40.0" width="40.0" x="600.0" y="348.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui">
<omgdi:waypoint x="355.0" y="137.0"/>
<omgdi:waypoint x="469.0" y="137.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE_gui"> <bpmndi:BPMNEdge id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui" bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09">
<omgdi:waypoint x="331.0" y="477.0"/> <omgdi:waypoint x="471" y="359" />
<omgdi:waypoint x="523.5" y="477.0"/> <omgdi:waypoint x="523.5" y="359" />
<omgdi:waypoint x="523.0" y="430.0"/> <omgdi:waypoint x="523" y="390" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui"> <bpmndi:BPMNEdge id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui" bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF">
<omgdi:waypoint x="728.0" y="408.0"/> <omgdi:waypoint x="728" y="408" />
<omgdi:waypoint x="728.0" y="448.0"/> <omgdi:waypoint x="728" y="448" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui"> <bpmndi:BPMNEdge id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740_gui" bpmnElement="sid-0895E09C-077C-4D12-8C11-31F28CBC7740">
<omgdi:waypoint x="220.0" y="137.0"/> <omgdi:waypoint x="640" y="368" />
<omgdi:waypoint x="315.0" y="137.0"/> <omgdi:waypoint x="678" y="368" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui"> <bpmndi:BPMNEdge id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE_gui" bpmnElement="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE">
<omgdi:waypoint x="335.0" y="157.0"/> <omgdi:waypoint x="331" y="477" />
<omgdi:waypoint x="335.5" y="185.5"/> <omgdi:waypoint x="523.5" y="477" />
<omgdi:waypoint x="281.0" y="185.5"/> <omgdi:waypoint x="523" y="430" />
<omgdi:waypoint x="281.0" y="214.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820" id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui"> <bpmndi:BPMNEdge id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui" bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820">
<omgdi:waypoint x="569.0" y="137.0"/> <omgdi:waypoint x="569" y="137" />
<omgdi:waypoint x="630.0" y="137.0"/> <omgdi:waypoint x="630" y="137" />
<omgdi:waypoint x="620.0" y="348.0"/> <omgdi:waypoint x="620" y="348" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF" id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui"> <bpmndi:BPMNEdge id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui" bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF">
<omgdi:waypoint x="301.0" y="359.0"/> <omgdi:waypoint x="301" y="359" />
<omgdi:waypoint x="371.0" y="359.0"/> <omgdi:waypoint x="371" y="359" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui"> <bpmndi:BPMNEdge id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui" bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42">
<omgdi:waypoint x="281.0" y="294.0"/> <omgdi:waypoint x="281" y="379" />
<omgdi:waypoint x="281.0" y="339.0"/> <omgdi:waypoint x="281" y="437" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09" id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui"> <bpmndi:BPMNEdge id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui" bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140">
<omgdi:waypoint x="471.0" y="359.0"/> <omgdi:waypoint x="281" y="294" />
<omgdi:waypoint x="523.5" y="359.0"/> <omgdi:waypoint x="281" y="339" />
<omgdi:waypoint x="523.0" y="390.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-3B450653-1657-4247-B96E-6E3E6262BB97" id="sid-3B450653-1657-4247-B96E-6E3E6262BB97_gui"> <bpmndi:BPMNEdge id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui" bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C">
<omgdi:waypoint x="543.0" y="410.0"/> <omgdi:waypoint x="335" y="157" />
<omgdi:waypoint x="568.5" y="410.5"/> <omgdi:waypoint x="335.5" y="185.5" />
<omgdi:waypoint x="568.5" y="368.0"/> <omgdi:waypoint x="281" y="185.5" />
<omgdi:waypoint x="600.0" y="368.0"/> <omgdi:waypoint x="281" y="214" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui"> <bpmndi:BPMNEdge id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui" bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94">
<omgdi:waypoint x="281.0" y="379.0"/> <omgdi:waypoint x="355" y="137" />
<omgdi:waypoint x="281.0" y="437.0"/> <omgdi:waypoint x="469" y="137" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740_gui"> <bpmndi:BPMNEdge id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui" bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612">
<omgdi:waypoint x="640.0" y="368.0"/> <omgdi:waypoint x="220" y="137" />
<omgdi:waypoint x="678.0" y="368.0"/> <omgdi:waypoint x="315" y="137" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui" bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE">
<omgdc:Bounds x="190" y="122" width="30" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui" bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778">
<omgdc:Bounds x="315" y="117" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui" bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86">
<omgdc:Bounds x="469" y="97" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui" bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3">
<omgdc:Bounds x="231" y="214" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" isMarkerVisible="true">
<omgdc:Bounds x="261" y="339" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui" bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<omgdc:Bounds x="371" y="319" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3_gui" bpmnElement="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3">
<omgdc:Bounds x="231" y="437" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui" bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0">
<omgdc:Bounds x="678" y="328" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui" bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB">
<omgdc:Bounds x="714" y="448" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2_gui" bpmnElement="sid-040FCBAD-0550-4251-B799-74FCDB0DC3E2" isMarkerVisible="true">
<omgdc:Bounds x="503" y="390" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-D856C519-562B-46A3-B32C-9587F394BD0F_gui" bpmnElement="sid-D856C519-562B-46A3-B32C-9587F394BD0F">
<omgdc:Bounds x="600" y="348" width="40" height="40" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</definitions> </definitions>

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:signavio="http://www.signavio.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="Signavio Process Editor, http://www.signavio.com" exporterVersion="" expressionLanguage="http://www.w3.org/1999/XPath" id="sid-2ed227c3-91bf-49c2-983f-0712464fa6d4" targetNamespace="http://www.signavio.com/bpmn20" typeLanguage="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd"> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:signavio="http://www.signavio.com" id="sid-2ed227c3-91bf-49c2-983f-0712464fa6d4" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="4.11.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<collaboration id="sid-6b109fe2-498a-4dd3-a372-4ad57a3e03b8"> <collaboration id="sid-6b109fe2-498a-4dd3-a372-4ad57a3e03b8">
<participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel Then Exclusive" processRef="sid-bb9ea2d5-58b6-43c7-8e77-6e28f71106f0"> <participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel Then Exclusive" processRef="sid-bb9ea2d5-58b6-43c7-8e77-6e28f71106f0">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
</participant> </participant>
</collaboration> </collaboration>
<process id="sid-bb9ea2d5-58b6-43c7-8e77-6e28f71106f0" isClosed="false" isExecutable="false" name="Parallel Then Exclusive" processType="None"> <process id="sid-bb9ea2d5-58b6-43c7-8e77-6e28f71106f0" name="Parallel Then Exclusive" processType="None" isClosed="false" isExecutable="false">
<laneSet id="sid-97ba594c-117d-496d-bcbf-0287c7af58d8"> <laneSet id="sid-97ba594c-117d-496d-bcbf-0287c7af58d8">
<lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester"> <lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue=""/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="" />
</extensionElements> </extensionElements>
<flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef> <flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef>
<flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef> <flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef>
@ -27,176 +27,180 @@
</laneSet> </laneSet>
<startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name=""> <startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing> <outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing>
</startEvent> </startEvent>
<parallelGateway gatewayDirection="Diverging" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name=""> <parallelGateway id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming> <incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming>
<outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing> <outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing>
<outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing> <outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing>
</parallelGateway> </parallelGateway>
<task completionQuantity="1" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" isForCompensation="false" name="Parallel Task" startQuantity="1"> <task id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" name="Parallel Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming> <incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming>
<outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing> <outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" isForCompensation="false" name="Choice 1" startQuantity="1"> <task id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" name="Choice 1">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming> <incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming>
<outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing> <outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing>
</task> </task>
<exclusiveGateway gatewayDirection="Diverging" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name=""> <exclusiveGateway id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming> <incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming>
<outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing> <outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing>
<outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing> <outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing>
</exclusiveGateway> </exclusiveGateway>
<task completionQuantity="1" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" isForCompensation="false" name="Yes Task" startQuantity="1"> <task id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" name="Yes Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming> <incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming>
<outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing> <outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" isForCompensation="false" name="No Task" startQuantity="1"> <task id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" name="No Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming> <incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming>
<outgoing>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</outgoing> <outgoing>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" isForCompensation="false" name="Done" startQuantity="1"> <task id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" name="Done">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</incoming> <incoming>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</incoming>
<outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing> <outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing>
</task> </task>
<endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name=""> <endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming> <incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming>
</endEvent> </endEvent>
<inclusiveGateway gatewayDirection="Converging" id="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" name=""> <inclusiveGateway id="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" name="" gatewayDirection="Converging" default="sid-0895E09C-077C-4D12-8C11-31F28CBC7740">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming> <incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming>
<incoming>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</incoming> <incoming>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</incoming>
<incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming> <incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming>
<outgoing>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</outgoing> <outgoing>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</outgoing>
</inclusiveGateway> </inclusiveGateway>
<sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778"/> <sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" />
<sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86"/> <sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" />
<sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3"/> <sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" />
<sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7"/> <sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" />
<sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3"/> <sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3">
<sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5"/> <conditionExpression xsi:type="tFormalExpression">choice == 'No'</conditionExpression>
<sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5"/> </sequenceFlow>
<sequenceFlow id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" name="" sourceRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" targetRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5"/> <sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<sequenceFlow id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" name="" sourceRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0"/> <conditionExpression xsi:type="tFormalExpression">choice == 'Yes'</conditionExpression>
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB"/> </sequenceFlow>
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5"/> <sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" />
<sequenceFlow id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" name="" sourceRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" targetRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" />
<sequenceFlow id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" name="" sourceRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" />
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" />
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" />
</process> </process>
<bpmndi:BPMNDiagram id="sid-70742719-bbc1-49e7-aa4e-ad7ae1df57a8"> <bpmndi:BPMNDiagram id="sid-70742719-bbc1-49e7-aa4e-ad7ae1df57a8">
<bpmndi:BPMNPlane bpmnElement="sid-6b109fe2-498a-4dd3-a372-4ad57a3e03b8" id="sid-17cf042c-b181-4b41-ac37-d9559cd9c89f"> <bpmndi:BPMNPlane id="sid-17cf042c-b181-4b41-ac37-d9559cd9c89f" bpmnElement="sid-6b109fe2-498a-4dd3-a372-4ad57a3e03b8">
<bpmndi:BPMNShape bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" isHorizontal="true">
<omgdc:Bounds height="479.0" width="776.0" x="120.0" y="90.0"/> <omgdc:Bounds x="120" y="90" width="776" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" isHorizontal="true">
<omgdc:Bounds height="479.0" width="746.0" x="150.0" y="90.0"/> <omgdc:Bounds x="150" y="90" width="746" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui"> <bpmndi:BPMNEdge id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui" bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09">
<omgdc:Bounds height="30.0" width="30.0" x="190.0" y="122.0"/> <omgdi:waypoint x="471" y="359" />
</bpmndi:BPMNShape> <omgdi:waypoint x="535.5" y="359" />
<bpmndi:BPMNShape bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui"> <omgdi:waypoint x="535.5" y="368.5" />
<omgdc:Bounds height="40.0" width="40.0" x="315.0" y="117.0"/> <omgdi:waypoint x="600" y="368" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui">
<omgdc:Bounds height="80.0" width="100.0" x="469.0" y="97.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="214.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="261.0" y="339.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui">
<omgdc:Bounds height="80.0" width="100.0" x="371.0" y="319.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="437.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui">
<omgdc:Bounds height="80.0" width="100.0" x="678.0" y="328.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui">
<omgdc:Bounds height="28.0" width="28.0" x="714.0" y="448.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5" id="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5_gui">
<omgdc:Bounds height="40.0" width="40.0" x="600.0" y="348.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF" id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui">
<omgdi:waypoint x="301.0" y="359.0"/>
<omgdi:waypoint x="371.0" y="359.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui"> <bpmndi:BPMNEdge id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui" bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF">
<omgdi:waypoint x="355.0" y="137.0"/> <omgdi:waypoint x="728" y="408" />
<omgdi:waypoint x="469.0" y="137.0"/> <omgdi:waypoint x="728" y="448" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui"> <bpmndi:BPMNEdge id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740_gui" bpmnElement="sid-0895E09C-077C-4D12-8C11-31F28CBC7740">
<omgdi:waypoint x="281.0" y="294.0"/> <omgdi:waypoint x="640" y="368" />
<omgdi:waypoint x="281.0" y="339.0"/> <omgdi:waypoint x="678" y="368" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE_gui"> <bpmndi:BPMNEdge id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE_gui" bpmnElement="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE">
<omgdi:waypoint x="331.0" y="477.0"/> <omgdi:waypoint x="331" y="477" />
<omgdi:waypoint x="630.0" y="477.0"/> <omgdi:waypoint x="630" y="477" />
<omgdi:waypoint x="621.0" y="388.0"/> <omgdi:waypoint x="621" y="388" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui"> <bpmndi:BPMNEdge id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui" bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820">
<omgdi:waypoint x="728.0" y="408.0"/> <omgdi:waypoint x="569" y="137" />
<omgdi:waypoint x="728.0" y="448.0"/> <omgdi:waypoint x="630" y="137" />
<omgdi:waypoint x="620" y="348" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui"> <bpmndi:BPMNEdge id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui" bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF">
<omgdi:waypoint x="220.0" y="137.0"/> <omgdi:waypoint x="301" y="359" />
<omgdi:waypoint x="315.0" y="137.0"/> <omgdi:waypoint x="371" y="359" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09" id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui"> <bpmndi:BPMNEdge id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui" bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42">
<omgdi:waypoint x="471.0" y="359.0"/> <omgdi:waypoint x="281" y="379" />
<omgdi:waypoint x="535.5" y="359.0"/> <omgdi:waypoint x="281" y="437" />
<omgdi:waypoint x="535.5" y="368.5"/>
<omgdi:waypoint x="600.0" y="368.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui"> <bpmndi:BPMNEdge id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui" bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140">
<omgdi:waypoint x="335.0" y="157.0"/> <omgdi:waypoint x="281" y="294" />
<omgdi:waypoint x="335.5" y="185.5"/> <omgdi:waypoint x="281" y="339" />
<omgdi:waypoint x="281.0" y="185.5"/>
<omgdi:waypoint x="281.0" y="214.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740_gui"> <bpmndi:BPMNEdge id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui" bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C">
<omgdi:waypoint x="640.0" y="368.0"/> <omgdi:waypoint x="335" y="157" />
<omgdi:waypoint x="678.0" y="368.0"/> <omgdi:waypoint x="335.5" y="185.5" />
<omgdi:waypoint x="281" y="185.5" />
<omgdi:waypoint x="281" y="214" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui"> <bpmndi:BPMNEdge id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui" bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94">
<omgdi:waypoint x="281.0" y="379.0"/> <omgdi:waypoint x="355" y="137" />
<omgdi:waypoint x="281.0" y="437.0"/> <omgdi:waypoint x="469" y="137" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820" id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui"> <bpmndi:BPMNEdge id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui" bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612">
<omgdi:waypoint x="569.0" y="137.0"/> <omgdi:waypoint x="220" y="137" />
<omgdi:waypoint x="630.0" y="137.0"/> <omgdi:waypoint x="315" y="137" />
<omgdi:waypoint x="620.0" y="348.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui" bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE">
<omgdc:Bounds x="190" y="122" width="30" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui" bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778">
<omgdc:Bounds x="315" y="117" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui" bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86">
<omgdc:Bounds x="469" y="97" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui" bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3">
<omgdc:Bounds x="231" y="214" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" isMarkerVisible="true">
<omgdc:Bounds x="261" y="339" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui" bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<omgdc:Bounds x="371" y="319" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3_gui" bpmnElement="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3">
<omgdc:Bounds x="231" y="437" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui" bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0">
<omgdc:Bounds x="678" y="328" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui" bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB">
<omgdc:Bounds x="714" y="448" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5_gui" bpmnElement="sid-EBB511F3-5AD5-4307-9B9B-85C17F8889D5">
<omgdc:Bounds x="600" y="348" width="40" height="40" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</definitions> </definitions>

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:signavio="http://www.signavio.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="Signavio Process Editor, http://www.signavio.com" exporterVersion="" expressionLanguage="http://www.w3.org/1999/XPath" id="sid-787944f5-462c-48b5-bce6-9f81a33c0310" targetNamespace="http://www.signavio.com/bpmn20" typeLanguage="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd"> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:signavio="http://www.signavio.com" id="sid-787944f5-462c-48b5-bce6-9f81a33c0310" targetNamespace="http://www.signavio.com/bpmn20" exporter="Camunda Modeler" exporterVersion="4.11.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">
<collaboration id="sid-e3b04a04-0860-4643-ad2d-bfe79c257bd9"> <collaboration id="sid-e3b04a04-0860-4643-ad2d-bfe79c257bd9">
<participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel Through Same Task" processRef="sid-57c563e3-fb68-4961-ae34-b6201e0c09e8"> <participant id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" name="Parallel Through Same Task" processRef="sid-57c563e3-fb68-4961-ae34-b6201e0c09e8">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
</participant> </participant>
</collaboration> </collaboration>
<process id="sid-57c563e3-fb68-4961-ae34-b6201e0c09e8" isClosed="false" isExecutable="false" name="Parallel Through Same Task" processType="None"> <process id="sid-57c563e3-fb68-4961-ae34-b6201e0c09e8" name="Parallel Through Same Task" processType="None" isClosed="false" isExecutable="false">
<laneSet id="sid-d79fd2d7-1cb4-4e41-9b4a-8daac27581a1"> <laneSet id="sid-d79fd2d7-1cb4-4e41-9b4a-8daac27581a1">
<lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester"> <lane id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" name="Tester">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue=""/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="" />
</extensionElements> </extensionElements>
<flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef> <flowNodeRef>sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE</flowNodeRef>
<flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef> <flowNodeRef>sid-349F8C0C-45EA-489C-84DD-1D944F48D778</flowNodeRef>
@ -27,175 +27,179 @@
</laneSet> </laneSet>
<startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name=""> <startEvent id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing> <outgoing>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</outgoing>
</startEvent> </startEvent>
<parallelGateway gatewayDirection="Diverging" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name=""> <parallelGateway id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming> <incoming>sid-F3994F51-FE54-4910-A1F4-E5895AA1A612</incoming>
<outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing> <outgoing>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</outgoing>
<outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing> <outgoing>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</outgoing>
</parallelGateway> </parallelGateway>
<task completionQuantity="1" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" isForCompensation="false" name="Repeated Task" startQuantity="1"> <task id="sid-57463471-693A-42A2-9EC6-6460BEDECA86" name="Repeated Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming> <incoming>sid-7E15C71B-DE9E-4788-B140-A647C99FDC94</incoming>
<incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming> <incoming>sid-A6DA25CE-636A-46B7-8005-759577956F09</incoming>
<outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing> <outgoing>sid-E3493781-6466-4AED-BAD2-63D115E14820</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" isForCompensation="false" name="Choice 1" startQuantity="1"> <task id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" name="Choice 1">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming> <incoming>sid-B6E22A74-A691-453A-A789-B9F8AF787D7C</incoming>
<outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing> <outgoing>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</outgoing>
</task> </task>
<exclusiveGateway gatewayDirection="Diverging" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name=""> <exclusiveGateway id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" name="" gatewayDirection="Diverging">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming> <incoming>sid-CAEAD081-6E73-4C98-8656-C67DA18F5140</incoming>
<outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing> <outgoing>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</outgoing>
<outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing> <outgoing>sid-9C753C3D-F964-45B0-AF57-234F910529EF</outgoing>
</exclusiveGateway> </exclusiveGateway>
<task completionQuantity="1" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" isForCompensation="false" name="Yes Task" startQuantity="1"> <task id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" name="Yes Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming> <incoming>sid-9C753C3D-F964-45B0-AF57-234F910529EF</incoming>
<outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing> <outgoing>sid-A6DA25CE-636A-46B7-8005-759577956F09</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" isForCompensation="false" name="No Task" startQuantity="1"> <task id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" name="No Task">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming> <incoming>sid-3742C960-71D0-4342-8064-AF1BB9EECB42</incoming>
<outgoing>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</outgoing> <outgoing>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</outgoing>
</task> </task>
<task completionQuantity="1" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" isForCompensation="false" name="Done" startQuantity="1"> <task id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" name="Done">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffcc" />
</extensionElements> </extensionElements>
<incoming>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</incoming> <incoming>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</incoming>
<outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing> <outgoing>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</outgoing>
</task> </task>
<endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name=""> <endEvent id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" name="">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming> <incoming>sid-40496205-24D7-494C-AB6B-CD42B8D606EF</incoming>
</endEvent> </endEvent>
<inclusiveGateway gatewayDirection="Converging" id="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" name=""> <inclusiveGateway id="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" name="" gatewayDirection="Converging" default="sid-0895E09C-077C-4D12-8C11-31F28CBC7740">
<extensionElements> <extensionElements>
<signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff"/> <signavio:signavioMetaData metaKey="bgcolor" metaValue="#ffffff" />
</extensionElements> </extensionElements>
<incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming> <incoming>sid-E3493781-6466-4AED-BAD2-63D115E14820</incoming>
<incoming>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</incoming> <incoming>sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE</incoming>
<outgoing>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</outgoing> <outgoing>sid-0895E09C-077C-4D12-8C11-31F28CBC7740</outgoing>
</inclusiveGateway> </inclusiveGateway>
<sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778"/> <sequenceFlow id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" name="" sourceRef="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" targetRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" />
<sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86"/> <sequenceFlow id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" />
<sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3"/> <sequenceFlow id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" name="" sourceRef="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" targetRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" />
<sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7"/> <sequenceFlow id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" name="" sourceRef="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" targetRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" />
<sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3"/> <sequenceFlow id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" name="No" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3">
<sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5"/> <conditionExpression xsi:type="tFormalExpression">choice == 'No'</conditionExpression>
<sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842"/> </sequenceFlow>
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86"/> <sequenceFlow id="sid-9C753C3D-F964-45B0-AF57-234F910529EF" name="Yes" sourceRef="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" targetRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB"/> <conditionExpression xsi:type="tFormalExpression">choice == 'Yes'</conditionExpression>
<sequenceFlow id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" name="" sourceRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" targetRef="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842"/> </sequenceFlow>
<sequenceFlow id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" name="" sourceRef="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0"/> <sequenceFlow id="sid-E3493781-6466-4AED-BAD2-63D115E14820" name="" sourceRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" targetRef="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" />
<sequenceFlow id="sid-A6DA25CE-636A-46B7-8005-759577956F09" name="" sourceRef="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" targetRef="sid-57463471-693A-42A2-9EC6-6460BEDECA86" />
<sequenceFlow id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" name="" sourceRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" targetRef="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" />
<sequenceFlow id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" name="" sourceRef="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" targetRef="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" />
<sequenceFlow id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" name="" sourceRef="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" targetRef="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" />
</process> </process>
<bpmndi:BPMNDiagram id="sid-d0820a7d-420b-432a-8e44-8a26b4f82fda"> <bpmndi:BPMNDiagram id="sid-d0820a7d-420b-432a-8e44-8a26b4f82fda">
<bpmndi:BPMNPlane bpmnElement="sid-e3b04a04-0860-4643-ad2d-bfe79c257bd9" id="sid-0548e295-5887-423f-b623-7cdeb4dacdf1"> <bpmndi:BPMNPlane id="sid-0548e295-5887-423f-b623-7cdeb4dacdf1" bpmnElement="sid-e3b04a04-0860-4643-ad2d-bfe79c257bd9">
<bpmndi:BPMNShape bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00_gui" bpmnElement="sid-B2E5AD50-035A-4CE8-B8A3-B175A6767B00" isHorizontal="true">
<omgdc:Bounds height="479.0" width="776.0" x="120.0" y="90.0"/> <omgdc:Bounds x="120" y="90" width="776" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" isHorizontal="true"> <bpmndi:BPMNShape id="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142_gui" bpmnElement="sid-72009BCE-46B4-4B4B-AEAE-1E7199522142" isHorizontal="true">
<omgdc:Bounds height="479.0" width="746.0" x="150.0" y="90.0"/> <omgdc:Bounds x="150" y="90" width="746" height="479" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE" id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui"> <bpmndi:BPMNEdge id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740_gui" bpmnElement="sid-0895E09C-077C-4D12-8C11-31F28CBC7740">
<omgdc:Bounds height="30.0" width="30.0" x="190.0" y="122.0"/> <omgdi:waypoint x="625" y="368" />
</bpmndi:BPMNShape> <omgdi:waypoint x="678" y="368" />
<bpmndi:BPMNShape bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778" id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui">
<omgdc:Bounds height="40.0" width="40.0" x="315.0" y="117.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86" id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui">
<omgdc:Bounds height="80.0" width="100.0" x="469.0" y="97.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3" id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="214.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" isMarkerVisible="true">
<omgdc:Bounds height="40.0" width="40.0" x="261.0" y="339.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5" id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui">
<omgdc:Bounds height="80.0" width="100.0" x="371.0" y="319.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3" id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3_gui">
<omgdc:Bounds height="80.0" width="100.0" x="231.0" y="437.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0" id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui">
<omgdc:Bounds height="80.0" width="100.0" x="678.0" y="328.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB" id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui">
<omgdc:Bounds height="28.0" width="28.0" x="714.0" y="448.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842" id="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842_gui">
<omgdc:Bounds height="40.0" width="40.0" x="585.0" y="348.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF" id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui">
<omgdi:waypoint x="301.0" y="359.0"/>
<omgdi:waypoint x="371.0" y="359.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94" id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui"> <bpmndi:BPMNEdge id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE_gui" bpmnElement="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE">
<omgdi:waypoint x="355.0" y="137.0"/> <omgdi:waypoint x="331" y="477" />
<omgdi:waypoint x="469.0" y="137.0"/> <omgdi:waypoint x="605.5" y="477" />
<omgdi:waypoint x="605" y="388" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140" id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui"> <bpmndi:BPMNEdge id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui" bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF">
<omgdi:waypoint x="281.0" y="294.0"/> <omgdi:waypoint x="728" y="408" />
<omgdi:waypoint x="281.0" y="339.0"/> <omgdi:waypoint x="728" y="448" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE" id="sid-12F60C82-D18F-4747-B5B5-34FD40F2C8DE_gui"> <bpmndi:BPMNEdge id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui" bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09">
<omgdi:waypoint x="331.0" y="477.0"/> <omgdi:waypoint x="471" y="359" />
<omgdi:waypoint x="605.5" y="477.0"/> <omgdi:waypoint x="525.12109375" y="359" />
<omgdi:waypoint x="605.0" y="388.0"/> <omgdi:waypoint x="525" y="177" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-40496205-24D7-494C-AB6B-CD42B8D606EF" id="sid-40496205-24D7-494C-AB6B-CD42B8D606EF_gui"> <bpmndi:BPMNEdge id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui" bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820">
<omgdi:waypoint x="728.0" y="408.0"/> <omgdi:waypoint x="569" y="137" />
<omgdi:waypoint x="728.0" y="448.0"/> <omgdi:waypoint x="605.5" y="137" />
<omgdi:waypoint x="605" y="348" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612" id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui"> <bpmndi:BPMNEdge id="sid-9C753C3D-F964-45B0-AF57-234F910529EF_gui" bpmnElement="sid-9C753C3D-F964-45B0-AF57-234F910529EF">
<omgdi:waypoint x="220.0" y="137.0"/> <omgdi:waypoint x="301" y="359" />
<omgdi:waypoint x="315.0" y="137.0"/> <omgdi:waypoint x="371" y="359" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-A6DA25CE-636A-46B7-8005-759577956F09" id="sid-A6DA25CE-636A-46B7-8005-759577956F09_gui"> <bpmndi:BPMNEdge id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui" bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42">
<omgdi:waypoint x="471.0" y="359.0"/> <omgdi:waypoint x="281" y="379" />
<omgdi:waypoint x="525.12109375" y="359.0"/> <omgdi:waypoint x="281" y="437" />
<omgdi:waypoint x="525.0" y="177.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C" id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui"> <bpmndi:BPMNEdge id="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140_gui" bpmnElement="sid-CAEAD081-6E73-4C98-8656-C67DA18F5140">
<omgdi:waypoint x="335.0" y="157.0"/> <omgdi:waypoint x="281" y="294" />
<omgdi:waypoint x="335.5" y="185.5"/> <omgdi:waypoint x="281" y="339" />
<omgdi:waypoint x="281.0" y="185.5"/>
<omgdi:waypoint x="281.0" y="214.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-0895E09C-077C-4D12-8C11-31F28CBC7740" id="sid-0895E09C-077C-4D12-8C11-31F28CBC7740_gui"> <bpmndi:BPMNEdge id="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C_gui" bpmnElement="sid-B6E22A74-A691-453A-A789-B9F8AF787D7C">
<omgdi:waypoint x="625.0" y="368.0"/> <omgdi:waypoint x="335" y="157" />
<omgdi:waypoint x="678.0" y="368.0"/> <omgdi:waypoint x="335.5" y="185.5" />
<omgdi:waypoint x="281" y="185.5" />
<omgdi:waypoint x="281" y="214" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-3742C960-71D0-4342-8064-AF1BB9EECB42" id="sid-3742C960-71D0-4342-8064-AF1BB9EECB42_gui"> <bpmndi:BPMNEdge id="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94_gui" bpmnElement="sid-7E15C71B-DE9E-4788-B140-A647C99FDC94">
<omgdi:waypoint x="281.0" y="379.0"/> <omgdi:waypoint x="355" y="137" />
<omgdi:waypoint x="281.0" y="437.0"/> <omgdi:waypoint x="469" y="137" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-E3493781-6466-4AED-BAD2-63D115E14820" id="sid-E3493781-6466-4AED-BAD2-63D115E14820_gui"> <bpmndi:BPMNEdge id="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612_gui" bpmnElement="sid-F3994F51-FE54-4910-A1F4-E5895AA1A612">
<omgdi:waypoint x="569.0" y="137.0"/> <omgdi:waypoint x="220" y="137" />
<omgdi:waypoint x="605.5" y="137.0"/> <omgdi:waypoint x="315" y="137" />
<omgdi:waypoint x="605.0" y="348.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE_gui" bpmnElement="sid-B33EE043-AB93-4343-A1D4-7B267E2DAFBE">
<omgdc:Bounds x="190" y="122" width="30" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-349F8C0C-45EA-489C-84DD-1D944F48D778_gui" bpmnElement="sid-349F8C0C-45EA-489C-84DD-1D944F48D778">
<omgdc:Bounds x="315" y="117" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-57463471-693A-42A2-9EC6-6460BEDECA86_gui" bpmnElement="sid-57463471-693A-42A2-9EC6-6460BEDECA86">
<omgdc:Bounds x="469" y="97" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3_gui" bpmnElement="sid-CA089240-802A-4C32-9130-FB1A33DDCCC3">
<omgdc:Bounds x="231" y="214" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-E2054FDD-0C20-4939-938D-2169B317FEE7_gui" bpmnElement="sid-E2054FDD-0C20-4939-938D-2169B317FEE7" isMarkerVisible="true">
<omgdc:Bounds x="261" y="339" width="40" height="40" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5_gui" bpmnElement="sid-34AD79D9-BE0C-4F97-AC23-7A97D238A6E5">
<omgdc:Bounds x="371" y="319" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3_gui" bpmnElement="sid-2A302E91-F89F-4913-8F55-5C3AC5FAE4D3">
<omgdc:Bounds x="231" y="437" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0_gui" bpmnElement="sid-F3A979E3-F586-4807-8223-1FAB5A5647B0">
<omgdc:Bounds x="678" y="328" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB_gui" bpmnElement="sid-51816945-79BF-47F9-BA3C-E95ABAE3D1DB">
<omgdc:Bounds x="714" y="448" width="28" height="28" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842_gui" bpmnElement="sid-AF897BE2-CC07-4236-902B-DD6E1AB31842">
<omgdc:Bounds x="585" y="348" width="40" height="40" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</definitions> </definitions>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_10tix8p" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_10tix8p" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="boundary_event" name="&#10;&#10;" isExecutable="true"> <bpmn:process id="boundary_event" name="&#10;&#10;" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1pbxbk9</bpmn:outgoing> <bpmn:outgoing>Flow_1pbxbk9</bpmn:outgoing>
@ -65,77 +65,46 @@
<bpmn:boundaryEvent id="Event_0iiih8g" name="FedUp" attachedToRef="Subworkflow"> <bpmn:boundaryEvent id="Event_0iiih8g" name="FedUp" attachedToRef="Subworkflow">
<bpmn:outgoing>Flow_0yzqey7</bpmn:outgoing> <bpmn:outgoing>Flow_0yzqey7</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0irxg9m"> <bpmn:timerEventDefinition id="TimerEventDefinition_0irxg9m">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT0.03S</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.03S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:boundaryEvent> </bpmn:boundaryEvent>
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="boundary_event"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="boundary_event">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNEdge id="Flow_1jnwt7c_di" bpmnElement="Flow_1jnwt7c">
<dc:Bounds x="162" y="211" width="36" height="36" /> <di:waypoint x="320" y="229" />
</bpmndi:BPMNShape> <di:waypoint x="370" y="229" />
<bpmndi:BPMNShape id="Activity_0zzr7a4_di" bpmnElement="Subworkflow" isExpanded="true">
<dc:Bounds x="370" y="77" width="690" height="303" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0jwaisd_di" bpmnElement="Event_0jwaisd">
<dc:Bounds x="410" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ytsuvr_di" bpmnElement="Activity_1ya1db2">
<dc:Bounds x="910" y="470" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_11rkn53_di" bpmnElement="Activity_Pester_Dad">
<dc:Bounds x="570" y="137" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0yzqey7_di" bpmnElement="Flow_0yzqey7">
<di:waypoint x="950" y="398" />
<di:waypoint x="950" y="444" />
<di:waypoint x="960" y="444" />
<di:waypoint x="960" y="470" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0vmzw8v_di" bpmnElement="Flow_0vmzw8v"> <bpmndi:BPMNEdge id="Flow_0jqkm6y_di" bpmnElement="Flow_0jqkm6y">
<di:waypoint x="446" y="177" /> <di:waypoint x="1280" y="220" />
<di:waypoint x="570" y="177" /> <di:waypoint x="1402" y="220" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0lasqgj_di" bpmnElement="Event_0lasqgj"> <bpmndi:BPMNEdge id="Flow_1v53za5_di" bpmnElement="Flow_1v53za5">
<dc:Bounds x="952" y="159" width="36" height="36" /> <di:waypoint x="1000" y="510" />
</bpmndi:BPMNShape> <di:waypoint x="1230" y="510" />
<bpmndi:BPMNEdge id="Flow_1pbxbk9_di" bpmnElement="Flow_1pbxbk9"> <di:waypoint x="1230" y="260" />
<di:waypoint x="198" y="229" />
<di:waypoint x="220" y="229" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0f0f7wg_di" bpmnElement="Flow_0f0f7wg"> <bpmndi:BPMNEdge id="Flow_0f0f7wg_di" bpmnElement="Flow_0f0f7wg">
<di:waypoint x="1060" y="220" /> <di:waypoint x="1060" y="220" />
<di:waypoint x="1180" y="220" /> <di:waypoint x="1180" y="220" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1v53za5_di" bpmnElement="Flow_1v53za5"> <bpmndi:BPMNEdge id="Flow_1pbxbk9_di" bpmnElement="Flow_1pbxbk9">
<di:waypoint x="1010" y="510" /> <di:waypoint x="198" y="229" />
<di:waypoint x="1230" y="510" /> <di:waypoint x="220" y="229" />
<di:waypoint x="1230" y="260" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_000aj7r_di" bpmnElement="Event_000aj7r"> <bpmndi:BPMNEdge id="Flow_0yzqey7_di" bpmnElement="Flow_0yzqey7">
<dc:Bounds x="1402" y="202" width="36" height="36" /> <di:waypoint x="950" y="398" />
<di:waypoint x="950" y="470" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="162" y="211" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0jqkm6y_di" bpmnElement="Flow_0jqkm6y"> <bpmndi:BPMNShape id="Activity_0ytsuvr_di" bpmnElement="Activity_1ya1db2">
<di:waypoint x="1280" y="220" /> <dc:Bounds x="900" y="470" width="100" height="80" />
<di:waypoint x="1402" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1vjvfhi_di" bpmnElement="StopCar">
<dc:Bounds x="1180" y="180" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_17zgs3c_di" bpmnElement="Gateway_17zgs3c" isMarkerVisible="true"> <bpmndi:BPMNShape id="Activity_0zzr7a4_di" bpmnElement="Subworkflow" isExpanded="true">
<dc:Bounds x="725" y="152" width="50" height="50" /> <dc:Bounds x="370" y="77" width="690" height="303" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0axldsu_di" bpmnElement="Flow_0axldsu">
<di:waypoint x="670" y="177" />
<di:waypoint x="725" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0q65w45_di" bpmnElement="Flow_0q65w45">
<di:waypoint x="775" y="177" />
<di:waypoint x="952" y="177" />
<bpmndi:BPMNLabel>
<dc:Bounds x="855" y="159" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hkqchr_di" bpmnElement="Flow_0hkqchr"> <bpmndi:BPMNEdge id="Flow_0hkqchr_di" bpmnElement="Flow_0hkqchr">
<di:waypoint x="750" y="202" /> <di:waypoint x="750" y="202" />
<di:waypoint x="750" y="320" /> <di:waypoint x="750" y="320" />
@ -145,10 +114,39 @@
<dc:Bounds x="678" y="302" width="15" height="14" /> <dc:Bounds x="678" y="302" width="15" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1jnwt7c_di" bpmnElement="Flow_1jnwt7c"> <bpmndi:BPMNEdge id="Flow_0q65w45_di" bpmnElement="Flow_0q65w45">
<di:waypoint x="320" y="229" /> <di:waypoint x="775" y="177" />
<di:waypoint x="370" y="229" /> <di:waypoint x="952" y="177" />
<bpmndi:BPMNLabel>
<dc:Bounds x="855" y="159" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0axldsu_di" bpmnElement="Flow_0axldsu">
<di:waypoint x="670" y="177" />
<di:waypoint x="725" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0vmzw8v_di" bpmnElement="Flow_0vmzw8v">
<di:waypoint x="446" y="177" />
<di:waypoint x="570" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0jwaisd_di" bpmnElement="Event_0jwaisd">
<dc:Bounds x="410" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_11rkn53_di" bpmnElement="Activity_Pester_Dad">
<dc:Bounds x="570" y="137" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0lasqgj_di" bpmnElement="Event_0lasqgj">
<dc:Bounds x="952" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_17zgs3c_di" bpmnElement="Gateway_17zgs3c" isMarkerVisible="true">
<dc:Bounds x="725" y="152" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_000aj7r_di" bpmnElement="Event_000aj7r">
<dc:Bounds x="1402" y="202" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1vjvfhi_di" bpmnElement="StopCar">
<dc:Bounds x="1180" y="180" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0q76z8e_di" bpmnElement="Activity_09c27ms"> <bpmndi:BPMNShape id="Activity_0q76z8e_di" bpmnElement="Activity_09c27ms">
<dc:Bounds x="220" y="189" width="100" height="80" /> <dc:Bounds x="220" y="189" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1l7iuxt" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1l7iuxt" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">
<bpmn:process id="test_timer" name="test_timer" isExecutable="true"> <bpmn:process id="test_timer" name="test_timer" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_164sojd</bpmn:outgoing> <bpmn:outgoing>Flow_164sojd</bpmn:outgoing>
@ -8,7 +8,7 @@
<bpmn:boundaryEvent id="Event_0y4hbl0" cancelActivity="false" attachedToRef="user_task"> <bpmn:boundaryEvent id="Event_0y4hbl0" cancelActivity="false" attachedToRef="user_task">
<bpmn:outgoing>Flow_0ac4lx5</bpmn:outgoing> <bpmn:outgoing>Flow_0ac4lx5</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1w16uhl"> <bpmn:timerEventDefinition id="TimerEventDefinition_1w16uhl">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(milliseconds=2)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.002S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:boundaryEvent> </bpmn:boundaryEvent>
<bpmn:sequenceFlow id="Flow_0ac4lx5" sourceRef="Event_0y4hbl0" targetRef="set_variable" /> <bpmn:sequenceFlow id="Flow_0ac4lx5" sourceRef="Event_0y4hbl0" targetRef="set_variable" />
@ -34,32 +34,23 @@
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test_timer"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test_timer">
<bpmndi:BPMNEdge id="Flow_164sojd_di" bpmnElement="Flow_164sojd">
<di:waypoint x="188" y="117" />
<di:waypoint x="220" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ac4lx5_di" bpmnElement="Flow_0ac4lx5">
<di:waypoint x="420" y="175" />
<di:waypoint x="420" y="240" />
<di:waypoint x="490" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04tuv5z_di" bpmnElement="Flow_04tuv5z">
<di:waypoint x="460" y="117" />
<di:waypoint x="542" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1m2vq4v_di" bpmnElement="Flow_1m2vq4v"> <bpmndi:BPMNEdge id="Flow_1m2vq4v_di" bpmnElement="Flow_1m2vq4v">
<di:waypoint x="320" y="117" /> <di:waypoint x="320" y="117" />
<di:waypoint x="360" y="117" /> <di:waypoint x="360" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1oduoqz_di" bpmnElement="set_variable"> <bpmndi:BPMNEdge id="Flow_04tuv5z_di" bpmnElement="Flow_04tuv5z">
<dc:Bounds x="490" y="200" width="100" height="80" /> <di:waypoint x="460" y="117" />
</bpmndi:BPMNShape> <di:waypoint x="682" y="117" />
<bpmndi:BPMNShape id="Event_0olfqht_di" bpmnElement="final_end_event"> </bpmndi:BPMNEdge>
<dc:Bounds x="542" y="99" width="36" height="36" /> <bpmndi:BPMNEdge id="Flow_0ac4lx5_di" bpmnElement="Flow_0ac4lx5">
<bpmndi:BPMNLabel> <di:waypoint x="420" y="175" />
<dc:Bounds x="527" y="142" width="69" height="14" /> <di:waypoint x="420" y="240" />
</bpmndi:BPMNLabel> <di:waypoint x="460" y="240" />
</bpmndi:BPMNShape> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_164sojd_di" bpmnElement="Flow_164sojd">
<di:waypoint x="188" y="117" />
<di:waypoint x="220" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="152" y="99" width="36" height="36" /> <dc:Bounds x="152" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
@ -69,6 +60,15 @@
<bpmndi:BPMNShape id="Activity_0hx9z9f_di" bpmnElement="user_task"> <bpmndi:BPMNShape id="Activity_0hx9z9f_di" bpmnElement="user_task">
<dc:Bounds x="360" y="77" width="100" height="80" /> <dc:Bounds x="360" y="77" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0olfqht_di" bpmnElement="final_end_event">
<dc:Bounds x="682" y="99" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="667" y="142" width="69" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1oduoqz_di" bpmnElement="set_variable">
<dc:Bounds x="460" y="200" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0w4k4ro_di" bpmnElement="Event_0y4hbl0"> <bpmndi:BPMNShape id="Event_0w4k4ro_di" bpmnElement="Event_0y4hbl0">
<dc:Bounds x="402" y="139" width="36" height="36" /> <dc:Bounds x="402" y="139" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>

View File

@ -27,7 +27,7 @@
<bpmn:incoming>Flow_1rfbrlf</bpmn:incoming> <bpmn:incoming>Flow_1rfbrlf</bpmn:incoming>
<bpmn:outgoing>Flow_0mppjk9</bpmn:outgoing> <bpmn:outgoing>Flow_0mppjk9</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0reo0gl"> <bpmn:timerEventDefinition id="TimerEventDefinition_0reo0gl">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=1)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT1S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_1rfbrlf" sourceRef="Gateway_1434v9l" targetRef="timer_event" /> <bpmn:sequenceFlow id="Flow_1rfbrlf" sourceRef="Gateway_1434v9l" targetRef="timer_event" />

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1cze19k" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">
<bpmn:process id="main" isExecutable="true">
<bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1g5ma8d</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_1g5ma8d" sourceRef="StartEvent_1" targetRef="set_data" />
<bpmn:sequenceFlow id="Flow_1g7lmw3" sourceRef="set_data" targetRef="first" />
<bpmn:inclusiveGateway id="first" default="default">
<bpmn:incoming>Flow_1g7lmw3</bpmn:incoming>
<bpmn:outgoing>default</bpmn:outgoing>
<bpmn:outgoing>u_positive</bpmn:outgoing>
<bpmn:outgoing>w_positive</bpmn:outgoing>
</bpmn:inclusiveGateway>
<bpmn:sequenceFlow id="default" sourceRef="first" targetRef="increment_v" />
<bpmn:sequenceFlow id="u_positive" name="u positive&#10;&#10;" sourceRef="first" targetRef="u_plus_v">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">u &gt; 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="w_positive" name="w positive" sourceRef="first" targetRef="w_plus_v">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">w &gt; 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0byxq9y" sourceRef="u_plus_v" targetRef="second" />
<bpmn:inclusiveGateway id="second">
<bpmn:incoming>Flow_0byxq9y</bpmn:incoming>
<bpmn:incoming>Flow_0hatxr4</bpmn:incoming>
<bpmn:incoming>Flow_17jgshs</bpmn:incoming>
<bpmn:outgoing>check_v</bpmn:outgoing>
</bpmn:inclusiveGateway>
<bpmn:sequenceFlow id="Flow_0hatxr4" sourceRef="w_plus_v" targetRef="second" />
<bpmn:sequenceFlow id="Flow_17jgshs" sourceRef="increment_v" targetRef="second" />
<bpmn:endEvent id="Event_05yg5je">
<bpmn:incoming>check_v</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="check_v" sourceRef="second" targetRef="Event_05yg5je">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">v == 0</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="set_data" name="Set Data">
<bpmn:incoming>Flow_1g5ma8d</bpmn:incoming>
<bpmn:outgoing>Flow_1g7lmw3</bpmn:outgoing>
</bpmn:userTask>
<bpmn:scriptTask id="increment_v" name="v += 1">
<bpmn:incoming>default</bpmn:incoming>
<bpmn:outgoing>Flow_17jgshs</bpmn:outgoing>
<bpmn:script>v += 1</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="u_plus_v" name="u += v">
<bpmn:incoming>u_positive</bpmn:incoming>
<bpmn:outgoing>Flow_0byxq9y</bpmn:outgoing>
<bpmn:script>u += v</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="w_plus_v" name="w += v">
<bpmn:incoming>w_positive</bpmn:incoming>
<bpmn:outgoing>Flow_0hatxr4</bpmn:outgoing>
<bpmn:script>w += v</bpmn:script>
</bpmn:scriptTask>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="main">
<bpmndi:BPMNEdge id="Flow_0axvo8d_di" bpmnElement="check_v">
<di:waypoint x="735" y="117" />
<di:waypoint x="792" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17jgshs_di" bpmnElement="Flow_17jgshs">
<di:waypoint x="630" y="117" />
<di:waypoint x="685" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hatxr4_di" bpmnElement="Flow_0hatxr4">
<di:waypoint x="630" y="340" />
<di:waypoint x="710" y="340" />
<di:waypoint x="710" y="142" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0byxq9y_di" bpmnElement="Flow_0byxq9y">
<di:waypoint x="630" y="230" />
<di:waypoint x="710" y="230" />
<di:waypoint x="710" y="142" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_13u1611_di" bpmnElement="w_positive">
<di:waypoint x="450" y="142" />
<di:waypoint x="450" y="340" />
<di:waypoint x="530" y="340" />
<bpmndi:BPMNLabel>
<dc:Bounds x="458" y="323" width="48" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0qf291b_di" bpmnElement="u_positive">
<di:waypoint x="450" y="142" />
<di:waypoint x="450" y="230" />
<di:waypoint x="530" y="230" />
<bpmndi:BPMNLabel>
<dc:Bounds x="457" y="210" width="47" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_070yjdf_di" bpmnElement="default">
<di:waypoint x="475" y="117" />
<di:waypoint x="530" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1g7lmw3_di" bpmnElement="Flow_1g7lmw3">
<di:waypoint x="370" y="117" />
<di:waypoint x="425" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1g5ma8d_di" bpmnElement="Flow_1g5ma8d">
<di:waypoint x="215" y="117" />
<di:waypoint x="270" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="179" y="99" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0ym4oxy_di" bpmnElement="first">
<dc:Bounds x="425" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0taxy2e_di" bpmnElement="second">
<dc:Bounds x="685" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_05yg5je_di" bpmnElement="Event_05yg5je">
<dc:Bounds x="792" y="99" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1mqdr3e_di" bpmnElement="set_data">
<dc:Bounds x="270" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0kkbcp1_di" bpmnElement="increment_v">
<dc:Bounds x="530" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ttkifo_di" bpmnElement="u_plus_v">
<dc:Bounds x="530" y="190" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0h6sdsx_di" bpmnElement="w_plus_v">
<dc:Bounds x="530" y="300" width="100" height="80" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>

View File

@ -0,0 +1,590 @@
{
"serializer_version": "1.1",
"data": {},
"last_task": "6bd75ef7-d765-4d0b-83ba-1158d2e9ed0a",
"success": true,
"tasks": {
"ccca8dcf-e833-494a-9281-ec133223ab75": {
"id": "ccca8dcf-e833-494a-9281-ec133223ab75",
"parent": null,
"children": [
"6bd75ef7-d765-4d0b-83ba-1158d2e9ed0a"
],
"last_state_change": 1673895963.536834,
"state": 32,
"task_spec": "Root",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"6bd75ef7-d765-4d0b-83ba-1158d2e9ed0a": {
"id": "6bd75ef7-d765-4d0b-83ba-1158d2e9ed0a",
"parent": "ccca8dcf-e833-494a-9281-ec133223ab75",
"children": [
"34a70bb5-88f7-4a71-9dea-da6893437633"
],
"last_state_change": 1673896001.8471706,
"state": 32,
"task_spec": "Start",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"34a70bb5-88f7-4a71-9dea-da6893437633": {
"id": "34a70bb5-88f7-4a71-9dea-da6893437633",
"parent": "6bd75ef7-d765-4d0b-83ba-1158d2e9ed0a",
"children": [
"28d6b82b-64e9-41ad-9620-cc00497c859f",
"deb1eb94-6537-4cb8-a7e6-ea28c4983732"
],
"last_state_change": 1673896001.8511543,
"state": 8,
"task_spec": "StartEvent_1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {
"repeat": 2,
"start_time": "2023-01-16 14:06:41.847524"
},
"data": {
"repeat_count": 0
}
},
"28d6b82b-64e9-41ad-9620-cc00497c859f": {
"id": "28d6b82b-64e9-41ad-9620-cc00497c859f",
"parent": "34a70bb5-88f7-4a71-9dea-da6893437633",
"children": [
"a07abe4c-8122-494f-8b43-b3c44d3f7e34",
"975c49d4-dceb-4137-829c-64c657894701"
],
"last_state_change": 1673895963.5375524,
"state": 4,
"task_spec": "StartEvent_1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"a07abe4c-8122-494f-8b43-b3c44d3f7e34": {
"id": "a07abe4c-8122-494f-8b43-b3c44d3f7e34",
"parent": "28d6b82b-64e9-41ad-9620-cc00497c859f",
"children": [],
"last_state_change": 1673895963.5380332,
"state": 4,
"task_spec": "return_to_StartEvent_1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"975c49d4-dceb-4137-829c-64c657894701": {
"id": "975c49d4-dceb-4137-829c-64c657894701",
"parent": "28d6b82b-64e9-41ad-9620-cc00497c859f",
"children": [
"e937e37e-04a7-45b6-b6a4-7615876ae19f"
],
"last_state_change": 1673895963.5380924,
"state": 4,
"task_spec": "task_1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"e937e37e-04a7-45b6-b6a4-7615876ae19f": {
"id": "e937e37e-04a7-45b6-b6a4-7615876ae19f",
"parent": "975c49d4-dceb-4137-829c-64c657894701",
"children": [
"42036b41-f934-457a-86e7-cc3b65882073"
],
"last_state_change": 1673895963.5384276,
"state": 4,
"task_spec": "Event_1uhhxu1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"42036b41-f934-457a-86e7-cc3b65882073": {
"id": "42036b41-f934-457a-86e7-cc3b65882073",
"parent": "e937e37e-04a7-45b6-b6a4-7615876ae19f",
"children": [
"583f99df-db90-4237-8718-c1cf638c4391",
"24f73965-e218-4f94-8ca9-5267cbf635ad"
],
"last_state_change": 1673895963.5386448,
"state": 4,
"task_spec": "task_2.BoundaryEventParent",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"583f99df-db90-4237-8718-c1cf638c4391": {
"id": "583f99df-db90-4237-8718-c1cf638c4391",
"parent": "42036b41-f934-457a-86e7-cc3b65882073",
"children": [
"825b0a7b-b33e-4692-a11c-9c0fb49e20c0"
],
"last_state_change": 1673895963.5391376,
"state": 4,
"task_spec": "task_2",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"825b0a7b-b33e-4692-a11c-9c0fb49e20c0": {
"id": "825b0a7b-b33e-4692-a11c-9c0fb49e20c0",
"parent": "583f99df-db90-4237-8718-c1cf638c4391",
"children": [
"e5b6e43e-2ba9-42a2-90c0-25202f096273"
],
"last_state_change": 1673895963.5393665,
"state": 4,
"task_spec": "Event_1vzwq7p",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"e5b6e43e-2ba9-42a2-90c0-25202f096273": {
"id": "e5b6e43e-2ba9-42a2-90c0-25202f096273",
"parent": "825b0a7b-b33e-4692-a11c-9c0fb49e20c0",
"children": [
"0a5fbc15-2807-463d-9762-b7b724835a40"
],
"last_state_change": 1673895963.5396175,
"state": 4,
"task_spec": "migration_test.EndJoin",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"0a5fbc15-2807-463d-9762-b7b724835a40": {
"id": "0a5fbc15-2807-463d-9762-b7b724835a40",
"parent": "e5b6e43e-2ba9-42a2-90c0-25202f096273",
"children": [],
"last_state_change": 1673895963.5398767,
"state": 4,
"task_spec": "End",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"24f73965-e218-4f94-8ca9-5267cbf635ad": {
"id": "24f73965-e218-4f94-8ca9-5267cbf635ad",
"parent": "42036b41-f934-457a-86e7-cc3b65882073",
"children": [],
"last_state_change": 1673895963.5390024,
"state": 1,
"task_spec": "Event_1bkh7yi",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"deb1eb94-6537-4cb8-a7e6-ea28c4983732": {
"id": "deb1eb94-6537-4cb8-a7e6-ea28c4983732",
"parent": "34a70bb5-88f7-4a71-9dea-da6893437633",
"children": [
"56045c5b-9400-4fea-ae82-b357268672f8"
],
"last_state_change": 1673895963.5376105,
"state": 4,
"task_spec": "task_1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"56045c5b-9400-4fea-ae82-b357268672f8": {
"id": "56045c5b-9400-4fea-ae82-b357268672f8",
"parent": "deb1eb94-6537-4cb8-a7e6-ea28c4983732",
"children": [
"fd71446e-d8b4-42dd-980b-624a82848853"
],
"last_state_change": 1673895963.540343,
"state": 4,
"task_spec": "Event_1uhhxu1",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"fd71446e-d8b4-42dd-980b-624a82848853": {
"id": "fd71446e-d8b4-42dd-980b-624a82848853",
"parent": "56045c5b-9400-4fea-ae82-b357268672f8",
"children": [
"8960300d-28c1-463d-b7a1-29e872c02d98",
"a6bca2b5-7064-49c9-a172-18c1435d173d"
],
"last_state_change": 1673895963.5405483,
"state": 4,
"task_spec": "task_2.BoundaryEventParent",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"8960300d-28c1-463d-b7a1-29e872c02d98": {
"id": "8960300d-28c1-463d-b7a1-29e872c02d98",
"parent": "fd71446e-d8b4-42dd-980b-624a82848853",
"children": [
"6b33df30-07fd-4572-abfd-f29eb9906f0b"
],
"last_state_change": 1673895963.540891,
"state": 4,
"task_spec": "task_2",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"6b33df30-07fd-4572-abfd-f29eb9906f0b": {
"id": "6b33df30-07fd-4572-abfd-f29eb9906f0b",
"parent": "8960300d-28c1-463d-b7a1-29e872c02d98",
"children": [
"0d571ca2-ffb1-4d8b-9dda-4e8cbd8b8ae1"
],
"last_state_change": 1673895963.5411036,
"state": 4,
"task_spec": "Event_1vzwq7p",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"0d571ca2-ffb1-4d8b-9dda-4e8cbd8b8ae1": {
"id": "0d571ca2-ffb1-4d8b-9dda-4e8cbd8b8ae1",
"parent": "6b33df30-07fd-4572-abfd-f29eb9906f0b",
"children": [
"1e8fc80a-1968-4411-a10b-16cb4261f3b8"
],
"last_state_change": 1673895963.5413618,
"state": 4,
"task_spec": "migration_test.EndJoin",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"1e8fc80a-1968-4411-a10b-16cb4261f3b8": {
"id": "1e8fc80a-1968-4411-a10b-16cb4261f3b8",
"parent": "0d571ca2-ffb1-4d8b-9dda-4e8cbd8b8ae1",
"children": [],
"last_state_change": 1673895963.541654,
"state": 4,
"task_spec": "End",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
},
"a6bca2b5-7064-49c9-a172-18c1435d173d": {
"id": "a6bca2b5-7064-49c9-a172-18c1435d173d",
"parent": "fd71446e-d8b4-42dd-980b-624a82848853",
"children": [],
"last_state_change": 1673895963.5408392,
"state": 1,
"task_spec": "Event_1bkh7yi",
"triggered": false,
"workflow_name": "migration_test",
"internal_data": {},
"data": {}
}
},
"root": "ccca8dcf-e833-494a-9281-ec133223ab75",
"spec": {
"name": "migration_test",
"description": "migration_test",
"file": "/home/essweine/work/sartography/code/SpiffWorkflow/tests/SpiffWorkflow/bpmn/data/serialization/v1-1.bpmn",
"task_specs": {
"Start": {
"id": "migration_test_1",
"name": "Start",
"description": "",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [],
"outputs": [
"StartEvent_1"
],
"typename": "StartTask"
},
"migration_test.EndJoin": {
"id": "migration_test_2",
"name": "migration_test.EndJoin",
"description": "",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"Event_1vzwq7p"
],
"outputs": [
"End"
],
"typename": "_EndJoin"
},
"End": {
"id": "migration_test_3",
"name": "End",
"description": "",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"migration_test.EndJoin"
],
"outputs": [],
"typename": "Simple"
},
"StartEvent_1": {
"id": "migration_test_4",
"name": "StartEvent_1",
"description": null,
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"Start",
"StartEvent_1"
],
"outputs": [
"StartEvent_1",
"task_1"
],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 179.0,
"y": 79.0
},
"data_input_associations": [],
"data_output_associations": [],
"event_definition": {
"internal": true,
"external": true,
"label": "StartEvent_1",
"cycle_definition": "(2,timedelta(seconds=0.1))",
"typename": "CycleTimerEventDefinition"
},
"typename": "StartEvent",
"extensions": {}
},
"task_1": {
"id": "migration_test_5",
"name": "task_1",
"description": "Task 1",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"StartEvent_1"
],
"outputs": [
"Event_1uhhxu1"
],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 290.0,
"y": 57.0
},
"data_input_associations": [],
"data_output_associations": [],
"script": "pass",
"typename": "ScriptTask",
"extensions": {}
},
"Event_1uhhxu1": {
"id": "migration_test_6",
"name": "Event_1uhhxu1",
"description": null,
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"task_1"
],
"outputs": [
"task_2.BoundaryEventParent"
],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 452.0,
"y": 79.0
},
"data_input_associations": [],
"data_output_associations": [],
"event_definition": {
"internal": true,
"external": true,
"label": "Event_1uhhxu1",
"dateTime": "datetime(2023, 1, 1)",
"typename": "TimerEventDefinition"
},
"typename": "IntermediateCatchEvent",
"extensions": {}
},
"task_2": {
"id": "migration_test_7",
"name": "task_2",
"description": "Task 2",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"task_2.BoundaryEventParent"
],
"outputs": [
"Event_1vzwq7p"
],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 560.0,
"y": 57.0
},
"data_input_associations": [],
"data_output_associations": [],
"script": "time.sleep(0.5)",
"typename": "ScriptTask",
"extensions": {}
},
"task_2.BoundaryEventParent": {
"id": "migration_test_8",
"name": "task_2.BoundaryEventParent",
"description": "",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"Event_1uhhxu1"
],
"outputs": [
"task_2",
"Event_1bkh7yi"
],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 0,
"y": 0
},
"data_input_associations": [],
"data_output_associations": [],
"main_child_task_spec": "task_2",
"typename": "_BoundaryEventParent"
},
"Event_1bkh7yi": {
"id": "migration_test_9",
"name": "Event_1bkh7yi",
"description": null,
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"task_2.BoundaryEventParent"
],
"outputs": [],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 592.0,
"y": 119.0
},
"data_input_associations": [],
"data_output_associations": [],
"event_definition": {
"internal": true,
"external": true,
"label": "Event_1bkh7yi",
"dateTime": "timedelta(seconds=0.1)",
"typename": "TimerEventDefinition"
},
"cancel_activity": true,
"typename": "BoundaryEvent",
"extensions": {}
},
"Event_1vzwq7p": {
"id": "migration_test_10",
"name": "Event_1vzwq7p",
"description": null,
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"task_2"
],
"outputs": [
"migration_test.EndJoin"
],
"lane": null,
"documentation": null,
"loopTask": false,
"position": {
"x": 742.0,
"y": 79.0
},
"data_input_associations": [],
"data_output_associations": [],
"event_definition": {
"internal": false,
"external": false,
"typename": "NoneEventDefinition"
},
"typename": "EndEvent",
"extensions": {}
},
"Root": {
"id": "migration_test_11",
"name": "Root",
"description": "",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [],
"outputs": [],
"typename": "Simple"
},
"return_to_StartEvent_1": {
"id": "migration_test_12",
"name": "return_to_StartEvent_1",
"description": "",
"manual": false,
"internal": false,
"lookahead": 2,
"inputs": [
"Start",
"StartEvent_1"
],
"outputs": [],
"destination_id": "34a70bb5-88f7-4a71-9dea-da6893437633",
"destination_spec_name": "StartEvent_1",
"typename": "LoopResetTask"
}
},
"data_inputs": [],
"data_outputs": [],
"data_objects": {},
"correlation_keys": {},
"typename": "BpmnProcessSpec"
},
"subprocess_specs": {},
"subprocesses": {},
"bpmn_messages": []
}

View File

@ -22,7 +22,7 @@
<bpmn:startEvent id="CycleStart"> <bpmn:startEvent id="CycleStart">
<bpmn:outgoing>Flow_0jtfzsk</bpmn:outgoing> <bpmn:outgoing>Flow_0jtfzsk</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0za5f2h"> <bpmn:timerEventDefinition id="TimerEventDefinition_0za5f2h">
<bpmn:timeCycle xsi:type="bpmn:tFormalExpression">(2,timedelta(seconds=0.1))</bpmn:timeCycle> <bpmn:timeCycle xsi:type="bpmn:tFormalExpression">"R2/PT0.1S"</bpmn:timeCycle>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:startEvent> </bpmn:startEvent>
<bpmn:scriptTask id="Refill_Coffee" name="Refill Coffee"> <bpmn:scriptTask id="Refill_Coffee" name="Refill Coffee">
@ -37,7 +37,7 @@
<bpmn:incoming>Flow_1pahvlr</bpmn:incoming> <bpmn:incoming>Flow_1pahvlr</bpmn:incoming>
<bpmn:outgoing>Flow_05ejbm4</bpmn:outgoing> <bpmn:outgoing>Flow_05ejbm4</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0o35ug0"> <bpmn:timerEventDefinition id="TimerEventDefinition_0o35ug0">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=0.5)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.5S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:endEvent id="EndItAll"> <bpmn:endEvent id="EndItAll">

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ilr8m3" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ilr8m3" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="timer" isExecutable="true"> <bpmn:process id="timer" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1pahvlr</bpmn:outgoing> <bpmn:outgoing>Flow_1pahvlr</bpmn:outgoing>
@ -32,12 +32,32 @@
<bpmn:boundaryEvent id="CatchMessage" cancelActivity="false" attachedToRef="Get_Coffee"> <bpmn:boundaryEvent id="CatchMessage" cancelActivity="false" attachedToRef="Get_Coffee">
<bpmn:outgoing>Flow_1pzc4jz</bpmn:outgoing> <bpmn:outgoing>Flow_1pzc4jz</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_180fybf"> <bpmn:timerEventDefinition id="TimerEventDefinition_180fybf">
<bpmn:timeCycle xsi:type="bpmn:tFormalExpression">(2,timedelta(seconds=0.01))</bpmn:timeCycle> <bpmn:timeCycle xsi:type="bpmn:tFormalExpression">"R2/PT0.1S"</bpmn:timeCycle>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:boundaryEvent> </bpmn:boundaryEvent>
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="timer"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="timer">
<bpmndi:BPMNEdge id="Flow_09d7dp2_di" bpmnElement="Flow_09d7dp2">
<di:waypoint x="320" y="117" />
<di:waypoint x="370" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pzc4jz_di" bpmnElement="Flow_1pzc4jz">
<di:waypoint x="440" y="175" />
<di:waypoint x="440" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pahvlr_di" bpmnElement="Flow_1pahvlr">
<di:waypoint x="188" y="117" />
<di:waypoint x="220" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pvkgnu_di" bpmnElement="Flow_1pvkgnu">
<di:waypoint x="470" y="117" />
<di:waypoint x="500" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ekgt3x_di" bpmnElement="Flow_1ekgt3x">
<di:waypoint x="600" y="117" />
<di:waypoint x="632" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="152" y="99" width="36" height="36" /> <dc:Bounds x="152" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
@ -50,29 +70,9 @@
<bpmndi:BPMNShape id="Event_03w65sk_di" bpmnElement="Event_03w65sk"> <bpmndi:BPMNShape id="Event_03w65sk_di" bpmnElement="Event_03w65sk">
<dc:Bounds x="632" y="99" width="36" height="36" /> <dc:Bounds x="632" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1ekgt3x_di" bpmnElement="Flow_1ekgt3x">
<di:waypoint x="600" y="117" />
<di:waypoint x="632" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pvkgnu_di" bpmnElement="Flow_1pvkgnu">
<di:waypoint x="470" y="117" />
<di:waypoint x="500" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pahvlr_di" bpmnElement="Flow_1pahvlr">
<di:waypoint x="188" y="117" />
<di:waypoint x="220" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pzc4jz_di" bpmnElement="Flow_1pzc4jz">
<di:waypoint x="440" y="175" />
<di:waypoint x="440" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_0xk1ts7_di" bpmnElement="Refill_Coffee"> <bpmndi:BPMNShape id="Activity_0xk1ts7_di" bpmnElement="Refill_Coffee">
<dc:Bounds x="390" y="210" width="100" height="80" /> <dc:Bounds x="390" y="210" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_09d7dp2_di" bpmnElement="Flow_09d7dp2">
<di:waypoint x="320" y="117" />
<di:waypoint x="370" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1tk82xi_di" bpmnElement="Activity_1swqq74"> <bpmndi:BPMNShape id="Activity_1tk82xi_di" bpmnElement="Activity_1swqq74">
<dc:Bounds x="220" y="77" width="100" height="80" /> <dc:Bounds x="220" y="77" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>

View File

@ -1,17 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ilr8m3" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ilr8m3" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="date_timer" isExecutable="false"> <bpmn:process id="date_timer" isExecutable="false">
<bpmn:startEvent id="Event_0u1rmur"> <bpmn:startEvent id="Event_0u1rmur">
<bpmn:outgoing>Flow_1i73q45</bpmn:outgoing> <bpmn:outgoing>Flow_1i73q45</bpmn:outgoing>
</bpmn:startEvent> </bpmn:startEvent>
<bpmn:scriptTask id="Activity_1q1wged" name="Set Future Date">
<bpmn:incoming>Flow_1i73q45</bpmn:incoming>
<bpmn:outgoing>Flow_00e79cz</bpmn:outgoing>
<bpmn:script>futuredate = datetime.now() + timedelta(0, 1) - timedelta(seconds=.95)
futuredate2 = datetime.strptime('2021-09-01 10:00','%Y-%m-%d %H:%M')</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1i73q45" sourceRef="Event_0u1rmur" targetRef="Activity_1q1wged" /> <bpmn:sequenceFlow id="Flow_1i73q45" sourceRef="Event_0u1rmur" targetRef="Activity_1q1wged" />
<bpmn:sequenceFlow id="Flow_00e79cz" sourceRef="Activity_1q1wged" targetRef="Event_0eb0w95" />
<bpmn:intermediateCatchEvent id="Event_0eb0w95" name="Wait till date"> <bpmn:intermediateCatchEvent id="Event_0eb0w95" name="Wait till date">
<bpmn:incoming>Flow_00e79cz</bpmn:incoming> <bpmn:incoming>Flow_00e79cz</bpmn:incoming>
<bpmn:outgoing>Flow_1bdrcxy</bpmn:outgoing> <bpmn:outgoing>Flow_1bdrcxy</bpmn:outgoing>
@ -19,54 +12,46 @@ futuredate2 = datetime.strptime('2021-09-01 10:00','%Y-%m-%d %H:%M')</bpmn:scrip
<bpmn:timeDate xsi:type="bpmn:tFormalExpression">futuredate</bpmn:timeDate> <bpmn:timeDate xsi:type="bpmn:tFormalExpression">futuredate</bpmn:timeDate>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_1bdrcxy" sourceRef="Event_0eb0w95" targetRef="Activity_0pbdlyu" /> <bpmn:sequenceFlow id="Flow_1bdrcxy" sourceRef="Event_0eb0w95" targetRef="Event_19cfzir" />
<bpmn:scriptTask id="Activity_0pbdlyu" name="Do something">
<bpmn:incoming>Flow_1bdrcxy</bpmn:incoming>
<bpmn:outgoing>Flow_0bjksyv</bpmn:outgoing>
<bpmn:script>print('yay!')
completed = True</bpmn:script>
</bpmn:scriptTask>
<bpmn:endEvent id="Event_19cfzir"> <bpmn:endEvent id="Event_19cfzir">
<bpmn:incoming>Flow_0bjksyv</bpmn:incoming> <bpmn:incoming>Flow_1bdrcxy</bpmn:incoming>
</bpmn:endEvent> </bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0bjksyv" sourceRef="Activity_0pbdlyu" targetRef="Event_19cfzir" /> <bpmn:scriptTask id="Activity_1q1wged" name="Set Future Date">
<bpmn:incoming>Flow_1i73q45</bpmn:incoming>
<bpmn:outgoing>Flow_00e79cz</bpmn:outgoing>
<bpmn:script>futuredate = (datetime.now() + timedelta(seconds=0.05)).isoformat()</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_00e79cz" sourceRef="Activity_1q1wged" targetRef="Event_0eb0w95" />
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="date_timer"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="date_timer">
<bpmndi:BPMNEdge id="Flow_1bdrcxy_di" bpmnElement="Flow_1bdrcxy">
<di:waypoint x="408" y="120" />
<di:waypoint x="492" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00e79cz_di" bpmnElement="Flow_00e79cz">
<di:waypoint x="320" y="120" />
<di:waypoint x="372" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1i73q45_di" bpmnElement="Flow_1i73q45">
<di:waypoint x="168" y="120" />
<di:waypoint x="220" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0u1rmur_di" bpmnElement="Event_0u1rmur"> <bpmndi:BPMNShape id="Event_0u1rmur_di" bpmnElement="Event_0u1rmur">
<dc:Bounds x="132" y="102" width="36" height="36" /> <dc:Bounds x="132" y="102" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0dxzed7_di" bpmnElement="Activity_1q1wged"> <bpmndi:BPMNShape id="Activity_0dxzed7_di" bpmnElement="Activity_1q1wged">
<dc:Bounds x="220" y="80" width="100" height="80" /> <dc:Bounds x="220" y="80" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1i73q45_di" bpmnElement="Flow_1i73q45">
<di:waypoint x="168" y="120" />
<di:waypoint x="220" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00e79cz_di" bpmnElement="Flow_00e79cz">
<di:waypoint x="320" y="120" />
<di:waypoint x="372" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0et6lvm_di" bpmnElement="Event_0eb0w95"> <bpmndi:BPMNShape id="Event_0et6lvm_di" bpmnElement="Event_0eb0w95">
<dc:Bounds x="372" y="102" width="36" height="36" /> <dc:Bounds x="372" y="102" width="36" height="36" />
<bpmndi:BPMNLabel> <bpmndi:BPMNLabel>
<dc:Bounds x="361" y="145" width="60" height="14" /> <dc:Bounds x="361" y="145" width="60" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1bdrcxy_di" bpmnElement="Flow_1bdrcxy">
<di:waypoint x="408" y="120" />
<di:waypoint x="460" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1g6jb6j_di" bpmnElement="Activity_0pbdlyu">
<dc:Bounds x="460" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_19cfzir_di" bpmnElement="Event_19cfzir"> <bpmndi:BPMNShape id="Event_19cfzir_di" bpmnElement="Event_19cfzir">
<dc:Bounds x="612" y="102" width="36" height="36" /> <dc:Bounds x="492" y="102" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0bjksyv_di" bpmnElement="Flow_0bjksyv">
<di:waypoint x="560" y="120" />
<di:waypoint x="612" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0wc03ht" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0wc03ht" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="NonInterruptTimer" isExecutable="true"> <bpmn:process id="NonInterruptTimer" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1hyztad</bpmn:outgoing> <bpmn:outgoing>Flow_1hyztad</bpmn:outgoing>
@ -38,7 +38,7 @@
<bpmn:boundaryEvent id="Event_0jyy8ao" name="BenchmarkTime" cancelActivity="false" attachedToRef="Activity_0e5qk4z"> <bpmn:boundaryEvent id="Event_0jyy8ao" name="BenchmarkTime" cancelActivity="false" attachedToRef="Activity_0e5qk4z">
<bpmn:outgoing>Flow_03e1mfr</bpmn:outgoing> <bpmn:outgoing>Flow_03e1mfr</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_15a4lk2"> <bpmn:timerEventDefinition id="TimerEventDefinition_15a4lk2">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=.2)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.2S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:boundaryEvent> </bpmn:boundaryEvent>
<bpmn:userTask id="GetReason" name="Delay Reason" camunda:formKey="DelayForm"> <bpmn:userTask id="GetReason" name="Delay Reason" camunda:formKey="DelayForm">
@ -59,74 +59,46 @@
<bpmn:incoming>Flow_0tlkkap</bpmn:incoming> <bpmn:incoming>Flow_0tlkkap</bpmn:incoming>
<bpmn:outgoing>Flow_0vper9q</bpmn:outgoing> <bpmn:outgoing>Flow_0vper9q</bpmn:outgoing>
</bpmn:parallelGateway> </bpmn:parallelGateway>
<bpmn:sequenceFlow id="Flow_0vper9q" sourceRef="Gateway_19fdoel" targetRef="Experience" /> <bpmn:sequenceFlow id="Flow_0vper9q" sourceRef="Gateway_19fdoel" targetRef="Event_17ly1lc" />
<bpmn:endEvent id="Event_17ly1lc"> <bpmn:endEvent id="Event_17ly1lc">
<bpmn:incoming>Flow_0or6odg</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0or6odg" sourceRef="Experience" targetRef="Event_17ly1lc" />
<bpmn:userTask id="Experience" name="What was your work Experience?" camunda:formKey="ExpForm">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="experience" label="What was your Work Experience?" type="string" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0vper9q</bpmn:incoming> <bpmn:incoming>Flow_0vper9q</bpmn:incoming>
<bpmn:outgoing>Flow_0or6odg</bpmn:outgoing> </bpmn:endEvent>
</bpmn:userTask>
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="NonInterruptTimer"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="NonInterruptTimer">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNEdge id="Flow_0vper9q_di" bpmnElement="Flow_0vper9q">
<dc:Bounds x="112" y="159" width="36" height="36" /> <di:waypoint x="835" y="177" />
</bpmndi:BPMNShape> <di:waypoint x="992" y="177" />
<bpmndi:BPMNShape id="Activity_0e5qk4z_di" bpmnElement="Activity_0e5qk4z" isExpanded="true">
<dc:Bounds x="210" y="77" width="530" height="200" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0rpm2hw_di" bpmnElement="Event_0rpm2hw">
<dc:Bounds x="242" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0neqjqa_di" bpmnElement="Event_0jyy8ao">
<dc:Bounds x="572" y="259" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="551" y="302" width="80" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_09w3ybl_di" bpmnElement="GetReason">
<dc:Bounds x="540" y="350" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1hyztad_di" bpmnElement="Flow_1hyztad">
<di:waypoint x="148" y="177" />
<di:waypoint x="210" y="177" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_07l1pau_di" bpmnElement="Flow_07l1pau"> <bpmndi:BPMNEdge id="Flow_03e1mfr_di" bpmnElement="Flow_03e1mfr">
<di:waypoint x="740" y="177" /> <di:waypoint x="590" y="295" />
<di:waypoint x="785" y="177" /> <di:waypoint x="590" y="350" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tlkkap_di" bpmnElement="Flow_0tlkkap"> <bpmndi:BPMNEdge id="Flow_0tlkkap_di" bpmnElement="Flow_0tlkkap">
<di:waypoint x="640" y="390" /> <di:waypoint x="640" y="390" />
<di:waypoint x="810" y="390" /> <di:waypoint x="810" y="390" />
<di:waypoint x="810" y="202" /> <di:waypoint x="810" y="202" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_03e1mfr_di" bpmnElement="Flow_03e1mfr"> <bpmndi:BPMNEdge id="Flow_07l1pau_di" bpmnElement="Flow_07l1pau">
<di:waypoint x="590" y="295" /> <di:waypoint x="740" y="177" />
<di:waypoint x="590" y="350" /> <di:waypoint x="785" y="177" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ls93l9_di" bpmnElement="Flow_1ls93l9"> <bpmndi:BPMNEdge id="Flow_1hyztad_di" bpmnElement="Flow_1hyztad">
<di:waypoint x="278" y="177" /> <di:waypoint x="148" y="177" />
<di:waypoint x="320" y="177" /> <di:waypoint x="210" y="177" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Gateway_1qxx57d_di" bpmnElement="Gateway_WorkDone" isMarkerVisible="true"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="495" y="152" width="50" height="50" /> <dc:Bounds x="112" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0e5qk4z_di" bpmnElement="Activity_0e5qk4z" isExpanded="true">
<dc:Bounds x="210" y="77" width="530" height="200" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_10bimyk_di" bpmnElement="Flow_10bimyk">
<di:waypoint x="545" y="177" />
<di:waypoint x="602" y="177" />
<bpmndi:BPMNLabel> <bpmndi:BPMNLabel>
<dc:Bounds x="495" y="122" width="51" height="14" /> <dc:Bounds x="564" y="159" width="19" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_12d9rs0_di" bpmnElement="Gateway_19fdoel">
<dc:Bounds x="785" y="152" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1ku6me6_di" bpmnElement="Flow_1ku6me6">
<di:waypoint x="420" y="177" />
<di:waypoint x="495" y="177" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06jd2h7_di" bpmnElement="Flow_06jd2h7"> <bpmndi:BPMNEdge id="Flow_06jd2h7_di" bpmnElement="Flow_06jd2h7">
<di:waypoint x="520" y="202" /> <di:waypoint x="520" y="202" />
@ -137,32 +109,43 @@
<dc:Bounds x="438" y="232" width="15" height="14" /> <dc:Bounds x="438" y="232" width="15" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ku6me6_di" bpmnElement="Flow_1ku6me6">
<di:waypoint x="420" y="177" />
<di:waypoint x="495" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ls93l9_di" bpmnElement="Flow_1ls93l9">
<di:waypoint x="278" y="177" />
<di:waypoint x="320" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0rpm2hw_di" bpmnElement="Event_0rpm2hw">
<dc:Bounds x="242" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1qxx57d_di" bpmnElement="Gateway_WorkDone" isMarkerVisible="true">
<dc:Bounds x="495" y="152" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="495" y="122" width="51" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1sxw3jz_di" bpmnElement="Event_1sxw3jz"> <bpmndi:BPMNShape id="Event_1sxw3jz_di" bpmnElement="Event_1sxw3jz">
<dc:Bounds x="602" y="159" width="36" height="36" /> <dc:Bounds x="602" y="159" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_10bimyk_di" bpmnElement="Flow_10bimyk">
<di:waypoint x="545" y="177" />
<di:waypoint x="602" y="177" />
<bpmndi:BPMNLabel>
<dc:Bounds x="564" y="159" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1ax46dw_di" bpmnElement="Activity_Work"> <bpmndi:BPMNShape id="Activity_1ax46dw_di" bpmnElement="Activity_Work">
<dc:Bounds x="320" y="137" width="100" height="80" /> <dc:Bounds x="320" y="137" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0vper9q_di" bpmnElement="Flow_0vper9q"> <bpmndi:BPMNShape id="Activity_09w3ybl_di" bpmnElement="GetReason">
<di:waypoint x="835" y="177" /> <dc:Bounds x="540" y="350" width="100" height="80" />
<di:waypoint x="860" y="177" /> </bpmndi:BPMNShape>
</bpmndi:BPMNEdge> <bpmndi:BPMNShape id="Gateway_12d9rs0_di" bpmnElement="Gateway_19fdoel">
<dc:Bounds x="785" y="152" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_17ly1lc_di" bpmnElement="Event_17ly1lc"> <bpmndi:BPMNShape id="Event_17ly1lc_di" bpmnElement="Event_17ly1lc">
<dc:Bounds x="992" y="159" width="36" height="36" /> <dc:Bounds x="992" y="159" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0or6odg_di" bpmnElement="Flow_0or6odg"> <bpmndi:BPMNShape id="Event_0neqjqa_di" bpmnElement="Event_0jyy8ao">
<di:waypoint x="960" y="177" /> <dc:Bounds x="572" y="259" width="36" height="36" />
<di:waypoint x="992" y="177" /> <bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> <dc:Bounds x="551" y="302" width="80" height="14" />
<bpmndi:BPMNShape id="Activity_130382b_di" bpmnElement="Experience"> </bpmndi:BPMNLabel>
<dc:Bounds x="860" y="137" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>

View File

@ -1,68 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ilr8m3" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ilr8m3" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="timer" isExecutable="true"> <bpmn:process id="timer" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1pahvlr</bpmn:outgoing> <bpmn:outgoing>Flow_1pahvlr</bpmn:outgoing>
</bpmn:startEvent> </bpmn:startEvent>
<bpmn:manualTask id="Activity_1ybpou3" name="Get Coffee">
<bpmn:incoming>Flow_1pahvlr</bpmn:incoming>
<bpmn:outgoing>Flow_1pvkgnu</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:intermediateCatchEvent id="Event_0bxivgz" name="Take 5"> <bpmn:intermediateCatchEvent id="Event_0bxivgz" name="Take 5">
<bpmn:incoming>Flow_1pvkgnu</bpmn:incoming> <bpmn:incoming>Flow_1pahvlr</bpmn:incoming>
<bpmn:outgoing>Flow_1elbn9u</bpmn:outgoing> <bpmn:outgoing>Flow_1elbn9u</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1jrn73k"> <bpmn:timerEventDefinition id="TimerEventDefinition_1jrn73k">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=.25)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.25S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:manualTask id="Activity_1rbj8j1" name="Get Back To Work">
<bpmn:incoming>Flow_1elbn9u</bpmn:incoming>
<bpmn:outgoing>Flow_1ekgt3x</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:endEvent id="Event_03w65sk"> <bpmn:endEvent id="Event_03w65sk">
<bpmn:incoming>Flow_1ekgt3x</bpmn:incoming> <bpmn:incoming>Flow_1elbn9u</bpmn:incoming>
</bpmn:endEvent> </bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1ekgt3x" sourceRef="Activity_1rbj8j1" targetRef="Event_03w65sk" /> <bpmn:sequenceFlow id="Flow_1elbn9u" sourceRef="Event_0bxivgz" targetRef="Event_03w65sk" />
<bpmn:sequenceFlow id="Flow_1elbn9u" sourceRef="Event_0bxivgz" targetRef="Activity_1rbj8j1" /> <bpmn:sequenceFlow id="Flow_1pahvlr" sourceRef="StartEvent_1" targetRef="Event_0bxivgz" />
<bpmn:sequenceFlow id="Flow_1pvkgnu" sourceRef="Activity_1ybpou3" targetRef="Event_0bxivgz" />
<bpmn:sequenceFlow id="Flow_1pahvlr" sourceRef="StartEvent_1" targetRef="Activity_1ybpou3" />
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="timer"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="timer">
<bpmndi:BPMNEdge id="Flow_1pahvlr_di" bpmnElement="Flow_1pahvlr">
<di:waypoint x="215" y="117" />
<di:waypoint x="262" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1elbn9u_di" bpmnElement="Flow_1elbn9u">
<di:waypoint x="298" y="117" />
<di:waypoint x="342" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="179" y="99" width="36" height="36" /> <dc:Bounds x="179" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0tjl9dd_di" bpmnElement="Activity_1ybpou3">
<dc:Bounds x="260" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0bljn9v_di" bpmnElement="Event_0bxivgz"> <bpmndi:BPMNShape id="Event_0bljn9v_di" bpmnElement="Event_0bxivgz">
<dc:Bounds x="412" y="99" width="36" height="36" /> <dc:Bounds x="262" y="99" width="36" height="36" />
<bpmndi:BPMNLabel> <bpmndi:BPMNLabel>
<dc:Bounds x="414" y="142" width="33" height="14" /> <dc:Bounds x="264" y="142" width="33" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_15zi5m4_di" bpmnElement="Activity_1rbj8j1">
<dc:Bounds x="530" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_03w65sk_di" bpmnElement="Event_03w65sk"> <bpmndi:BPMNShape id="Event_03w65sk_di" bpmnElement="Event_03w65sk">
<dc:Bounds x="682" y="99" width="36" height="36" /> <dc:Bounds x="342" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1ekgt3x_di" bpmnElement="Flow_1ekgt3x">
<di:waypoint x="630" y="117" />
<di:waypoint x="682" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1elbn9u_di" bpmnElement="Flow_1elbn9u">
<di:waypoint x="448" y="117" />
<di:waypoint x="530" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pvkgnu_di" bpmnElement="Flow_1pvkgnu">
<di:waypoint x="360" y="117" />
<di:waypoint x="412" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pahvlr_di" bpmnElement="Flow_1pahvlr">
<di:waypoint x="215" y="117" />
<di:waypoint x="260" y="117" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_d4f3442" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_d4f3442" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="loops" isExecutable="true"> <bpmn:process id="loops" isExecutable="true">
<bpmn:scriptTask id="increment_counter" name="increment counter"> <bpmn:scriptTask id="increment_counter" name="increment counter">
<bpmn:incoming>Flow_1gb8wca</bpmn:incoming> <bpmn:incoming>Flow_1gb8wca</bpmn:incoming>
@ -25,7 +25,7 @@ Days elapsed: {{days_delta }}</bpmn:documentation>
<bpmn:incoming>Flow_0op1a19</bpmn:incoming> <bpmn:incoming>Flow_0op1a19</bpmn:incoming>
<bpmn:outgoing>Flow_1gb8wca</bpmn:outgoing> <bpmn:outgoing>Flow_1gb8wca</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0x6divu"> <bpmn:timerEventDefinition id="TimerEventDefinition_0x6divu">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(milliseconds=10)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT.01S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:exclusiveGateway id="Gateway_over_20" name="is &#62; 20"> <bpmn:exclusiveGateway id="Gateway_over_20" name="is &#62; 20">
@ -57,6 +57,14 @@ Days elapsed: {{days_delta }}</bpmn:documentation>
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="loops"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="loops">
<bpmndi:BPMNEdge id="Flow_0q7fkb7_di" bpmnElement="Flow_0q7fkb7">
<di:waypoint x="188" y="177" />
<di:waypoint x="250" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0mxlkif_di" bpmnElement="Flow_0mxlkif">
<di:waypoint x="720" y="177" />
<di:waypoint x="755" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15jw6a4_di" bpmnElement="Flow_15jw6a4"> <bpmndi:BPMNEdge id="Flow_15jw6a4_di" bpmnElement="Flow_15jw6a4">
<di:waypoint x="350" y="177" /> <di:waypoint x="350" y="177" />
<di:waypoint x="412" y="177" /> <di:waypoint x="412" y="177" />
@ -85,16 +93,8 @@ Days elapsed: {{days_delta }}</bpmn:documentation>
<di:waypoint x="580" y="177" /> <di:waypoint x="580" y="177" />
<di:waypoint x="620" y="177" /> <di:waypoint x="620" y="177" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0q7fkb7_di" bpmnElement="Flow_0q7fkb7"> <bpmndi:BPMNShape id="Activity_1fgfg5d_di" bpmnElement="increment_counter">
<di:waypoint x="188" y="177" /> <dc:Bounds x="480" y="137" width="100" height="80" />
<di:waypoint x="250" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0mxlkif_di" bpmnElement="Flow_0mxlkif">
<di:waypoint x="720" y="177" />
<di:waypoint x="755" y="177" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="152" y="159" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1tseamj_di" bpmnElement="end_event5"> <bpmndi:BPMNShape id="Event_1tseamj_di" bpmnElement="end_event5">
<dc:Bounds x="932" y="159" width="36" height="36" /> <dc:Bounds x="932" y="159" width="36" height="36" />
@ -114,12 +114,12 @@ Days elapsed: {{days_delta }}</bpmn:documentation>
<bpmndi:BPMNShape id="Activity_0whalo9_di" bpmnElement="initialize"> <bpmndi:BPMNShape id="Activity_0whalo9_di" bpmnElement="initialize">
<dc:Bounds x="250" y="137" width="100" height="80" /> <dc:Bounds x="250" y="137" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1fgfg5d_di" bpmnElement="increment_counter">
<dc:Bounds x="480" y="137" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0mmgsiw_di" bpmnElement="Activity_0w5u4k4"> <bpmndi:BPMNShape id="Activity_0mmgsiw_di" bpmnElement="Activity_0w5u4k4">
<dc:Bounds x="620" y="137" width="100" height="80" /> <dc:Bounds x="620" y="137" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="152" y="159" width="36" height="36" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_d4f3442" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_d4f3442" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="loops_sub" isExecutable="true"> <bpmn:process id="loops_sub" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_0q7fkb7</bpmn:outgoing> <bpmn:outgoing>Flow_0q7fkb7</bpmn:outgoing>
@ -29,7 +29,7 @@ Days elapsed: {{days_delta }}</bpmn:documentation>
<bpmn:incoming>Flow_1ivr6d7</bpmn:incoming> <bpmn:incoming>Flow_1ivr6d7</bpmn:incoming>
<bpmn:outgoing>Flow_1gb8wca</bpmn:outgoing> <bpmn:outgoing>Flow_1gb8wca</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0x6divu"> <bpmn:timerEventDefinition id="TimerEventDefinition_0x6divu">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(milliseconds=10)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.01S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:exclusiveGateway id="Gateway_over_20" name="is &#62; 20"> <bpmn:exclusiveGateway id="Gateway_over_20" name="is &#62; 20">

View File

@ -15,7 +15,7 @@ class ActionManagementTest(BpmnWorkflowTestCase):
FINISH_TIME_DELTA=0.10 FINISH_TIME_DELTA=0.10
def now_plus_seconds(self, seconds): def now_plus_seconds(self, seconds):
return datetime.datetime.now() + datetime.timedelta(seconds=seconds) return (datetime.datetime.now() + datetime.timedelta(seconds=seconds)).isoformat()
def setUp(self): def setUp(self):
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/Action-Management.bpmn20.xml', 'Action Management') self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/Action-Management.bpmn20.xml', 'Action Management')

View File

@ -0,0 +1,60 @@
import unittest
from datetime import datetime
from SpiffWorkflow.bpmn.specs.events.event_definitions import TimerEventDefinition
class TimeDurationParseTest(unittest.TestCase):
"Non-exhaustive ISO durations, but hopefully covers basic support"
def test_parse_duration(self):
valid = [
("P1Y6M1DT1H1M1S", {'years': 1, 'months': 6, 'days': 1, 'hours': 1, 'minutes': 1, 'seconds': 1 }), # everything
("P1Y6M1DT1H1M1.5S", {'years': 1, 'months': 6, 'days': 1, 'hours': 1, 'minutes': 1, 'seconds': 1.5 }), # fractional seconds
("P1YT1H1M1S", {'years': 1, 'hours': 1, 'minutes': 1, 'seconds': 1 }), # minutes but no month
("P1MT1H", {'months': 1, 'hours':1}), # months but no minutes
("P4W", {'weeks': 4}), # weeks
("P1Y6M1D", {'years': 1, 'months': 6, 'days': 1}), # no time
("PT1H1M1S", {'hours': 1,'minutes': 1,'seconds': 1}), # time only
("PT1.5H", {'hours': 1.5}), # alt fractional
("T1,5H", {'hours': 1.5}), # fractional with comma
("PDT1H1M1S", {'hours': 1, 'minutes': 1, 'seconds': 1}), # empty spec
("PYMDT1H1M1S", {'hours': 1, 'minutes': 1, 'seconds': 1}), # multiple empty
]
for duration, parsed_duration in valid:
result = TimerEventDefinition.parse_iso_duration(duration)
self.assertDictEqual(result, parsed_duration)
invalid = [
"PT1.5H30S", # fractional duration with subsequent non-fractional
"PT1,5H30S", # with comma
"P1H1M1S", # missing 't'
"P1DT", # 't' without time spec
"P1W1D", # conflicting day specs
"PT1H1M1", # trailing values
]
for duration in invalid:
self.assertRaises(Exception, TimerEventDefinition.parse_iso_duration, duration)
def test_calculate_timedelta_from_start(self):
start, one_day = datetime.fromisoformat("2023-01-01"), 24 * 3600
# Leap years
self.assertEqual(TimerEventDefinition.get_timedelta_from_start({'years': 1}, start).total_seconds(), 365 * one_day)
self.assertEqual(TimerEventDefinition.get_timedelta_from_start({'years': 2}, start).total_seconds(), (365 + 366) * one_day)
# Increment by month does not change day
for month in range(1, 13):
dt = start + TimerEventDefinition.get_timedelta_from_start({'months': month}, start)
self.assertEqual(dt.day, 1)
def test_calculate_timedelta_from_end(self):
end, one_day = datetime.fromisoformat("2025-01-01"), 24 * 3600
# Leap years
self.assertEqual(TimerEventDefinition.get_timedelta_from_end({'years': 1}, end).total_seconds(), 366 * one_day)
self.assertEqual(TimerEventDefinition.get_timedelta_from_end({'years': 2}, end).total_seconds(), (365 + 366) * one_day)
dt = end - TimerEventDefinition.get_timedelta_from_end({'months': 11}, end)
# Decrement by month does not change day
for month in range(1, 13):
dt = end - TimerEventDefinition.get_timedelta_from_end({'months': month}, end)
self.assertEqual(dt.day, 1)

View File

@ -5,12 +5,14 @@ import unittest
import time import time
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
__author__ = 'kellym' __author__ = 'kellym'
# the data doesn't really propagate to the end as in a 'normal' workflow, so I call a
# custom function that records the number of times this got called so that
# we can keep track of how many times the triggered item gets called.
counter = 0 counter = 0
def my_custom_function(): def my_custom_function():
global counter global counter
@ -41,31 +43,24 @@ class TimerCycleStartTest(BpmnWorkflowTestCase):
def testThroughSaveRestore(self): def testThroughSaveRestore(self):
self.actual_test(save_restore=True) self.actual_test(save_restore=True)
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
global counter global counter
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) # Start Event
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps()
# the data doesn't really propagate to the end as in a 'normal' workflow, so I call a
# custom function that records the number of times this got called so that
# we can keep track of how many times the triggered item gets called.
counter = 0 counter = 0
# We have a loop so we can continue to execute waiting tasks when # We have a loop so we can continue to execute waiting tasks when
# timers expire. The test workflow has a wait timer that pauses long enough to # timers expire. The test workflow has a wait timer that pauses long enough to
# allow the cycle to complete twice -- otherwise the first iteration through the # allow the cycle to complete three times before being cancelled by the terminate
# cycle process causes the remaining tasks to be cancelled. # event (the timer should only run twice, we want to make sure it doesn't keep
for loopcount in range(5): # executing)
for loopcount in range(6):
self.workflow.do_engine_steps()
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = CustomScriptEngine() self.workflow.script_engine = CustomScriptEngine()
time.sleep(0.1) time.sleep(0.1)
self.workflow.refresh_waiting_tasks() self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps()
self.assertEqual(counter, 2) self.assertEqual(counter, 2)
self.assertTrue(self.workflow.is_completed())
def suite(): def suite():

View File

@ -30,7 +30,7 @@ class CustomScriptEngine(PythonScriptEngine):
class TimerDurationTest(BpmnWorkflowTestCase): class TimerCycleTest(BpmnWorkflowTestCase):
def setUp(self): def setUp(self):
self.spec, self.subprocesses = self.load_workflow_spec('timer-cycle.bpmn', 'timer') self.spec, self.subprocesses = self.load_workflow_spec('timer-cycle.bpmn', 'timer')
@ -42,31 +42,34 @@ class TimerDurationTest(BpmnWorkflowTestCase):
def testThroughSaveRestore(self): def testThroughSaveRestore(self):
self.actual_test(save_restore=True) self.actual_test(save_restore=True)
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
global counter global counter
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) # Start Event
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) # GetCoffee
# See comments in timer cycle test for more context
counter = 0 counter = 0
# See comments in timer cycle test start for more context
for loopcount in range(5): for loopcount in range(5):
self.workflow.do_engine_steps()
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = CustomScriptEngine() self.workflow.script_engine = CustomScriptEngine()
time.sleep(0.01) time.sleep(0.05)
self.workflow.refresh_waiting_tasks() self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps() events = self.workflow.waiting_events()
if loopcount == 0:
pass # Wait time is 0.1s, so the first time through, there should still be a waiting event
#self.assertEqual(counter, 2) self.assertEqual(len(events), 1)
else:
# By the second iteration, both should be complete
self.assertEqual(len(events), 0)
# Get coffee still ready
coffee = self.workflow.get_tasks_from_spec_name('Get_Coffee')[0]
self.assertEqual(coffee.state, TaskState.READY)
# Timer completed
timer = self.workflow.get_tasks_from_spec_name('CatchMessage')[0]
self.assertEqual(timer.state, TaskState.COMPLETED)
self.assertEqual(counter, 2)
def suite(): def suite():
return unittest.TestLoader().loadTestsFromTestCase(TimerDurationTest) return unittest.TestLoader().loadTestsFromTestCase(TimerCycleTest)
if __name__ == '__main__': if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(suite()) unittest.TextTestRunner(verbosity=2).run(suite())

View File

@ -4,7 +4,6 @@ import unittest
import datetime import datetime
import time import time
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
@ -28,37 +27,22 @@ class TimerDateTest(BpmnWorkflowTestCase):
def testThroughSaveRestore(self): def testThroughSaveRestore(self):
self.actual_test(save_restore=True) self.actual_test(save_restore=True)
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
global counter
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) # Start Event
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
self.assertEqual(len(self.workflow.waiting_events()), 1)
loopcount = 0 loopcount = 0
# test bpmn has a timeout of .05s
# we should terminate loop before that.
starttime = datetime.datetime.now() starttime = datetime.datetime.now()
counter = 0 # test bpmn has a timeout of .05s; we should terminate loop before that.
while loopcount < 8: while len(self.workflow.get_waiting_tasks()) > 0 and loopcount < 8:
if len(self.workflow.get_tasks(TaskState.READY)) >= 1:
break
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = self.script_engine self.workflow.script_engine = self.script_engine
waiting_tasks = self.workflow.get_tasks(TaskState.WAITING)
time.sleep(0.01) time.sleep(0.01)
self.workflow.refresh_waiting_tasks() self.workflow.refresh_waiting_tasks()
loopcount = loopcount +1 loopcount += 1
endtime = datetime.datetime.now() endtime = datetime.datetime.now()
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
testdate = datetime.datetime.strptime('2021-09-01 10:00','%Y-%m-%d %H:%M') self.assertTrue(self.workflow.is_completed())
self.assertEqual(self.workflow.last_task.data['futuredate2'],testdate)
self.assertTrue('completed' in self.workflow.last_task.data)
self.assertTrue(self.workflow.last_task.data['completed'])
self.assertTrue((endtime-starttime) > datetime.timedelta(seconds=.02)) self.assertTrue((endtime-starttime) > datetime.timedelta(seconds=.02))

View File

@ -1,12 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
import datetime
import time import time
from datetime import timedelta from datetime import timedelta
from SpiffWorkflow.bpmn.specs.events.EndEvent import EndEvent
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
@ -27,45 +24,23 @@ class TimerDurationTest(BpmnWorkflowTestCase):
self.actual_test(save_restore=True) self.actual_test(save_restore=True)
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
# In the normal flow of things, the final end event should be the last task
self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks))
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps()
self.assertTrue(self.workflow.is_completed())
end_events = []
for task in self.workflow.get_tasks():
if isinstance(task.task_spec, EndEvent):
end_events.append(task)
self.assertEqual(1, len(end_events))
# In the event of a timer firing, the last task should STILL
# be the final end event.
starttime = datetime.datetime.now()
self.workflow = BpmnWorkflow(self.spec)
self.workflow.script_engine = self.script_engine
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = self.script_engine self.workflow.script_engine = self.script_engine
time.sleep(0.1) time.sleep(1)
self.workflow.refresh_waiting_tasks() self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
# Make sure the timer got called
self.assertEqual(self.workflow.last_task.data['timer_called'],True)
# Make sure the task can still be called.
task = self.workflow.get_ready_user_tasks()[0] task = self.workflow.get_ready_user_tasks()[0]
self.workflow.complete_task_from_id(task.id) task.complete()
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
self.assertTrue(self.workflow.is_completed()) self.assertTrue(self.workflow.is_completed())
end_events = []
for task in self.workflow.get_tasks():
if isinstance(task.task_spec, EndEvent):
end_events.append(task)
self.assertEqual(1, len(end_events))
def suite(): def suite():

View File

@ -3,7 +3,6 @@
import unittest import unittest
import time import time
from SpiffWorkflow.bpmn.FeelLikeScriptEngine import FeelLikeScriptEngine
from SpiffWorkflow.task import TaskState from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
@ -23,35 +22,31 @@ class TimerDurationTest(BpmnWorkflowTestCase):
self.actual_test(save_restore=True) self.actual_test(save_restore=True)
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
self.workflow.script_engine = FeelLikeScriptEngine()
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks))
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_tasks(TaskState.READY) ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks)) ready_tasks[0].complete()
ready_tasks[0].data['answer']='No'
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
loopcount = 0 loopcount = 0
# test bpmn has a timeout of .03s # test bpmn has a timeout of .03s; we should terminate loop before that.
# we should terminate loop before that. while len(self.workflow.get_waiting_tasks()) == 2 and loopcount < 11:
while loopcount < 11:
ready_tasks = self.workflow.get_tasks(TaskState.READY)
if len(ready_tasks) < 1:
break
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = FeelLikeScriptEngine()
#self.assertEqual(1, len(self.workflow.get_tasks(Task.WAITING)))
time.sleep(0.01) time.sleep(0.01)
self.workflow.complete_task_from_id(ready_tasks[0].id) self.assertEqual(len(self.workflow.get_tasks(TaskState.READY)), 1)
self.workflow.refresh_waiting_tasks() self.workflow.refresh_waiting_tasks()
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
loopcount = loopcount +1 loopcount += 1
self.workflow.do_engine_steps()
subworkflow = self.workflow.get_tasks_from_spec_name('Subworkflow')[0]
self.assertEqual(subworkflow.state, TaskState.CANCELLED)
ready_tasks = self.workflow.get_ready_user_tasks()
while len(ready_tasks) > 0:
ready_tasks[0].complete()
ready_tasks = self.workflow.get_ready_user_tasks()
self.workflow.do_engine_steps()
self.assertTrue(self.workflow.is_completed())
# Assure that the loopcount is less than 10, and the timer interrupt fired, rather # Assure that the loopcount is less than 10, and the timer interrupt fired, rather
# than allowing us to continue to loop the full 10 times. # than allowing us to continue to loop the full 10 times.
self.assertTrue(loopcount < 10) self.assertTrue(loopcount < 10)

View File

@ -1,10 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import unittest import unittest
import datetime
import time import time
from datetime import timedelta from datetime import datetime, timedelta
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
@ -25,35 +23,25 @@ class TimerDurationTest(BpmnWorkflowTestCase):
def testThroughSaveRestore(self): def testThroughSaveRestore(self):
self.actual_test(save_restore=True) self.actual_test(save_restore=True)
def actual_test(self,save_restore = False): def actual_test(self,save_restore = False):
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks))
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_tasks(TaskState.READY)
self.assertEqual(1, len(ready_tasks))
self.workflow.complete_task_from_id(ready_tasks[0].id)
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
self.assertEqual(len(self.workflow.waiting_events()), 1)
loopcount = 0 loopcount = 0
# test bpmn has a timeout of .25s starttime = datetime.now()
# we should terminate loop before that. # test bpmn has a timeout of .25s; we should terminate loop before that.
starttime = datetime.datetime.now() while len(self.workflow.get_waiting_tasks()) > 0 and loopcount < 10:
while loopcount < 10:
if len(self.workflow.get_tasks(TaskState.READY)) >= 1:
break
if save_restore: if save_restore:
self.save_restore() self.save_restore()
self.workflow.script_engine = self.script_engine self.workflow.script_engine = self.script_engine
self.assertEqual(1, len(self.workflow.get_tasks(TaskState.WAITING)))
time.sleep(0.1) time.sleep(0.1)
self.workflow.refresh_waiting_tasks() self.workflow.refresh_waiting_tasks()
loopcount = loopcount +1 loopcount += 1
endtime = datetime.datetime.now() endtime = datetime.now()
duration = endtime-starttime duration = endtime - starttime
self.assertEqual(duration<datetime.timedelta(seconds=.5),True) self.assertEqual(duration < timedelta(seconds=.5), True)
self.assertEqual(duration>datetime.timedelta(seconds=.2),True) self.assertEqual(duration > timedelta(seconds=.2), True)
self.assertEqual(len(self.workflow.waiting_events()), 0)
def suite(): def suite():

View File

@ -18,7 +18,7 @@ class TimerIntermediateTest(BpmnWorkflowTestCase):
def testRunThroughHappy(self): def testRunThroughHappy(self):
due_time = datetime.datetime.now() + datetime.timedelta(seconds=0.01) due_time = (datetime.datetime.now() + datetime.timedelta(seconds=0.01)).isoformat()
self.assertEqual(1, len(self.workflow.get_tasks(TaskState.READY))) self.assertEqual(1, len(self.workflow.get_tasks(TaskState.READY)))
self.workflow.get_tasks(TaskState.READY)[0].set_data(due_time=due_time) self.workflow.get_tasks(TaskState.READY)[0].set_data(due_time=due_time)

View File

@ -0,0 +1,27 @@
import unittest
import os
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from SpiffWorkflow.bpmn.parser.BpmnParser import BpmnParser
from SpiffWorkflow.bpmn.serializer.workflow import BpmnWorkflowSerializer
from tests.SpiffWorkflow.bpmn.BpmnLoaderForTests import TestUserTaskConverter
class BaseTestCase(unittest.TestCase):
SERIALIZER_VERSION = "100.1.ANY"
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data')
def load_workflow_spec(self, filename, process_name):
parser = BpmnParser()
parser.add_bpmn_files_by_glob(os.path.join(self.DATA_DIR, filename))
top_level_spec = parser.get_spec(process_name)
subprocesses = parser.get_subprocess_specs(process_name)
return top_level_spec, subprocesses
def setUp(self):
super(BaseTestCase, self).setUp()
wf_spec_converter = BpmnWorkflowSerializer.configure_workflow_spec_converter([TestUserTaskConverter])
self.serializer = BpmnWorkflowSerializer(wf_spec_converter, version=self.SERIALIZER_VERSION)
spec, subprocesses = self.load_workflow_spec('random_fact.bpmn', 'random_fact')
self.workflow = BpmnWorkflow(spec, subprocesses)

View File

@ -1,33 +1,18 @@
import os
import unittest import unittest
import os
import json import json
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from SpiffWorkflow.bpmn.parser.BpmnParser import BpmnParser
from SpiffWorkflow.bpmn.serializer.workflow import BpmnWorkflowSerializer from SpiffWorkflow.bpmn.serializer.workflow import BpmnWorkflowSerializer
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
from tests.SpiffWorkflow.bpmn.BpmnLoaderForTests import TestUserTaskConverter from tests.SpiffWorkflow.bpmn.BpmnLoaderForTests import TestUserTaskConverter
from .BaseTestCase import BaseTestCase
class BpmnWorkflowSerializerTest(BaseTestCase):
class BpmnWorkflowSerializerTest(unittest.TestCase):
"""Please note that the BpmnSerializer is Deprecated."""
SERIALIZER_VERSION = "100.1.ANY" SERIALIZER_VERSION = "100.1.ANY"
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'data')
def load_workflow_spec(self, filename, process_name):
f = os.path.join(os.path.dirname(__file__), 'data', filename)
parser = BpmnParser()
parser.add_bpmn_files_by_glob(f)
top_level_spec = parser.get_spec(process_name)
subprocesses = parser.get_subprocess_specs(process_name)
return top_level_spec, subprocesses
def setUp(self):
super(BpmnWorkflowSerializerTest, self).setUp()
wf_spec_converter = BpmnWorkflowSerializer.configure_workflow_spec_converter([TestUserTaskConverter])
self.serializer = BpmnWorkflowSerializer(wf_spec_converter, version=self.SERIALIZER_VERSION)
spec, subprocesses = self.load_workflow_spec('random_fact.bpmn', 'random_fact')
self.workflow = BpmnWorkflow(spec, subprocesses)
def testSerializeWorkflowSpec(self): def testSerializeWorkflowSpec(self):
spec_serialized = self.serializer.serialize_json(self.workflow) spec_serialized = self.serializer.serialize_json(self.workflow)
@ -102,12 +87,6 @@ class BpmnWorkflowSerializerTest(unittest.TestCase):
def testDeserializeWorkflow(self): def testDeserializeWorkflow(self):
self._compare_with_deserialized_copy(self.workflow) self._compare_with_deserialized_copy(self.workflow)
def testSerializeTask(self):
self.serializer.serialize_json(self.workflow)
def testDeserializeTask(self):
self._compare_with_deserialized_copy(self.workflow)
def testDeserializeActiveWorkflow(self): def testDeserializeActiveWorkflow(self):
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
self._compare_with_deserialized_copy(self.workflow) self._compare_with_deserialized_copy(self.workflow)
@ -161,17 +140,6 @@ class BpmnWorkflowSerializerTest(unittest.TestCase):
self.assertIsNotNone(wf2.last_task) self.assertIsNotNone(wf2.last_task)
self._compare_workflows(self.workflow, wf2) self._compare_workflows(self.workflow, wf2)
def test_convert_1_0_to_1_1(self):
# The serialization used here comes from NestedSubprocessTest saved at line 25 with version 1.0
fn = os.path.join(os.path.dirname(__file__), 'data', 'serialization', 'v1.0.json')
wf = self.serializer.deserialize_json(open(fn).read())
# We should be able to finish the workflow from this point
ready_tasks = wf.get_tasks(TaskState.READY)
self.assertEqual('Action3', ready_tasks[0].task_spec.description)
ready_tasks[0].complete()
wf.do_engine_steps()
self.assertEqual(True, wf.is_completed())
def test_serialize_workflow_where_script_task_includes_function(self): def test_serialize_workflow_where_script_task_includes_function(self):
self.workflow.do_engine_steps() self.workflow.do_engine_steps()
ready_tasks = self.workflow.get_ready_user_tasks() ready_tasks = self.workflow.get_ready_user_tasks()

View File

@ -0,0 +1,30 @@
import os
import time
from SpiffWorkflow.task import TaskState
from SpiffWorkflow.bpmn.PythonScriptEngine import PythonScriptEngine
from .BaseTestCase import BaseTestCase
class VersionMigrationTest(BaseTestCase):
SERIALIZER_VERSION = "1.2"
def test_convert_1_0_to_1_1(self):
# The serialization used here comes from NestedSubprocessTest saved at line 25 with version 1.0
fn = os.path.join(self.DATA_DIR, 'serialization', 'v1.0.json')
wf = self.serializer.deserialize_json(open(fn).read())
# We should be able to finish the workflow from this point
ready_tasks = wf.get_tasks(TaskState.READY)
self.assertEqual('Action3', ready_tasks[0].task_spec.description)
ready_tasks[0].complete()
wf.do_engine_steps()
self.assertEqual(True, wf.is_completed())
def test_convert_1_1_to_1_2(self):
fn = os.path.join(self.DATA_DIR, 'serialization', 'v1-1.json')
wf = self.serializer.deserialize_json(open(fn).read())
wf.script_engine = PythonScriptEngine(default_globals={"time": time})
wf.refresh_waiting_tasks()
wf.do_engine_steps()
self.assertTrue(wf.is_completed())

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ucc3vj" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_0ucc3vj" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:collaboration id="Collaboration_0fh00ao"> <bpmn:collaboration id="Collaboration_0fh00ao">
<bpmn:participant id="Participant_1p8gtyd" name="Sample Process&#10;" processRef="Process_1kjyavs" /> <bpmn:participant id="Participant_1p8gtyd" name="Sample Process&#10;" processRef="Process_1kjyavs" />
</bpmn:collaboration> </bpmn:collaboration>
@ -78,7 +78,7 @@
<bpmn:incoming>Flow_11u0pgk</bpmn:incoming> <bpmn:incoming>Flow_11u0pgk</bpmn:incoming>
<bpmn:outgoing>Flow_1rqk2v9</bpmn:outgoing> <bpmn:outgoing>Flow_1rqk2v9</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0bct7zl"> <bpmn:timerEventDefinition id="TimerEventDefinition_0bct7zl">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=.01)</bpmn:timeDuration> <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">"PT0.01S"</bpmn:timeDuration>
</bpmn:timerEventDefinition> </bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent> </bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_1gs89vo" sourceRef="Event_0akpdke" targetRef="Activity_106f08z" /> <bpmn:sequenceFlow id="Flow_1gs89vo" sourceRef="Event_0akpdke" targetRef="Activity_106f08z" />
@ -107,48 +107,29 @@
<bpmndi:BPMNShape id="Participant_1p8gtyd_di" bpmnElement="Participant_1p8gtyd" isHorizontal="true"> <bpmndi:BPMNShape id="Participant_1p8gtyd_di" bpmnElement="Participant_1p8gtyd" isHorizontal="true">
<dc:Bounds x="190" y="70" width="978" height="638" /> <dc:Bounds x="190" y="70" width="978" height="638" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_0rpib5y_di" bpmnElement="Lane_0rpib5y" isHorizontal="true">
<dc:Bounds x="220" y="70" width="948" height="202" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_0gfw5kf_di" bpmnElement="Lane_0gfw5kf" isHorizontal="true"> <bpmndi:BPMNShape id="Lane_0gfw5kf_di" bpmnElement="Lane_0gfw5kf" isHorizontal="true">
<dc:Bounds x="220" y="272" width="948" height="436" /> <dc:Bounds x="220" y="272" width="948" height="436" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0d3xq5q_di" bpmnElement="Event_0d3xq5q"> <bpmndi:BPMNShape id="Lane_0rpib5y_di" bpmnElement="Lane_0rpib5y" isHorizontal="true">
<dc:Bounds x="292" y="152" width="36" height="36" /> <dc:Bounds x="220" y="70" width="948" height="202" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0bvln2b_di" bpmnElement="Flow_0bvln2b"> <bpmndi:BPMNEdge id="Flow_093roev_di" bpmnElement="Flow_093roev">
<di:waypoint x="328" y="170" /> <di:waypoint x="645" y="360" />
<di:waypoint x="380" y="170" /> <di:waypoint x="645" y="310" />
<di:waypoint x="1050" y="310" />
<di:waypoint x="1050" y="442" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1ugbw2a_di" bpmnElement="Activity_Interrupt"> <bpmndi:BPMNEdge id="Flow_0o0l113_di" bpmnElement="Flow_0o0l113">
<dc:Bounds x="380" y="130" width="100" height="80" /> <di:waypoint x="797" y="578" />
</bpmndi:BPMNShape> <di:waypoint x="797" y="630" />
<bpmndi:BPMNShape id="Gateway_0ncff13_di" bpmnElement="Gateway_0ncff13" isMarkerVisible="true"> <di:waypoint x="1050" y="630" />
<dc:Bounds x="535" y="145" width="50" height="50" /> <di:waypoint x="1050" y="478" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1ya6ran_di" bpmnElement="Flow_1ya6ran">
<di:waypoint x="480" y="170" />
<di:waypoint x="535" y="170" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0saykw5_di" bpmnElement="Flow_0saykw5"> <bpmndi:BPMNEdge id="Flow_1gd7a2h_di" bpmnElement="Flow_1gd7a2h">
<di:waypoint x="585" y="170" /> <di:waypoint x="328" y="430" />
<di:waypoint x="642" y="170" /> <di:waypoint x="339" y="430" />
<bpmndi:BPMNLabel> <di:waypoint x="339" y="460" />
<dc:Bounds x="604" y="152" width="19" height="14" /> <di:waypoint x="350" y="460" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_15z0u0c_di" bpmnElement="Event_0g8w85g">
<dc:Bounds x="642" y="152" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="625" y="195" width="70" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0l8sadb_di" bpmnElement="Event_0l8sadb">
<dc:Bounds x="742" y="152" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0lekhj5_di" bpmnElement="Flow_0lekhj5">
<di:waypoint x="678" y="170" />
<di:waypoint x="742" y="170" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1t2ocwk_di" bpmnElement="Flow_1t2ocwk"> <bpmndi:BPMNEdge id="Flow_1t2ocwk_di" bpmnElement="Flow_1t2ocwk">
<di:waypoint x="560" y="195" /> <di:waypoint x="560" y="195" />
@ -159,76 +140,52 @@
<dc:Bounds x="488" y="232" width="15" height="40" /> <dc:Bounds x="488" y="232" width="15" height="40" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0lekhj5_di" bpmnElement="Flow_0lekhj5">
<di:waypoint x="678" y="170" />
<di:waypoint x="742" y="170" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0saykw5_di" bpmnElement="Flow_0saykw5">
<di:waypoint x="585" y="170" />
<di:waypoint x="642" y="170" />
<bpmndi:BPMNLabel>
<dc:Bounds x="604" y="152" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ya6ran_di" bpmnElement="Flow_1ya6ran">
<di:waypoint x="480" y="170" />
<di:waypoint x="535" y="170" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bvln2b_di" bpmnElement="Flow_0bvln2b">
<di:waypoint x="328" y="170" />
<di:waypoint x="380" y="170" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0d3xq5q_di" bpmnElement="Event_0d3xq5q">
<dc:Bounds x="292" y="152" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ugbw2a_di" bpmnElement="Activity_Interrupt">
<dc:Bounds x="380" y="130" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0ncff13_di" bpmnElement="Gateway_0ncff13" isMarkerVisible="true">
<dc:Bounds x="535" y="145" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_15z0u0c_di" bpmnElement="Event_0g8w85g">
<dc:Bounds x="642" y="152" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="625" y="195" width="70" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0l8sadb_di" bpmnElement="Event_0l8sadb">
<dc:Bounds x="742" y="152" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_12moz8m_di" bpmnElement="Event_12moz8m"> <bpmndi:BPMNShape id="Event_12moz8m_di" bpmnElement="Event_12moz8m">
<dc:Bounds x="292" y="412" width="36" height="36" /> <dc:Bounds x="292" y="412" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1m4766l_di" bpmnElement="Activity_1m4766l" isExpanded="true">
<dc:Bounds x="350" y="360" width="590" height="200" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0akpdke_di" bpmnElement="Event_0akpdke">
<dc:Bounds x="390" y="442" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1gd7a2h_di" bpmnElement="Flow_1gd7a2h">
<di:waypoint x="328" y="430" />
<di:waypoint x="339" y="430" />
<di:waypoint x="339" y="460" />
<di:waypoint x="350" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0ib6pbh_di" bpmnElement="Event_InterruptBoundary">
<dc:Bounds x="779" y="542" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="782" y="585" width="32" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0j702hl_di" bpmnElement="Event_0j702hl"> <bpmndi:BPMNShape id="Event_0j702hl_di" bpmnElement="Event_0j702hl">
<dc:Bounds x="1032" y="442" width="36" height="36" /> <dc:Bounds x="1032" y="442" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0o0l113_di" bpmnElement="Flow_0o0l113"> <bpmndi:BPMNShape id="Activity_1m4766l_di" bpmnElement="Activity_1m4766l" isExpanded="true">
<di:waypoint x="797" y="578" /> <dc:Bounds x="350" y="360" width="590" height="200" />
<di:waypoint x="797" y="630" />
<di:waypoint x="1050" y="630" />
<di:waypoint x="1050" y="478" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_093roev_di" bpmnElement="Flow_093roev">
<di:waypoint x="645" y="360" />
<di:waypoint x="645" y="310" />
<di:waypoint x="1050" y="310" />
<di:waypoint x="1050" y="442" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Activity_1s4pw7g_di" bpmnElement="Activity_106f08z">
<dc:Bounds x="475" y="420" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_11u0pgk_di" bpmnElement="Flow_11u0pgk">
<di:waypoint x="575" y="460" />
<di:waypoint x="627" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0ulu4mx_di" bpmnElement="Event_0aqmn5y">
<dc:Bounds x="627" y="442" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="618" y="412" width="56" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1gs89vo_di" bpmnElement="Flow_1gs89vo">
<di:waypoint x="426" y="460" />
<di:waypoint x="475" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Gateway_0u34qof_di" bpmnElement="Gateway_0u34qof" isMarkerVisible="true">
<dc:Bounds x="695" y="435" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0pjkpp2_di" bpmnElement="Event_0pjkpp2">
<dc:Bounds x="802" y="442" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_18d90uu_di" bpmnElement="Flow_18d90uu">
<di:waypoint x="745" y="460" />
<di:waypoint x="802" y="460" />
<bpmndi:BPMNLabel>
<dc:Bounds x="750" y="442" width="49" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1rqk2v9_di" bpmnElement="Flow_1rqk2v9">
<di:waypoint x="663" y="460" />
<di:waypoint x="695" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0wuxluk_di" bpmnElement="Flow_0wuxluk"> <bpmndi:BPMNEdge id="Flow_0wuxluk_di" bpmnElement="Flow_0wuxluk">
<di:waypoint x="720" y="485" /> <di:waypoint x="720" y="485" />
<di:waypoint x="720" y="540" /> <di:waypoint x="720" y="540" />
@ -238,6 +195,49 @@
<dc:Bounds x="580" y="522" width="85" height="14" /> <dc:Bounds x="580" y="522" width="85" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1rqk2v9_di" bpmnElement="Flow_1rqk2v9">
<di:waypoint x="663" y="460" />
<di:waypoint x="695" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18d90uu_di" bpmnElement="Flow_18d90uu">
<di:waypoint x="745" y="460" />
<di:waypoint x="802" y="460" />
<bpmndi:BPMNLabel>
<dc:Bounds x="750" y="442" width="49" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gs89vo_di" bpmnElement="Flow_1gs89vo">
<di:waypoint x="426" y="460" />
<di:waypoint x="475" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_11u0pgk_di" bpmnElement="Flow_11u0pgk">
<di:waypoint x="575" y="460" />
<di:waypoint x="627" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0akpdke_di" bpmnElement="Event_0akpdke">
<dc:Bounds x="390" y="442" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1s4pw7g_di" bpmnElement="Activity_106f08z">
<dc:Bounds x="475" y="420" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0ulu4mx_di" bpmnElement="Event_0aqmn5y">
<dc:Bounds x="627" y="442" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="618" y="412" width="56" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0u34qof_di" bpmnElement="Gateway_0u34qof" isMarkerVisible="true">
<dc:Bounds x="695" y="435" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0pjkpp2_di" bpmnElement="Event_0pjkpp2">
<dc:Bounds x="802" y="442" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0ib6pbh_di" bpmnElement="Event_InterruptBoundary">
<dc:Bounds x="779" y="542" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="782" y="585" width="32" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1nsvcwb" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1nsvcwb" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="token" isExecutable="true"> <bpmn:process id="token" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_03vnrmv</bpmn:outgoing> <bpmn:outgoing>Flow_03vnrmv</bpmn:outgoing>
</bpmn:startEvent> </bpmn:startEvent>
<bpmn:exclusiveGateway id="Gateway_1w9u16f"> <bpmn:exclusiveGateway id="Gateway_1w9u16f" default="Flow_1qgke9w">
<bpmn:incoming>Flow_0g2wjhu</bpmn:incoming> <bpmn:incoming>Flow_0g2wjhu</bpmn:incoming>
<bpmn:incoming>Flow_0ya87hl</bpmn:incoming> <bpmn:incoming>Flow_0ya87hl</bpmn:incoming>
<bpmn:outgoing>Flow_1qgke9w</bpmn:outgoing> <bpmn:outgoing>Flow_1qgke9w</bpmn:outgoing>
@ -75,28 +75,25 @@
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="token"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="token">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNEdge id="Flow_039y4lk_di" bpmnElement="Flow_039y4lk">
<dc:Bounds x="179" y="99" width="36" height="36" /> <di:waypoint x="1240" y="117" />
</bpmndi:BPMNShape> <di:waypoint x="1322" y="117" />
<bpmndi:BPMNShape id="Gateway_1w9u16f_di" bpmnElement="Gateway_1w9u16f" isMarkerVisible="true">
<dc:Bounds x="1015" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1oyfku7_di" bpmnElement="First">
<dc:Bounds x="270" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_13qpm6f_di" bpmnElement="Flow_13qpm6f">
<di:waypoint x="370" y="117" />
<di:waypoint x="465" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Gateway_0nr9vpb_di" bpmnElement="Gateway_0yirqzr" isMarkerVisible="true"> <bpmndi:BPMNEdge id="Flow_03vnrmv_di" bpmnElement="Flow_03vnrmv">
<dc:Bounds x="465" y="92" width="50" height="50" /> <di:waypoint x="215" y="117" />
</bpmndi:BPMNShape> <di:waypoint x="270" y="117" />
<bpmndi:BPMNEdge id="Flow_04bpvfu_di" bpmnElement="Flow_04bpvfu"> </bpmndi:BPMNEdge>
<di:waypoint x="515" y="117" /> <bpmndi:BPMNEdge id="Flow_0ahlz50_di" bpmnElement="Flow_0ahlz50">
<di:waypoint x="610" y="117" /> <di:waypoint x="710" y="117" />
<bpmndi:BPMNLabel> <di:waypoint x="840" y="117" />
<dc:Bounds x="553" y="99" width="19" height="14" /> </bpmndi:BPMNEdge>
</bpmndi:BPMNLabel> <bpmndi:BPMNEdge id="Flow_0ya87hl_di" bpmnElement="Flow_0ya87hl">
<di:waypoint x="940" y="117" />
<di:waypoint x="1015" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qgke9w_di" bpmnElement="Flow_1qgke9w">
<di:waypoint x="1065" y="117" />
<di:waypoint x="1140" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0g2wjhu_di" bpmnElement="Flow_0g2wjhu"> <bpmndi:BPMNEdge id="Flow_0g2wjhu_di" bpmnElement="Flow_0g2wjhu">
<di:waypoint x="490" y="142" /> <di:waypoint x="490" y="142" />
@ -107,18 +104,29 @@
<dc:Bounds x="758" y="322" width="15" height="14" /> <dc:Bounds x="758" y="322" width="15" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qgke9w_di" bpmnElement="Flow_1qgke9w"> <bpmndi:BPMNEdge id="Flow_04bpvfu_di" bpmnElement="Flow_04bpvfu">
<di:waypoint x="1065" y="117" /> <di:waypoint x="515" y="117" />
<di:waypoint x="1140" y="117" /> <di:waypoint x="610" y="117" />
<bpmndi:BPMNLabel>
<dc:Bounds x="553" y="99" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ya87hl_di" bpmnElement="Flow_0ya87hl"> <bpmndi:BPMNEdge id="Flow_13qpm6f_di" bpmnElement="Flow_13qpm6f">
<di:waypoint x="940" y="117" /> <di:waypoint x="370" y="117" />
<di:waypoint x="1015" y="117" /> <di:waypoint x="465" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ahlz50_di" bpmnElement="Flow_0ahlz50">
<di:waypoint x="710" y="117" />
<di:waypoint x="840" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="179" y="99" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1w9u16f_di" bpmnElement="Gateway_1w9u16f" isMarkerVisible="true">
<dc:Bounds x="1015" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1oyfku7_di" bpmnElement="First">
<dc:Bounds x="270" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0nr9vpb_di" bpmnElement="Gateway_0yirqzr" isMarkerVisible="true">
<dc:Bounds x="465" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_18dz45e_di" bpmnElement="FormA"> <bpmndi:BPMNShape id="Activity_18dz45e_di" bpmnElement="FormA">
<dc:Bounds x="610" y="77" width="100" height="80" /> <dc:Bounds x="610" y="77" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
@ -128,17 +136,9 @@
<bpmndi:BPMNShape id="Activity_1byzp7w_di" bpmnElement="FormC"> <bpmndi:BPMNShape id="Activity_1byzp7w_di" bpmnElement="FormC">
<dc:Bounds x="1140" y="77" width="100" height="80" /> <dc:Bounds x="1140" y="77" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_03vnrmv_di" bpmnElement="Flow_03vnrmv">
<di:waypoint x="215" y="117" />
<di:waypoint x="270" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0xfwzm8_di" bpmnElement="Event_0xfwzm8"> <bpmndi:BPMNShape id="Event_0xfwzm8_di" bpmnElement="Event_0xfwzm8">
<dc:Bounds x="1322" y="99" width="36" height="36" /> <dc:Bounds x="1322" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_039y4lk_di" bpmnElement="Flow_039y4lk">
<di:waypoint x="1240" y="117" />
<di:waypoint x="1322" y="117" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1nsvcwb" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.0"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1nsvcwb" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="token" isExecutable="true"> <bpmn:process id="token" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_03vnrmv</bpmn:outgoing> <bpmn:outgoing>Flow_03vnrmv</bpmn:outgoing>
</bpmn:startEvent> </bpmn:startEvent>
<bpmn:exclusiveGateway id="Gateway_1w9u16f"> <bpmn:exclusiveGateway id="Gateway_1w9u16f" default="Flow_1qgke9w">
<bpmn:incoming>Flow_0g2wjhu</bpmn:incoming> <bpmn:incoming>Flow_0g2wjhu</bpmn:incoming>
<bpmn:incoming>Flow_0ya87hl</bpmn:incoming> <bpmn:incoming>Flow_0ya87hl</bpmn:incoming>
<bpmn:outgoing>Flow_1qgke9w</bpmn:outgoing> <bpmn:outgoing>Flow_1qgke9w</bpmn:outgoing>
@ -73,28 +73,25 @@
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="token"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="token">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> <bpmndi:BPMNEdge id="Flow_039y4lk_di" bpmnElement="Flow_039y4lk">
<dc:Bounds x="179" y="99" width="36" height="36" /> <di:waypoint x="1240" y="117" />
</bpmndi:BPMNShape> <di:waypoint x="1322" y="117" />
<bpmndi:BPMNShape id="Gateway_1w9u16f_di" bpmnElement="Gateway_1w9u16f" isMarkerVisible="true">
<dc:Bounds x="1015" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1oyfku7_di" bpmnElement="First">
<dc:Bounds x="270" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_13qpm6f_di" bpmnElement="Flow_13qpm6f">
<di:waypoint x="370" y="117" />
<di:waypoint x="465" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Gateway_0nr9vpb_di" bpmnElement="Gateway_0yirqzr" isMarkerVisible="true"> <bpmndi:BPMNEdge id="Flow_03vnrmv_di" bpmnElement="Flow_03vnrmv">
<dc:Bounds x="465" y="92" width="50" height="50" /> <di:waypoint x="215" y="117" />
</bpmndi:BPMNShape> <di:waypoint x="270" y="117" />
<bpmndi:BPMNEdge id="Flow_04bpvfu_di" bpmnElement="Flow_04bpvfu"> </bpmndi:BPMNEdge>
<di:waypoint x="515" y="117" /> <bpmndi:BPMNEdge id="Flow_0ahlz50_di" bpmnElement="Flow_0ahlz50">
<di:waypoint x="610" y="117" /> <di:waypoint x="710" y="117" />
<bpmndi:BPMNLabel> <di:waypoint x="840" y="117" />
<dc:Bounds x="553" y="99" width="19" height="14" /> </bpmndi:BPMNEdge>
</bpmndi:BPMNLabel> <bpmndi:BPMNEdge id="Flow_0ya87hl_di" bpmnElement="Flow_0ya87hl">
<di:waypoint x="940" y="117" />
<di:waypoint x="1015" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qgke9w_di" bpmnElement="Flow_1qgke9w">
<di:waypoint x="1065" y="117" />
<di:waypoint x="1140" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0g2wjhu_di" bpmnElement="Flow_0g2wjhu"> <bpmndi:BPMNEdge id="Flow_0g2wjhu_di" bpmnElement="Flow_0g2wjhu">
<di:waypoint x="490" y="142" /> <di:waypoint x="490" y="142" />
@ -105,18 +102,29 @@
<dc:Bounds x="758" y="322" width="15" height="14" /> <dc:Bounds x="758" y="322" width="15" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qgke9w_di" bpmnElement="Flow_1qgke9w"> <bpmndi:BPMNEdge id="Flow_04bpvfu_di" bpmnElement="Flow_04bpvfu">
<di:waypoint x="1065" y="117" /> <di:waypoint x="515" y="117" />
<di:waypoint x="1140" y="117" /> <di:waypoint x="610" y="117" />
<bpmndi:BPMNLabel>
<dc:Bounds x="553" y="99" width="19" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ya87hl_di" bpmnElement="Flow_0ya87hl"> <bpmndi:BPMNEdge id="Flow_13qpm6f_di" bpmnElement="Flow_13qpm6f">
<di:waypoint x="940" y="117" /> <di:waypoint x="370" y="117" />
<di:waypoint x="1015" y="117" /> <di:waypoint x="465" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ahlz50_di" bpmnElement="Flow_0ahlz50">
<di:waypoint x="710" y="117" />
<di:waypoint x="840" y="117" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="179" y="99" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1w9u16f_di" bpmnElement="Gateway_1w9u16f" isMarkerVisible="true">
<dc:Bounds x="1015" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1oyfku7_di" bpmnElement="First">
<dc:Bounds x="270" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0nr9vpb_di" bpmnElement="Gateway_0yirqzr" isMarkerVisible="true">
<dc:Bounds x="465" y="92" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_18dz45e_di" bpmnElement="FormA"> <bpmndi:BPMNShape id="Activity_18dz45e_di" bpmnElement="FormA">
<dc:Bounds x="610" y="77" width="100" height="80" /> <dc:Bounds x="610" y="77" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
@ -126,17 +134,9 @@
<bpmndi:BPMNShape id="Activity_1byzp7w_di" bpmnElement="FormC"> <bpmndi:BPMNShape id="Activity_1byzp7w_di" bpmnElement="FormC">
<dc:Bounds x="1140" y="77" width="100" height="80" /> <dc:Bounds x="1140" y="77" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_03vnrmv_di" bpmnElement="Flow_03vnrmv">
<di:waypoint x="215" y="117" />
<di:waypoint x="270" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_0xfwzm8_di" bpmnElement="Event_0xfwzm8"> <bpmndi:BPMNShape id="Event_0xfwzm8_di" bpmnElement="Event_0xfwzm8">
<dc:Bounds x="1322" y="99" width="36" height="36" /> <dc:Bounds x="1322" y="99" width="36" height="36" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_039y4lk_di" bpmnElement="Flow_039y4lk">
<di:waypoint x="1240" y="117" />
<di:waypoint x="1322" y="117" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1oogn9j" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.7.3"> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1oogn9j" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1">
<bpmn:process id="token_trial_parallel_simple" isExecutable="true"> <bpmn:process id="token_trial_parallel_simple" isExecutable="true">
<bpmn:startEvent id="StartEvent_1"> <bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1w2tcdp</bpmn:outgoing> <bpmn:outgoing>Flow_1w2tcdp</bpmn:outgoing>
@ -100,7 +100,7 @@
<bpmn:sequenceFlow id="SequenceFlow_09c4dnr" sourceRef="UserTask_0fd3nql" targetRef="ExclusiveGateway_1knbrs3" /> <bpmn:sequenceFlow id="SequenceFlow_09c4dnr" sourceRef="UserTask_0fd3nql" targetRef="ExclusiveGateway_1knbrs3" />
<bpmn:sequenceFlow id="SequenceFlow_0rwnquq" sourceRef="UserTask_1k9gxsc" targetRef="ExclusiveGateway_1knbrs3" /> <bpmn:sequenceFlow id="SequenceFlow_0rwnquq" sourceRef="UserTask_1k9gxsc" targetRef="ExclusiveGateway_1knbrs3" />
<bpmn:sequenceFlow id="SequenceFlow_00fpfhi" sourceRef="ExclusiveGateway_1knbrs3" targetRef="Gateway_191l7i1" /> <bpmn:sequenceFlow id="SequenceFlow_00fpfhi" sourceRef="ExclusiveGateway_1knbrs3" targetRef="Gateway_191l7i1" />
<bpmn:exclusiveGateway id="Gateway_191l7i1"> <bpmn:exclusiveGateway id="Gateway_191l7i1" default="Flow_1vtdwmy">
<bpmn:incoming>SequenceFlow_00fpfhi</bpmn:incoming> <bpmn:incoming>SequenceFlow_00fpfhi</bpmn:incoming>
<bpmn:incoming>Flow_0wycgzo</bpmn:incoming> <bpmn:incoming>Flow_0wycgzo</bpmn:incoming>
<bpmn:outgoing>Flow_1vtdwmy</bpmn:outgoing> <bpmn:outgoing>Flow_1vtdwmy</bpmn:outgoing>
@ -126,6 +126,18 @@
</bpmn:process> </bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="token_trial_parallel_simple"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="token_trial_parallel_simple">
<bpmndi:BPMNEdge id="Flow_1vtdwmy_di" bpmnElement="Flow_1vtdwmy">
<di:waypoint x="985" y="247" />
<di:waypoint x="1062" y="247" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00zjlx7_di" bpmnElement="Flow_00zjlx7">
<di:waypoint x="360" y="247" />
<di:waypoint x="455" y="247" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w2tcdp_di" bpmnElement="Flow_1w2tcdp">
<di:waypoint x="188" y="247" />
<di:waypoint x="260" y="247" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0wycgzo_di" bpmnElement="Flow_0wycgzo"> <bpmndi:BPMNEdge id="Flow_0wycgzo_di" bpmnElement="Flow_0wycgzo">
<di:waypoint x="480" y="222" /> <di:waypoint x="480" y="222" />
<di:waypoint x="480" y="100" /> <di:waypoint x="480" y="100" />
@ -166,18 +178,12 @@
<di:waypoint x="600" y="190" /> <di:waypoint x="600" y="190" />
<di:waypoint x="680" y="190" /> <di:waypoint x="680" y="190" />
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w2tcdp_di" bpmnElement="Flow_1w2tcdp"> <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<di:waypoint x="188" y="247" /> <dc:Bounds x="152" y="229" width="36" height="36" />
<di:waypoint x="260" y="247" /> </bpmndi:BPMNShape>
</bpmndi:BPMNEdge> <bpmndi:BPMNShape id="EndEvent_09wp7av_di" bpmnElement="EndEvent_09wp7av">
<bpmndi:BPMNEdge id="Flow_00zjlx7_di" bpmnElement="Flow_00zjlx7"> <dc:Bounds x="1062" y="229" width="36" height="36" />
<di:waypoint x="360" y="247" /> </bpmndi:BPMNShape>
<di:waypoint x="455" y="247" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vtdwmy_di" bpmnElement="Flow_1vtdwmy">
<di:waypoint x="985" y="247" />
<di:waypoint x="1062" y="247" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="UserTask_0fd3nql_di" bpmnElement="UserTask_0fd3nql"> <bpmndi:BPMNShape id="UserTask_0fd3nql_di" bpmnElement="UserTask_0fd3nql">
<dc:Bounds x="680" y="150" width="100" height="80" /> <dc:Bounds x="680" y="150" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
@ -202,15 +208,9 @@
<dc:Bounds x="451" y="279" width="60" height="14" /> <dc:Bounds x="451" y="279" width="60" height="14" />
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="152" y="229" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0n0v1lt_di" bpmnElement="Activity_1ghr6kd"> <bpmndi:BPMNShape id="Activity_0n0v1lt_di" bpmnElement="Activity_1ghr6kd">
<dc:Bounds x="260" y="207" width="100" height="80" /> <dc:Bounds x="260" y="207" width="100" height="80" />
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape id="EndEvent_09wp7av_di" bpmnElement="EndEvent_09wp7av">
<dc:Bounds x="1062" y="229" width="36" height="36" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>
</bpmn:definitions> </bpmn:definitions>