Prev | Next |
Fibonacci Number Generator with Link Event
A Link Event is a mechanism for connecting two sections of a Process. Link Events can be used:
- To create looping scenarios, as generic 'Go To' objects within the Process level
- To avoid long Sequence Flow lines; paired Link Events can be used as 'off-page' connectors for printing a Process across multiple pages
The use of Link Events is limited to a single Process level (that is, they cannot link a parent Process with a sub-Process).
There can be multiple source Link Events, but there can only be one target Link Event.
- The target Link Event marker is unfilled, to 'catch' from the source link
- The source Link Event marker is filled to 'throw' to the target link
When the EABPSim Execution Engine is running the simulation, the source-target Link Events are paired by element NAME, so they cannot be empty.
Create BPMN Model
- Create a StartEvent S1
- Add a Sequence Flow to a target abstractTask Activity element next=first+second (open the 'Properties' dialog and set the 'Type' field to 'abstractTask')
- Add a Sequence Flow to a target abstractTask Activity element first=second
- Add a Sequence Flow to a target abstractTask Activity element second=next
- Add a Sequence Flow to a target abstractTask Activity element n++
- Add a Sequence Flow to a target exclusive Gateway element loopNode (on the instant menu, select 'Exclusive')
- Add a Sequence Flow to each of these target elements:
- A Throwing Link Intermediate Event element SetNext (open the 'Properties' dialog and set the
'Type' field to 'Throwing > Link') and
- An End Event element E1
- Create a Catching Link Intermediate Event element SetNext (open the 'Properties' dialog and set the 'Type' field to 'Catching > Link')
- Add a Sequence Flow to the target element next=first+second
Configure BPSim
We will use Property Parameters to define how the sequence flow forms a loop during which a Fibonacci Number will be generated. The loop mechanism is implemented via the pair of Link Events.
Open the Configure BPSim window ('Simulate > BPSim > Manage > Open BPSim Manager')
Task |
Action |
---|---|
Element: S1 |
In the element type list on the left, expand the Start Event group and click on S1. Click on the 'Control Tab' and on the 'New Parameter' drop-down arrow; select 'TriggerCount'. In the 'Value' field type '1'.
Click on the 'Properties' tab Overtype the New Property text to create these properties:
|
Element: next=first+second |
In the element type list, expand the Activity group and click on next=first+second. Click on the 'Properties' tab and overtype the New Property text with 'next '. In the 'Value' field, click on the Click on the . |
Element: first=second |
In the element type list, in the Activity group click on first=second. Click on the 'Properties' tab and overtype the New Property text with 'first '. In the 'Value' field, click on the Click on the . |
Element: second=next |
In the element type list, in the Activity group click on second=next. Click on the 'Properties' tab and overtype the New Property text with 'second'. In the 'Value' field, click on the Click on the . |
Element: n++ |
In the element type list, in the Activity group click on n++. Click on the 'Properties' tab and overtype the New Property text with 'n'. In the 'Value' field, click on the Click on the . |
Conditions of Gateway |
In the element type list, expand the Gateway group and the LoopNode element and click on SetNext. Click on the 'Control' tab and on the 'New Parameter' drop-down arrow, and select 'Condition'. In the 'Value' field, click on the Click on the .
Now click on E1. Click on the 'Control' tab and on the 'New Parameter' drop-down arrow, and select 'Condition'. In the 'Value' field, click on the Click on the OK button. |
Run Simulation
icon in the toolbar; the 'BPSim PropertyParameter Values' dialog displays
Ten more Fibonacci numbers are generated:
2,3,5,8,13,21,34,55,89,144