Every business process is a small piece of your backend app's logic. Business processes designed to work with data: search, get, update, delete, mutate and make all actions inside of the backend part of your project. All basic business processes for every data model are created automatically and called the system BPs. System BPs can't be edited or deleted, also they are not visible in the common list of business processes. But you can use system BPs in endpoints and call them from your business processes.
To create a new business process go to the Business Process Designer and click New business process button. Type new BP name and description (optional) and press the create button.
Business Process Editor consists of the left panel, canvas in the center, and right panel with settings of the selected object. Drag element from the left panel to the canvas to create a business process block.
Every block on the canvas has two types of connections and two types of connectors. Connectors can be inbound (in) or outbound (out). All inbound connectors are located on the left side of the block, all outbound connectors are located on the right side of the block. Flow connections represent a continuous flow of actions: order of blocks to be executed. Flow connectors usually placed at the top of the block body. Variable connections represent data transfer between blocks: where to get or pass data within the business process. Every variable connector has its own data type or can support multiple types, the editor automatically controls type matching.
Start and End blocks are created automatically and cannot be deleted. Both Start and End blocks can have variables - input for the Start block and Output for the end block. These variables have to be created manually via the right panel if required. Variables of the Start and End block used to get and pass data via endpoints.
In general, every block has to be connected with a flow connection to form a chain of blocks from the Start block to the End block. All not concerted blocks will be excluded from code generation. The End block will be executed no matter if it has a connection, but it is strongly advised to properly connect each block with a flow connection.
There is a special type of block - variables blocks, that designed to be global variables and store data during business process lifetime. These blocks do not have flow connectors and supply only it's valued by variable connections. To update the value of these blocks you have to use the SetValue block.
Despite the fact that at this point the business process editor can seem complicated or confusing, it is a very powerful and logical tool for building any business logic in your application.