Defining the application business logic through processes
BMC Helix Innovation Studio provides Process designer, a graphic-based interface, to create and customize business processes of a Digital Service application. Processes are the named services of an application. Business logic is the core of each application and a process is an application service that performs application business logic and achieves the application purpose. You can invoke business logic for an application by calling processes of that application. Each process has a name, inputs, and outputs. For example, Approval is the sole service of Approval application, that can be invoked by calling Approval process through REST API or through metadata.
You can design processes meant to accomplish a business goal by using the Process designer. You can also use RESTful APIs to modify processes. APIs give you more power and control over managing processes and performing actions that might not be possible through the UI.
Application business analysts can customize the objects developed in their own applications and that are marked customizable by the developers, but cannot customize the objects developed in com.bmc.arsys. For example, objects in core BMC applications like Foundation, Approval, and Assignment cannot be customized.
Before you create a process, ensure the following:
- You have an understanding about the process objective, required inputs, and desired output.
- You have all the elements required to create or modify your process. If the required element in not available, you may request your developer to create and deploy it. For more information about process elements and an example of a process created in BMC Helix Innovation Studio, see Process designer elements.
Best practices for designing a process
Following are some of the best practices that you should follow when designing a process:
- Do not create big process with lot of steps and actions. Process definitions are to visually represent a business procedure. When the process definition becomes too big, it starts to lose the benefit of a visual workflow. Use a modular approach to divide the steps in smaller sub processes. You can do this using the Sub Process or Call Activity element.
- Ensure that you have properly thought through between writing code (using @Action) and creating a process definition. Consider the following scenarios when selecting the correct option to write code or use Process designer:
- If the business logic needs to be visually described or if your users can configure it, design a process using the Process designer.
- Using service task to perform self sustained unit of work, and let process manage states.
- You can write the code if it is faster to implement a complicated logic than using the Process designer.
- When you create a new process, concentrate on laying out the flow first. Do not focus too much on configuring each element. When the flow is completed, save the process and then continue to configure each element one by one.
Workflow for defining the business logic
The following table lists the different tasks that are involved in defining a business logic:
|Start creating a process by accessing the process designer, adding permissions, and elements to the process.
|Defining processes to accomplish business goals
|Add variables to the process to define the current value of a part of the process.
|Adding variables to processes
Perform the following actions:
|View the process dashboard and manage process execution such as start a process, stop a process, or resume a process.
|Managing processes by using the Manage Processes dashboard
|Adding capabilities to your process
Integrate with other applications, enhance process readability, model a user performing a task so that a process resumes once the task is complete.
Perform the following actions:
|Create or update record instances and define a relationship between the record instances in a process flow.
|Create a document instance and an array node in the document instance.
|Analyze the tone of a written document, email, or chat conversation.
|Configuring tone analysis in applications
|Handle errors in a process.
|Handling errors in a process