The graph is the basic building block for customer journey execution within Kitewheel.
Each graph represents a series of logical steps that are executed from the Start Node to an end node. A node is either a piece of business logic or an adaptor - the graph executes and each node updates schema and public variable locations to make decisions and to orchestrate events. The graph proceeds from node to node based on the outcome of the node and the Links available to: Error, Conditional or Goto.
A single graph can be executed many times in parallel by the Kitewheel Engine. The Kitewheel Engine will only deploy or visual test graphs that are valid.
A graph is considered valid if it passes all of the following conditions:
- It must have a Start Node (this is automatic - but it is here for completion)
- At least one Return Node
- Each non-return node must have exactly one Goto link and at most one error link
- Each adaptor is valid - all of the necessary connection details and parameters have been specified within the adaptor
- All nodes that require them have their input and output schema locations mapped
- Any sub-graphs must also be valid and not have any listeners
- There is no ghost node in the main graph - it is okay to have ghost nodes, and other disconnected nodes, which are not linked from the Start Node
- Cannot for a cycle - all graphs are directed acyclic graphs
- Any Split Test Node producer or consumer must have a counterpart consumer or producer in the same project
A graph can optionally have a Listener or Parameters - it can only have one of these things. The options to add a Listener or Parameters to a graph are shown in the top right hand corner of the window.
A Listener is a special type of graph that receives input from an external source and places it into the schema for processing by the graph. The graph will be executed separately for each listener event. A listener graph is the only type of graph that can be deployed. The supported Listener types are currently:
A Listener Graph can not be used as a sub-graph.
Adding a Listener
To add a Listener to a graph click on the Add Listener button
and then follow the specific instructions for the desired Listener type. The Listener icon will then be shown in the top left of the graph.
Modifying a Listener
To edit the listener settings either double click on the listener icon
in the top left hand corner of the graph or click on the Edit LIstener button at the top right of the graph.
Removing a Listener
To remove a listener from a graph click on the Remove Listener button
at the top right of the graph.
A graph can optionally have parameters. This allows the same piece of busines logic to be re-used with different input values or schema locations as input. Each parameter will be associated with a schema location. When the graph is executed the schema location will be populated with the parameters that have been chosen in the calling graph. The schema locations are passed by value so any modifications made to the schema values will not be changed in the calling graph.
To add parameters to a graph click on the Add Parameters button
in the top right hand corner of the graph window. This button will bring up the Parameter editing window that allows parameters to be added and removed. When adding a new parameter it is necessary to specify the schema location for the parameter when it is passed to the sub graph.
In the window above two parameters: paramA and paramB have been defined for this graph and the schema locations have been defined as request/input1 and request/input2 respectively.
It is recommended that if you need more than 5-9 parameters, you should instead create 1 parameter and pass in the values as objects. This should then set the values in the schema appropriately.
If a graph has parameters then the Edit Parameters icon
will appear in the top left of the graph window. Clicking on this icon will bring up the Parameters window where parameter schema locations can be edited. The window is closed by the 'Close' button at the bottom of the Parameters editor pop-up
Parameters are removed from a graph by clicking on the trash can icon next to the parameter name in the Parameters window.