BPMN and Beyond Business process modelling notation, workflow ...
BPMN and Beyond Business process modelling notation, workflow ...
BPMN and Beyond Business process modelling notation, workflow ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
OrSplitGateTransition(node) =<br />
let O = select Produce (node) in WorkflowTransition(node, O)<br />
where<br />
CtlCond(node) = Enabled(in)<br />
CtlOp(node, O) =<br />
let t = firingToken(in)<br />
Consume(t, in)<br />
ProduceAll({(orSplitToken(t, o), o) | o ∈ O})<br />
DataOp(node, O) = forall o ∈ O forall i ∈ assignments(o) Assign(to i , from i )<br />
Constraints for select Produce<br />
select Produce (node) ≠ ∅<br />
select Produce (node) ⊆ {out ∈ outArc(node) | OrSplitCond(out)}<br />
OrJoinGateTransition(node) =<br />
let I = select Consume (node) in WorkflowTransition(node, I )<br />
where<br />
CtlCond(node, I ) = (I ≠ ∅ <strong>and</strong> forall j ∈ I Enabled(j ))<br />
CtlOp(node, I ) =<br />
Produce(orJoinToken(firingToken(I )), out)<br />
ConsumeAll({(t j , in j ) | 1 ≤ j ≤ n}) where<br />
[t 1 , . . . , t n ] = firingToken(I )<br />
[in 1 , . . . , in n ] = I<br />
DataOp(node) = forall i ∈ assignments(out) Assign(to i , from i )<br />
GateTransitionPattern(node) =<br />
let I = select Consume (node)<br />
let O = select Produce (node) in<br />
WorkflowTransition(node, I , O)<br />
where<br />
CtlCond(node, I ) = (I ≠ ∅ <strong>and</strong> forall in ∈ I Enabled(in))<br />
CtlOp(node, I , O) =<br />
ProduceAll({(patternToken(firingToken(I ), o), o) | o ∈ O})<br />
ConsumeAll({(t j , in j ) | 1 ≤ j ≤ n}) where<br />
[t 1 , . . . , t n ] = firingToken(I )<br />
[in 1 , . . . , in n ] = I<br />
DataOp(node, O) = forall o ∈ O forall i ∈ assignments(o) Assign(to i , from i )<br />
9.3 Event Rules<br />
StartEventTransition(node) =<br />
choose e ∈ trigger(node) StartEventTransition(node, e)<br />
StartEventTransition(node, e) =<br />
if Triggered(e) then Produce(startToken(e), out)<br />
ConsumEvent(e)<br />
EndEventTransition(node) =<br />
if Enabled(in) then<br />
Consume(firingToken(in), in)<br />
EmitResult(firingToken(in), res(node), node)<br />
34