This page is currently under construction. Its future content includes:
- creating a graph model from scratch
- context variables
- add input & output to a graph model
- dynamic service binding
- constructor graphs (Expert)
- examples for loops (Expert)
- interface graphs (Expert)
- generics (Expert)
Creating a new graph model can be easily done by selecting File → New… → New, pressing Ctrl+N or clicking the respective button in the menu bar: . This will open a new empty graph model on the graph canvas. But in order to make any use of the newly created graph model, we need to define some information as well as add a basic content to it.
The graph model will be added to the list of all graphs in the Graphs tab of the project, so it needs a name and possibly also a package. This can be specified in the SLG tab of the inspector area.
Please note: After entering the graph name or the package name, you need to press ⏎Return, otherwise the inserted data is not accepted.
For demonstration this graph will be a general purpose graph that is named TutorialExample, but usually the name of the graph describes the process that it represents such as “BookFlight”, “MakeTransaction” or “CalculateEffectivity”. The package may be defined and is used to categorize graphs, allowing to have, e.g., all graphs that evaluate certain conditions bundled into one package (examples for a package named ‘checks’ could be “IsPaymentPossible”, “IsUserAuthorized”, “IsCardInserted”, etc.) while graphs that deal with a specific type of task belong to another package (such as “TransferMoney”, “PrintAccountStatement” or “EjectCard”).
Now that the graph information are defined, we can already save the graph file by selecting File → Save, pressing Ctrl+S or clicking the respective button in the menu bar: . When the graph is saved in XML format inside the project, it will show up the next time you right click in the Graphs tab and select Refresh.
As an optional point in the graph creation, you may select an icon for the graph. That icon will be displayed when the graph is used as an activity in another graph. Click on the icon to change from this default icon to another image file.
At this point, the specification of the newly created graph is complete. Yet, to finalize the new graph, it needs input and output activities as described in the next section before we should begin to add activities to model its behaviour (as seen in the Basic Modeling Tutorial).
Every graph model represents the programm flow of a process. A process always has a determined beginning and at least one but up to several possible states in which it can end. Graph model likewise consist of exactly one entry point called Input SIB and at least one exit point, represented by so called Output SIB.
The Input SIB symbol is:
The Output SIB symbol is:
You can add an Input or Output SIB by dragging the respective icons from the SLG tab in the inspector panel area. Note that when adding an Output SIB you will be asked to label the respective Output SIB. This is due to the fact that multiple Output SIBs are possible and they must be distinguishable from each other.
Reasons why you may want several Output SIBs are, that a process can be more than simply a sequence of activities which are executed. The jABC4 allows multiple possible outcomes for processes, so a process can – for example – check a certain constraint and be designed to fail if it is not met. In that case it may not proceed to the success but rather to an error Output SIB to represent this. Another possibility is, that the process evaluates a specific condition such as whether or not a certain amount of money is available on a credit card. The possible ways in which the process may end would be yes and no (or more descriptive names such as amount available and not enough available).
Processes can also define input values that need to be speficied when the process is executed in order to work with the provided information. Based on the possible output states (represented by the different Output SIBs), they can also pass out determined values that can be processed as results in the higher execution level. Using the Input / Output SIBs to declare these parameters is describes in the section on input and output parameters.