The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
        <WorkflowProcess AccessLevel="PUBLIC" Id="wcp11" Name="WCP11: Implicit Termination">
            <ProcessHeader DurationUnit="D">
                <Created>2010-11-26 22:38:46</Created>
                <Description>terminate if there is nothing to be done. The "Implicit Termination" pattern is essentially what regular end events do: "swallow" a single token and provide for a rule that completes the process instance (and all contained subflows and tasks) when the last token has ceased to exist. Process termination happens implicitly in a sense that the latter semantics is automatically provided by the runtime and does not have to be taken care of by the process modeler. </Description>
            </ProcessHeader>
            <RedefinableHeader PublicationStatus="UNDER_TEST">
                <Author>Peter de Vos</Author>
            </RedefinableHeader>
            <Activities>
                <Activity Id="A" Name="A">
                    <Description>you have option to change the value of variable whereToGo. If you set it to B process will folow to activity B, if you set it to C it will proceed to activity C, otherwise process will be implicitly terminated, because there's nothing else to do</Description>
                    <Implementation>
                        <No/>
                    </Implementation>
                    <TransitionRestrictions>
                        <TransitionRestriction>
                            <Split Type="AND">
                                <TransitionRefs>
                                    <TransitionRef Id="WfABSP1_Multiple_Choice_Tra1"/>
                                    <TransitionRef Id="WfABSP1_Multiple_Choice_Tra2"/>
                                </TransitionRefs>
                            </Split>
                        </TransitionRestriction>
                    </TransitionRestrictions>
                </Activity>
                <Activity Id="B" Name="B">
                    <Description>you have option to change the value of variable whereToGo. If you set it to D process will folow to activity D, otherwise it will either finish or wait for activity C and possibly E to finish</Description>
                    <Implementation>
                        <No/>
                    </Implementation>
                </Activity>
                <Activity Id="C" Name="C">
                    <Description>you have option to change the value of variable whereToGo. If you set it to E process will folow to activity E, otherwise it will either finish or wait for activity B and possibly D to finish</Description>
                    <Implementation>
                        <No/>
                    </Implementation>
                </Activity>
                <Activity Id="D" Name="D">
                    <Description>Just press 'Complete' button</Description>
                    <Implementation>
                        <No/>
                    </Implementation>
                </Activity>
                <Activity Id="E" Name="E">
                    <Description>Just press 'Complete' button</Description>
                    <Implementation>
                        <No/>
                    </Implementation>
                </Activity>
            </Activities>
            <Transitions>
                <Transition Id="WfABSP1_Multiple_Choice_Tra1" Name="Transition" From="A" To="B">
                    <Condition Type="CONDITION">whereToGo.indexOf('B') != -1</Condition>
                </Transition>
                <Transition Id="WfABSP1_Multiple_Choice_Tra2" Name="Transition" From="A" To="C">
                    <Condition Type="CONDITION">whereToGo.indexOf('C') != -1</Condition>
                </Transition>
                <Transition Id="WfSP2_Implicit_Termination_Tra3" Name="Transition" From="B" To="D">
                    <Condition Type="CONDITION">whereToGo=="D"</Condition>
                </Transition>
                <Transition Id="WfSP2_Implicit_Termination_Tra4" Name="Transition" From="C" To="E">
                    <Condition Type="CONDITION">whereToGo=="E"</Condition>
                </Transition>
            </Transitions>
        </WorkflowProcess>