A flow in Agama flow visual editor comprises of several connected nodes. Each node represents an Agama DSL directive. Each node also allows the user to pass parameters to the underlying Agama DSL directive.
Adding a New Node
When the user drags the connector, the Agama Lab presents a list to choose the next node on the connector’s other end.
Types of Nodes
Start
Assignment
Call
Business logic and complex computations can be implemented in languages other than Agama. This external code is called foreign routine. The Call node is used to call such foreign routines. Result of the computation done by the foreign routine is brought back to the flow and stored in a variable that can be used further in the flow.
Trigger
The
Trigger node lets one flow call another flow and get results back. Capability of calling a separate flow allows Agama flow to be more modular, reusable and customizable using subflows and template overrides.
Iterate
The
Iterate node allows iteration over lists, maps, and string values. Using the configuration parameters provided on the form, it writes the Iterate Over instruction of the Agama DSL.
Repeat
The
Repeat node provides a loop construct to the Agama flow. It represents Repeat instruction of Agama DSL.
Quit-when
Log
The
Log node writes log messages to log files. It represents Log instruction of the Agama DSL.
RRF
RRF stands for Render-Reply-Fetch. Using the configuration parameters provided on the form, it writes the RRF instruction of the Agama DSL to the auto-generated code.
RFAC
The RFAC stands for stands for Redirect and Fetch at callback. Using the configuration parameters provided on the form, it writes the RFAC instruction of the Agama DSL to the auto-generated code.
When
The
When node provides the ability to execute a condition and make decisions based on the outcome. Using the configuration parameters provided on the form, it writes the When instruction of the Agama DSL to the auto-generated code.
When block has three branches where the flow execution may continue.
Condition met: Blocks on this branch are executed if the condition is evaluated totrue.Otherwise: Blocks on this branch are executed if the condition is evaluated tofalse.Continue: Ifcondition metorotherwisebranches does not end the flow, then the flow will continue to execute the blocks on this branch after completing the execution on the respective branch.
There branches logically represent the code shown below:
When (condition) // execute blocks on the `condition met` branch Otherwise // execute blocks on the `otherwise` branch // Execute blocks on the `continue` branch
Finish
The
Finish node denotes the end of the flow. Using the configuration parameters provided on the form, it writes the Finish instruction of the Agama DSL to the auto-generated code.