Camunda 8 is billed as the universal orchestrator. We agree. Zeebe is their next-generation, cloud-native BPMN engine that covers the full automation spectrum from human-centric workflow through high volume microservice orchestration.
As great as Zeebe is, the engine is just one component of a solution. Apex Designer provides a low code environment that coordinates and integrates the development of user experience, APIs, persistence AND process flow. Zeebe is the perfect engine to round out the open source stack that supports Apex Designer apps.
This blog post uses a set of 5 videos to walk through the design experience of building a solution that combines user experience with server-side logic and process flow.
Part 1: Create a Process App
The first video starts with an overview of the pages that are automatically added from the Camunda 8 Project Starter including the My Tasks page and a set of process administration pages. A simple Vacation Request process is then created with submit and review steps. The app is generated, the process is automatically deployed to Zeebe and the process is run end to end.
Part 2: Add Process Information and Refine the Submit Request Page
The second video shows how to add properties to the process using the externalized process context pattern. The strongly typed properties automatically present the correct field types on the Submit Request user task page. Properties are marked as required to ensure that they are filled in before the Submit button is enabled. Finally, the default layout is adjusted to make the user task page more visually appealing.
Part 3: Add Properties and Refine the Review Request Page
The third video starts by showing different ways to navigate through the user interfaces and business objects of the app. The Review Request user task page is updated by copying the layout from the Submit Request user task page. The properties from the submit page are disabled on the review page. The process information model is extended to include a status field with valid values and a reviewer comments field. The field type for the status field is overridden to use radio buttons instead of a select. A heading is added to separate the values from the submit page and the values filled in on the review page.
Part 4: Add Relationships and Extend the Review Request Page
The fourth video continues extending the process information model by creating relationships to the App User business object for the Submitter and the Reviewer. The Submit page is updated to set the submitter id and the Review page is updated to set the reviewer id. The Review page is adjusted to pull in the Submitter and the submitter's picture, name and email are added to the page layout.
Part 5: Send an Email Using a Service Task
The fifth video completes the process by adding a service task to send an email with the results of the review. A business object behavior is created with the click of a button. A SendGrid email template is reviewed. A search is used to find an NPM package for SendGrid and that is added to the app and behavior as a dependency. A code example is located and used to fill in the implementation for the Send Email service task behavior. The process admin capabilities are used to check the status of a process instance. An iterative process is used to find, diagnose and resolve a couple of issues with the implementation. Finally, the email is sent successfully and the result is reviewed.
Part 6: Create A Project and Run in Docker Compose
The sixth and final segment shows how to create your own project and run it along with an instance of Zeebe, Elasticsearch and Postgres using Docker Compose. Docker Compose is a quick and easy way to run your app but you will have a better development experience and performance if you take time to set up a Kind cluster (you can skip the video and go to the next section if you want to use Kind).
Docker Compose Alternative: Run in Kind
We have put together instructions on how to run your app locally using Kind. It will not only give you better performance, it will also allow you to run multiple apps against the same Zeebe instance. Have fun and don't hesitate to click the Ask a Question button on the Apex Designer documentation site or start a discussion on the Apex Designer forum. We would be happy to answer any questions you have about Camunda 8 and Apex Designer.