Transitions are movements from one state to the other. Besides changing the status of the item there are other steps that can be enabled (ordered in order of execution during transition):
- Accept parameters to change item attributes
- Set access restrictions - who is able to perform transitions
- Set input validation E.g. check if amount is higher than a threshold.
- Conditional routing - go to a different state based on item attributes.
- Calculations - set attribute values programmatically. E.g. set default values or calculate sums.
- Events - broadcast blockchain events such as issuing invoices etc.
- Calling other flows - way of initiating child workflows or signal completion of dependent flows.
- Payments - enables to collect payments from users or pay out funds from the workflow.
Transitions in the UI
After deploying a workflow to the blockchain Toolblox generates a simple UI to manage items. Here you can see a workflow which enables processing 3D print orders (description of this flow). On the right hand side you can see a snapshot of one Printout, which at the moment is in state Offer made - this means that only 2 transitions are available: Accept and Rejected.