Introduction: This article will share the definition and architectural design of modern process engines for you.
What is a process engine Process engine is an underlying support platform developed and designed to provide process processing. The relationship between the process engine and process applications, as well as the application, is shown in the figure below.

Common support scenarios include: Workflow, BPM, process orchestration, etc. This sharing mainly starts from the BPM process engine and introduces the architectural design methods of the process engine.
.1 What is a process Simply put, the process is a combination of a series of activities. For example, in the OA system used in corporate offices, there are a large number of application approval processes. In the production and manufacturing industry, there are a large number of production and sales processes from sales orders to production and manufacturing, and then to signing and collecting payments. In the field of machine learning , there are applications of big data processing and machine learning of Amazon AWS Sagemaker. In summary, process is a concept. When combined with specific implementation, different process products are produced, such as DevOps, Spring Data Stream, etc. In terms of process implementation,
can be mainly divided into two implementation methods. One is to implement it with code. For example: use code to implement an overtime application, then you have to connect to SSO yourself for single sign-in, get the initiator and approver information through the interface, and save the form data at the same time.
Another way is to use a process engine to implement it. The process engine connects the data required for application scenarios, such as overtime application, process engine connects SSO, OU, approver configuration, permissions, etc. To achieve such a process, you only need to care about process configuration, process nodes and process forms. Process flow and process data processing are all completed through the process engine. The process engine can be quickly implemented in the process, which is also the value of the process engine.
.2 What is engine Generally speaking, the engine is a support part of a program or a system. Common program engines include game engines, search engines, antivirus engines, etc. An engine is a highly abstract and encapsulation of a certain type of business scenario that is separated from a specific business scenario.
For example, an OA company encapsulates a set of workflows for approval, and implementers only need to configure processes and forms to deliver projects. For example, a company in the United States made an AI engine to recommend NBA (Next Best Action), encapsulating common algorithms in the recommendation field, automatically selecting and combining multiple algorithms in different scenarios, and performing intelligent recommendations.
.3 Process Designer Process Designer is the link between the process and the engine. Through the process designer, the user solidifies a certain layout and rule into a certain process, and then uses the process engine to automatically execute it according to a certain solidified process through the data and data context. I divided the theoretical basis of the process designer I have seen so far into the following three categories: custom system; activity diagram system in UML; BPMN system.
.3.1 Custom system for Sagemaker and other scenarios AWS Step Function (custom process node)

.3.2 UML Activity DiagramFlowportal BPM process designer

.3.3 BPMN system activiti The process designer

Yanhuangyingdong process designer

Off-topic: Yanhuangyingying's process designer is almost the same as the process designer interface in processon, because it is essentially one.
Application of process engine.1 WorkflowWorkflow Management Coalition (WfMC) was established as a standardized organization for workflow management.
WfMC defines workflow as: a workflow refers to a type of business process that can be fully automatically executed. According to a series of process rules, documents, information or tasks are passed and executed between different executors.
Introduction: This article will share the definition and architectural design of modern process engines for you.
What is a process engine
Process engine is an underlying support platform developed and designed to provide process processing. The relationship between the process engine and process applications, as well as the application, is shown in the figure below.
Common support scenarios include: Workflow, BPM, process orchestration, etc. This sharing mainly starts from the BPM process engine and introduces the architectural design methods of the process engine.
.1 What is a process
Simply put, the process is a combination of a series of activities. For example, in the OA system used in corporate offices, there are a large number of application approval processes. In the production and manufacturing industry, there are a large number of production and sales processes from sales orders to production and manufacturing, and then to signing and collecting payments. In the field of machine learning , there are applications of big data processing and machine learning of Amazon AWS Sagemaker. In summary, process is a concept. When combined with specific implementation, different process products are produced, such as DevOps, Spring Data Stream, etc. In terms of process implementation,
can be mainly divided into two implementation methods. One is to implement it with code. For example: use code to implement an overtime application, then you have to connect to SSO yourself for single sign-in, get the initiator and approver information through the interface, and save the form data at the same time.
Another way is to use a process engine to implement it. The process engine connects the data required for application scenarios, such as overtime application, process engine connects SSO, OU, approver configuration, permissions, etc. To achieve such a process, you only need to care about process configuration, process nodes and process forms. Process flow and process data processing are all completed through the process engine. The process engine can be quickly implemented in the process, which is also the value of the process engine.
.2 What is engine
Generally speaking, the engine is a support part of a program or a system. Common program engines include game engines, search engines, antivirus engines, etc. An engine is a highly abstract and encapsulation of a certain type of business scenario that is separated from a specific business scenario.
For example, an OA company encapsulates a set of workflows for approval, and implementers only need to configure processes and forms to deliver projects. For example, a company in the United States made an AI engine to recommend NBA (Next Best Action), encapsulating common algorithms in the recommendation field, automatically selecting and combining multiple algorithms in different scenarios, and performing intelligent recommendations.
.3 Process Designer
Process Designer is the link between the process and the engine. Through the process designer, the user solidifies a certain layout and rule into a certain process, and then uses the process engine to automatically execute it according to a certain solidified process through the data and data context. I divided the theoretical basis of the process designer I have seen so far into the following three categories: custom system; activity diagram system in UML; BPMN system.
.3.1 Custom system
for Sagemaker and other scenarios AWS Step Function (custom process node)
.3.2 UML Activity Diagram
Flowportal BPM process designer
.3.3 BPMN system
activiti The process designer
Yanhuangyingdong process designer
Off-topic: Yanhuangyingying's process designer is almost the same as the process designer interface in processon, because it is essentially one.
Application of process engine.1 WorkflowWorkflow Management Coalition (WfMC) was established as a standardized organization for workflow management.
WfMC defines workflow as: a workflow refers to a type of business process that can be fully automatically executed. According to a series of process rules, documents, information or tasks are passed and executed between different executors.
In workflow, the process engine is mainly used to support process approval and data flow, and the application scenarios are very wide. Foreign products (open source or commercial use) usually have relatively simple requirements and operations, and are not as complicated as domestic demands. Domestic products have undergone the training of many customers and are currently relatively powerful. Generally speaking, the most commonly used scenarios of workflow are the OA products. In OA office, it contains a large number of elements in corporate offices, which are enough to form specific products, such as portal systems and mobile offices. During the implementation of OA projects, industry solutions and thematic solutions can be formed based on industry and business priorities. Here are some OA company products and solutions.
.2 BPM (Business Process Management)Workflow mainly solves approval and data flow, while BPM mainly solves end-to-end, information islands and other problems. Most customers who use BPM products build systems based on BPM, such as OA, CRM, HR and other systems on BPM. The usage scenarios of
BPM are more extensive than Workflow. The BPM products include a large number of components that interact with third-party systems and custom SQL and code components.
For example, the file trigger in the BPM system can automatically trigger process instances by monitoring the files in on the FTP server in interactive scenarios such as customs; data synchronization can be performed automatically through the timer Timer, and the synchronization results are notified to relevant operation members through the Mail node. The applications of
BPM can be divided into before, during and after execution.
.3 Process OrchestrationProcess Orchestration is a higher level of abstraction separated from the process business field. Users can customize their business through the process orchestration system and combine their own business scenarios. For example, the relevant business code can be encapsulated into functions, and then the functions of different businesses can be associated and scheduled through the FAAS platform of the cloud vendor platform to complete a certain task.
Architecture design of process engineGiven that some friends may not have used or contacted the process engine, we will first introduce the components of the process engine, and then introduce how projects based on a certain BPM product are developed. Through BPM project development, we have a preliminary understanding of the role of process engines.
.1 The component unit of the BPM process engineorganization, role, users, and members organizational structure hosting;
- process resource files configuration, verification, storage and execution, for different process nodes, the process engine automatically combines configuration and data to process the corresponding business logic, and the process data is automatically processed;
- form configuration and data binding, and the form data is automatically processed according to the process configuration;
- common data interface;
.1.1 Organizational structure design
.1.2 Process DesignerProcess Designer contains the list of grouped nodes on the left and the canvas on the right. The node on the left can be designed as follows.
Question: How to parse a flowchart in XML or JSON format?
Different nodes configure different configuration items according to different business scenarios. For example, for Human Node, you need to configure the approver, configure the display form for the approval process, which fields can be modified in the approval process, and which fields need to be modified in the approval process.
.1.3 Form Designer
This is to generate a form according to the form-related data table, and then configure and bind the form fields.
This is the Drag&Drop control, and then configure the control's properties, such as binding fields, etc.
This is a Drag&Drop control. The form
is a Drag&Drop control. It does not need to associate the database table field. The summary process of generating a form in the data table is shown in the figure below.The summary process of dragging and dropping controls to bind data table fields is as follows.
Drag and drop control without binding data table fields. It is more convenient to save using the Document record of NoSQL or using the JSON type provided by RDS.
.1.4 Interface designcombined with Activity interface design, as shown in the figure below
When some systems create a process task, they must first create an application example according to the process template, then associate the initiator and notes, call RuntimeService, and execute it to StartNode. This type of design varies from person to person, and it is a bit cumbersome to do so.
.2 Project development practice based on process engine.2.1 Process project practice processdetermines organizational structure
- determines process, including process layout, approver settings, permissions
- determines form information (fields, types, data sources, verification rules) and form style
- determines page layout, style, data fields, search, import, export
- report
.2.2 Organizational StructureOrganizational Structure Implementation, there are two methods: one is to manage data according to dimensions, and the other is to manage under the same organizational structure tree.
performs data management according to different dimensions such as group, company, department, user, etc. It is relatively common and will not be discussed here. The following figure is an example of maintaining data by dimensions.
is maintained according to the same organizational structure tree, and the interface is generally displayed as the left tree and right table. Most commercial products will cache this organizational structure tree in memory to facilitate the reviewer to find and open windows to select OrgUnit, Role, User, Member and other scenarios. Member was introduced to solve scenarios such as multiple-person positions. Generally, when initiating the process, you need to bring out the Member list owned by the initiator, so that the subsequent nodes can obtain the appropriate approver.
For organizational structure, it is necessary to consider that the system itself must have the ability to store OU. For users who do not have an organizational structure, they can directly create a new organizational structure in the system's organizational structure. At the same time, for customers with existing systems, data maintenance can be carried out automatically through organizational structure data synchronization. For customers who use internal control of AD domains, they need to have the ability to authenticate the identity of AD domains. For complex scenarios, such as the user is SaaS-based, the organizational structure also needs to be internal to the system to support the use of APIs to obtain organizational information.
So when designing the organizational structure, you need to use plug-ins to do it. The specific plug-in can be configured in the configuration file. The following is an example of the organizational structure operation interface for a commercial product.
Common organizational structure operations include organizational structure synchronization, such as process system synchronization WeChat enterprise account , Dingding , etc., which will not be expanded here.
.2.3 Process DesignThe process we imagine may be to the following simple process.
. The actual project encounters the process generally in the scenario shown in the figure below.
Preliminary view of the model files of several processes looks like, and I will first have an impression.
?xml version="1.0" encoding="UTF-8" ?definitions id="definitions"targetNamespace="http://activiti.org/bpmn20"xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:activiti="http://activiti.org/bpmn"process id="vacationRequestt" name="Vacation request"startEvent id="request" activity:initiator="employeeName"extensionElementsactiviti:formProperty id="numberOfDays" name="Number of days" type="long" value="1" required="true"/activiti:formProperty id="startDate" name="First day of holiday (dd-MM-yyy)" datePattern="dd-MM-yyyy hh:mm" type="date" required="true" /activiti:formProperty id="vacationMotivation" name="Motivation" type="string" //extensionElements/startEventsequenceFlow id="flow1" sourceRef="requestt" targetRef="handleRequest" /userTask id="handleRequest" name="Handle vacation request" documentation${employeeName} would like to take ${numberOfDays} day(s) of vacation (Motivation: ${vacationMotivation})./documentationextensionElementsactiviti:formProperty id="vacationApproved" name="Do you approve this vacation" type="enum" required="true" activity:value id="true" name="Approve" /activiti:value id="false" name="Reject" //activiti:formProperty id="managerMotivation" name="Motivation" type="string" //extensionElementspotentialOwnerresourceAssignmentExpressionformalExpressionmanagement/formalExpression/resourceAssignmentExpression/potentialOwner/userTasksequenceFlow id="flow2" sourceRef="handleRequest" targetRef="requestApprovedDecision" /exclusiveGateway id="requestApprovedDecision" name="Request approved?" /sequenceFlow id="flow3" sourceRef="requestApprovedDecision" targetRef="sendApprovalMail" conditionExpression xsi:type="tFormalExpression"${vacationApproved == 'true'}/conditionExpression/sequenceFlowtask id="sendApprovalMail" name="Send confirmation e-mail" /sequenceFlow id="flow4" sourceRef="sendApprovalMail" targetRef="theEnd1" /endEvent id="theEnd1" /sequenceFlow id="flow5" sourceRef="requestApprovedDecision" targetRef="adjustVacationRequestTask" conditionExpression xsi:type="tFormalExpression"${vacationApproved == 'false'}/conditionExpression/sequenceFlowuserTask id="adjustVacationRequestTask" name="Adjust vacation request"documentationYour manager has disapproved your vacation request for ${numberOfDays} days.Reason: ${managerMotivation}/documentationextensionElementsactiviti:formProperty id="numberOfDays" name="Number of days" value="${numberOfDays}" type="long" required="true"/activiti:formProperty id="startDate" name="First day of holiday (dd-MM-yyyy)" value="${startDate}" datePattern="dd-MM-yyyy hh:mm" type="date" required="true" /activiti:formProperty id="vacationMotivation" name="Motivation" value="${vacationMotivation}" type="string" /activiti:formProperty id="resendRequest" name="Resend vacation request to manager?" type="enum" required="true" activiti:value id="true" name="Yes" /activiti:value id="false" name="No" //activiti:formProperty/extensionElementshumanPerformerresourceAssignmentExpressionformalExpression${employeeName}/formalExpression/resourceAssignmentExpression/humanPerformer/userTasksequenceFlow id="flow6" sourceRef="adjustVacationRequestTask" targetRef="resendRequestDecision" /exclusiveGateway id="resendRequestDecision" name="Resend request?" /sequenceFlow id="flow7" sourceRef="resendRequestDecision" targetRef="handleRequest"conditionExpression xsi:type="tFormalExpression"${resendRequest == 'true'}/conditionExpression/sequenceFlowsequenceFlow id="flow8" sourceRef="resendRequestDecision" targetRef="theEnd2" conditionExpression xsi:type="tFormalExpression"${resendRequest == 'false'}/conditionExpression/sequenceFlowendEvent id="theEnd2" //process/definitionsA process that can’t be completed even with screenshots. If you use code to implement the entire process, the workload and efficiency can be imagined.When actually doing projects and using product based on process engines to do projects, you only need to determine nodes, node configurations, data configurations and permissions.
Question: Generally, nodes with email notifications are all nodes. How to implement email notification nodes? Please consider the following scenarios. When the
process flows and executes, you will encounter various errors, such as not being able to find the approver, etc. At this time, the process engine needs to rollback the data, and the business logic of the email notification node has been executed. In terms of permissions, for process resources, which departments can apply and which roles cannot be applied, process control should be done. During the process execution, process data and related persons who are not traveling should not see the process. Approvers who have processed the process cannot process the process any more. These are all issues that need to be considered in terms of authority.
.2.4 Form designThe form shown in the figure below can be analyzed. A process form has multiple main table information and multiple subtable information. Generally speaking, if non-process data processing is performed through the process engine, the sub-table is associated with the main table ID. If the process data processing is performed through the process engine, the sub-table and the main table are associated with the TaskId. The following is an example.
process system requires a form designer. Different nodes of a process can attach different forms to facilitate people of different roles to pay attention to process information in different dimensions.
.2.5 Page designGenerally speaking, the initiation, approval, history, etc. of the process are all a general system interface. For some business scenarios, a list interface needs to be made separately for easy use. For customers who already have portal systems, they need to integrate their interface styles. The following are examples of projects that have been done before.
.2.6 ReportSince not all customers have a report system, the process system needs to have a basic report function. The following figure is an example.
Customers with a report system can use their commercial version of the report system to obtain (directly fetch and count warehouse) data for display. Common reporting systems include FineReport, Tableau, PowerBI, etc.
.3 BPM process engine architecture design.3.1 Process engine architecture design
.3.2 Initiate the process
Process engine processing process
Execute node processing process
Problem: During the process engine processing, if a node has multiple connections, how to find out that FromNodeId is a connection to a certain Node? During manual processing, specify the connection texttml7
.4 Process engine architecture design
.4.1 Business identificationidentify configuration items in business scenarios, and use collection or grouping methods to enable business configuration
- to support business process configurable
- to support business process data, and automatically process
.4.2 Implementation of process engineBusiness Opportunitiesresource-related services, resource loading, resource storage, resource encryption, etc.
- configuration related services
- PVM implementation, that is, through a certain node (the starting node is the starting node) as the initial node, the node is automatically executed according to the action of a certain connection.
- data configuration, data permissions
- process data and business data automatic processing
Business Process Analysis (BPA) Process analysis helps enterprises to adjust and optimize the process asset library of
- Process Assets Library (PAL) process asset library, knowledge-based precipitation of enterprise processes, and binding systems and processes to make the approver know the corresponding responsibilities in the process
- Process Simulate process simulation, automated test
- Process Forecast Process prediction
- low-code platform
- wider opportunities lie in business areas + process engines, such as: DevOps, RPA, application and service orchestration, data orchestration, FaaS orchestration, etc.
The summary process of dragging and dropping controls to bind data table fields is as follows.Author: Ma Rui
Source: 21CTO
Typesetting: Lao Li
Drag and drop control without binding data table fields. It is more convenient to save using the Document record of NoSQL or using the JSON type provided by RDS.
.1.4 Interface designcombined with Activity interface design, as shown in the figure below
When some systems create a process task, they must first create an application example according to the process template, then associate the initiator and notes, call RuntimeService, and execute it to StartNode. This type of design varies from person to person, and it is a bit cumbersome to do so.
.2 Project development practice based on process engine.2.1 Process project practice processdetermines organizational structure
- determines process, including process layout, approver settings, permissions
- determines form information (fields, types, data sources, verification rules) and form style
- determines page layout, style, data fields, search, import, export
- report
.2.2 Organizational StructureOrganizational Structure Implementation, there are two methods: one is to manage data according to dimensions, and the other is to manage under the same organizational structure tree.
performs data management according to different dimensions such as group, company, department, user, etc. It is relatively common and will not be discussed here. The following figure is an example of maintaining data by dimensions.
is maintained according to the same organizational structure tree, and the interface is generally displayed as the left tree and right table. Most commercial products will cache this organizational structure tree in memory to facilitate the reviewer to find and open windows to select OrgUnit, Role, User, Member and other scenarios. Member was introduced to solve scenarios such as multiple-person positions. Generally, when initiating the process, you need to bring out the Member list owned by the initiator, so that the subsequent nodes can obtain the appropriate approver.
For organizational structure, it is necessary to consider that the system itself must have the ability to store OU. For users who do not have an organizational structure, they can directly create a new organizational structure in the system's organizational structure. At the same time, for customers with existing systems, data maintenance can be carried out automatically through organizational structure data synchronization. For customers who use internal control of AD domains, they need to have the ability to authenticate the identity of AD domains. For complex scenarios, such as the user is SaaS-based, the organizational structure also needs to be internal to the system to support the use of APIs to obtain organizational information.
So when designing the organizational structure, you need to use plug-ins to do it. The specific plug-in can be configured in the configuration file. The following is an example of the organizational structure operation interface for a commercial product.
Common organizational structure operations include organizational structure synchronization, such as process system synchronization WeChat enterprise account , Dingding , etc., which will not be expanded here.
.2.3 Process DesignThe process we imagine may be to the following simple process.
. The actual project encounters the process generally in the scenario shown in the figure below.
Preliminary view of the model files of several processes looks like, and I will first have an impression.
Introduction: This article will share the definition and architectural design of modern process engines for you.
What is a process engine
Process engine is an underlying support platform developed and designed to provide process processing. The relationship between the process engine and process applications, as well as the application, is shown in the figure below.
Common support scenarios include: Workflow, BPM, process orchestration, etc. This sharing mainly starts from the BPM process engine and introduces the architectural design methods of the process engine.
.1 What is a process
Simply put, the process is a combination of a series of activities. For example, in the OA system used in corporate offices, there are a large number of application approval processes. In the production and manufacturing industry, there are a large number of production and sales processes from sales orders to production and manufacturing, and then to signing and collecting payments. In the field of machine learning , there are applications of big data processing and machine learning of Amazon AWS Sagemaker. In summary, process is a concept. When combined with specific implementation, different process products are produced, such as DevOps, Spring Data Stream, etc. In terms of process implementation,
can be mainly divided into two implementation methods. One is to implement it with code. For example: use code to implement an overtime application, then you have to connect to SSO yourself for single sign-in, get the initiator and approver information through the interface, and save the form data at the same time.
Another way is to use a process engine to implement it. The process engine connects the data required for application scenarios, such as overtime application, process engine connects SSO, OU, approver configuration, permissions, etc. To achieve such a process, you only need to care about process configuration, process nodes and process forms. Process flow and process data processing are all completed through the process engine. The process engine can be quickly implemented in the process, which is also the value of the process engine.
.2 What is engine
Generally speaking, the engine is a support part of a program or a system. Common program engines include game engines, search engines, antivirus engines, etc. An engine is a highly abstract and encapsulation of a certain type of business scenario that is separated from a specific business scenario.
For example, an OA company encapsulates a set of workflows for approval, and implementers only need to configure processes and forms to deliver projects. For example, a company in the United States made an AI engine to recommend NBA (Next Best Action), encapsulating common algorithms in the recommendation field, automatically selecting and combining multiple algorithms in different scenarios, and performing intelligent recommendations.
.3 Process Designer
Process Designer is the link between the process and the engine. Through the process designer, the user solidifies a certain layout and rule into a certain process, and then uses the process engine to automatically execute it according to a certain solidified process through the data and data context. I divided the theoretical basis of the process designer I have seen so far into the following three categories: custom system; activity diagram system in UML; BPMN system.
.3.1 Custom system
for Sagemaker and other scenarios AWS Step Function (custom process node)
.3.2 UML Activity Diagram
Flowportal BPM process designer
.3.3 BPMN system
activiti The process designer
Yanhuangyingdong process designer
Off-topic: Yanhuangyingying's process designer is almost the same as the process designer interface in processon, because it is essentially one.
Application of process engine.1 WorkflowWorkflow Management Coalition (WfMC) was established as a standardized organization for workflow management.
WfMC defines workflow as: a workflow refers to a type of business process that can be fully automatically executed. According to a series of process rules, documents, information or tasks are passed and executed between different executors.
In workflow, the process engine is mainly used to support process approval and data flow, and the application scenarios are very wide. Foreign products (open source or commercial use) usually have relatively simple requirements and operations, and are not as complicated as domestic demands. Domestic products have undergone the training of many customers and are currently relatively powerful. Generally speaking, the most commonly used scenarios of workflow are the OA products. In OA office, it contains a large number of elements in corporate offices, which are enough to form specific products, such as portal systems and mobile offices. During the implementation of OA projects, industry solutions and thematic solutions can be formed based on industry and business priorities. Here are some OA company products and solutions.
.2 BPM (Business Process Management)Workflow mainly solves approval and data flow, while BPM mainly solves end-to-end, information islands and other problems. Most customers who use BPM products build systems based on BPM, such as OA, CRM, HR and other systems on BPM. The usage scenarios of
BPM are more extensive than Workflow. The BPM products include a large number of components that interact with third-party systems and custom SQL and code components.
For example, the file trigger in the BPM system can automatically trigger process instances by monitoring the files in on the FTP server in interactive scenarios such as customs; data synchronization can be performed automatically through the timer Timer, and the synchronization results are notified to relevant operation members through the Mail node. The applications of
BPM can be divided into before, during and after execution.
.3 Process OrchestrationProcess Orchestration is a higher level of abstraction separated from the process business field. Users can customize their business through the process orchestration system and combine their own business scenarios. For example, the relevant business code can be encapsulated into functions, and then the functions of different businesses can be associated and scheduled through the FAAS platform of the cloud vendor platform to complete a certain task.
Architecture design of process engineGiven that some friends may not have used or contacted the process engine, we will first introduce the components of the process engine, and then introduce how projects based on a certain BPM product are developed. Through BPM project development, we have a preliminary understanding of the role of process engines.
.1 The component unit of the BPM process engineorganization, role, users, and members organizational structure hosting;
- process resource files configuration, verification, storage and execution, for different process nodes, the process engine automatically combines configuration and data to process the corresponding business logic, and the process data is automatically processed;
- form configuration and data binding, and the form data is automatically processed according to the process configuration;
- common data interface;
.1.1 Organizational structure design
.1.2 Process DesignerProcess Designer contains the list of grouped nodes on the left and the canvas on the right. The node on the left can be designed as follows.
Question: How to parse a flowchart in XML or JSON format?
Different nodes configure different configuration items according to different business scenarios. For example, for Human Node, you need to configure the approver, configure the display form for the approval process, which fields can be modified in the approval process, and which fields need to be modified in the approval process.
.1.3 Form Designer
This is to generate a form according to the form-related data table, and then configure and bind the form fields.
This is the Drag&Drop control, and then configure the control's properties, such as binding fields, etc.
This is a Drag&Drop control. The form
is a Drag&Drop control. It does not need to associate the database table field. The summary process of generating a form in the data table is shown in the figure below.The summary process of dragging and dropping controls to bind data table fields is as follows.
Drag and drop control without binding data table fields. It is more convenient to save using the Document record of NoSQL or using the JSON type provided by RDS.
.1.4 Interface designcombined with Activity interface design, as shown in the figure below
When some systems create a process task, they must first create an application example according to the process template, then associate the initiator and notes, call RuntimeService, and execute it to StartNode. This type of design varies from person to person, and it is a bit cumbersome to do so.
.2 Project development practice based on process engine.2.1 Process project practice processdetermines organizational structure
- determines process, including process layout, approver settings, permissions
- determines form information (fields, types, data sources, verification rules) and form style
- determines page layout, style, data fields, search, import, export
- report
.2.2 Organizational StructureOrganizational Structure Implementation, there are two methods: one is to manage data according to dimensions, and the other is to manage under the same organizational structure tree.
performs data management according to different dimensions such as group, company, department, user, etc. It is relatively common and will not be discussed here. The following figure is an example of maintaining data by dimensions.
is maintained according to the same organizational structure tree, and the interface is generally displayed as the left tree and right table. Most commercial products will cache this organizational structure tree in memory to facilitate the reviewer to find and open windows to select OrgUnit, Role, User, Member and other scenarios. Member was introduced to solve scenarios such as multiple-person positions. Generally, when initiating the process, you need to bring out the Member list owned by the initiator, so that the subsequent nodes can obtain the appropriate approver.
For organizational structure, it is necessary to consider that the system itself must have the ability to store OU. For users who do not have an organizational structure, they can directly create a new organizational structure in the system's organizational structure. At the same time, for customers with existing systems, data maintenance can be carried out automatically through organizational structure data synchronization. For customers who use internal control of AD domains, they need to have the ability to authenticate the identity of AD domains. For complex scenarios, such as the user is SaaS-based, the organizational structure also needs to be internal to the system to support the use of APIs to obtain organizational information.
So when designing the organizational structure, you need to use plug-ins to do it. The specific plug-in can be configured in the configuration file. The following is an example of the organizational structure operation interface for a commercial product.
Common organizational structure operations include organizational structure synchronization, such as process system synchronization WeChat enterprise account , Dingding , etc., which will not be expanded here.
.2.3 Process DesignThe process we imagine may be to the following simple process.
. The actual project encounters the process generally in the scenario shown in the figure below.
Preliminary view of the model files of several processes looks like, and I will first have an impression.
?xml version="1.0" encoding="UTF-8" ?definitions id="definitions"targetNamespace="http://activiti.org/bpmn20"xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:activiti="http://activiti.org/bpmn"process id="vacationRequestt" name="Vacation request"startEvent id="request" activity:initiator="employeeName"extensionElementsactiviti:formProperty id="numberOfDays" name="Number of days" type="long" value="1" required="true"/activiti:formProperty id="startDate" name="First day of holiday (dd-MM-yyy)" datePattern="dd-MM-yyyy hh:mm" type="date" required="true" /activiti:formProperty id="vacationMotivation" name="Motivation" type="string" //extensionElements/startEventsequenceFlow id="flow1" sourceRef="requestt" targetRef="handleRequest" /userTask id="handleRequest" name="Handle vacation request" documentation${employeeName} would like to take ${numberOfDays} day(s) of vacation (Motivation: ${vacationMotivation})./documentationextensionElementsactiviti:formProperty id="vacationApproved" name="Do you approve this vacation" type="enum" required="true" activity:value id="true" name="Approve" /activiti:value id="false" name="Reject" //activiti:formProperty id="managerMotivation" name="Motivation" type="string" //extensionElementspotentialOwnerresourceAssignmentExpressionformalExpressionmanagement/formalExpression/resourceAssignmentExpression/potentialOwner/userTasksequenceFlow id="flow2" sourceRef="handleRequest" targetRef="requestApprovedDecision" /exclusiveGateway id="requestApprovedDecision" name="Request approved?" /sequenceFlow id="flow3" sourceRef="requestApprovedDecision" targetRef="sendApprovalMail" conditionExpression xsi:type="tFormalExpression"${vacationApproved == 'true'}/conditionExpression/sequenceFlowtask id="sendApprovalMail" name="Send confirmation e-mail" /sequenceFlow id="flow4" sourceRef="sendApprovalMail" targetRef="theEnd1" /endEvent id="theEnd1" /sequenceFlow id="flow5" sourceRef="requestApprovedDecision" targetRef="adjustVacationRequestTask" conditionExpression xsi:type="tFormalExpression"${vacationApproved == 'false'}/conditionExpression/sequenceFlowuserTask id="adjustVacationRequestTask" name="Adjust vacation request"documentationYour manager has disapproved your vacation request for ${numberOfDays} days.Reason: ${managerMotivation}/documentationextensionElementsactiviti:formProperty id="numberOfDays" name="Number of days" value="${numberOfDays}" type="long" required="true"/activiti:formProperty id="startDate" name="First day of holiday (dd-MM-yyyy)" value="${startDate}" datePattern="dd-MM-yyyy hh:mm" type="date" required="true" /activiti:formProperty id="vacationMotivation" name="Motivation" value="${vacationMotivation}" type="string" /activiti:formProperty id="resendRequest" name="Resend vacation request to manager?" type="enum" required="true" activiti:value id="true" name="Yes" /activiti:value id="false" name="No" //activiti:formProperty/extensionElementshumanPerformerresourceAssignmentExpressionformalExpression${employeeName}/formalExpression/resourceAssignmentExpression/humanPerformer/userTasksequenceFlow id="flow6" sourceRef="adjustVacationRequestTask" targetRef="resendRequestDecision" /exclusiveGateway id="resendRequestDecision" name="Resend request?" /sequenceFlow id="flow7" sourceRef="resendRequestDecision" targetRef="handleRequest"conditionExpression xsi:type="tFormalExpression"${resendRequest == 'true'}/conditionExpression/sequenceFlowsequenceFlow id="flow8" sourceRef="resendRequestDecision" targetRef="theEnd2" conditionExpression xsi:type="tFormalExpression"${resendRequest == 'false'}/conditionExpression/sequenceFlowendEvent id="theEnd2" //process/definitionsA process that can’t be completed even with screenshots. If you use code to implement the entire process, the workload and efficiency can be imagined.When actually doing projects and using product based on process engines to do projects, you only need to determine nodes, node configurations, data configurations and permissions.
Question: Generally, nodes with email notifications are all nodes. How to implement email notification nodes? Please consider the following scenarios. When the
process flows and executes, you will encounter various errors, such as not being able to find the approver, etc. At this time, the process engine needs to rollback the data, and the business logic of the email notification node has been executed. In terms of permissions, for process resources, which departments can apply and which roles cannot be applied, process control should be done. During the process execution, process data and related persons who are not traveling should not see the process. Approvers who have processed the process cannot process the process any more. These are all issues that need to be considered in terms of authority.
.2.4 Form designThe form shown in the figure below can be analyzed. A process form has multiple main table information and multiple subtable information. Generally speaking, if non-process data processing is performed through the process engine, the sub-table is associated with the main table ID. If the process data processing is performed through the process engine, the sub-table and the main table are associated with the TaskId. The following is an example.
process system requires a form designer. Different nodes of a process can attach different forms to facilitate people of different roles to pay attention to process information in different dimensions.
.2.5 Page designGenerally speaking, the initiation, approval, history, etc. of the process are all a general system interface. For some business scenarios, a list interface needs to be made separately for easy use. For customers who already have portal systems, they need to integrate their interface styles. The following are examples of projects that have been done before.
.2.6 ReportSince not all customers have a report system, the process system needs to have a basic report function. The following figure is an example.
Customers with a report system can use their commercial version of the report system to obtain (directly fetch and count warehouse) data for display. Common reporting systems include FineReport, Tableau, PowerBI, etc.
.3 BPM process engine architecture design.3.1 Process engine architecture design
.3.2 Initiate the process
Process engine processing process
Execute node processing process
Problem: During the process engine processing, if a node has multiple connections, how to find out that FromNodeId is a connection to a certain Node? During manual processing, specify the connection texttml7
.4 Process engine architecture design
.4.1 Business identificationidentify configuration items in business scenarios, and use collection or grouping methods to enable business configuration
- to support business process configurable
- to support business process data, and automatically process
.4.2 Implementation of process engineBusiness Opportunitiesresource-related services, resource loading, resource storage, resource encryption, etc.
- configuration related services
- PVM implementation, that is, through a certain node (the starting node is the starting node) as the initial node, the node is automatically executed according to the action of a certain connection.
- data configuration, data permissions
- process data and business data automatic processing
Business Process Analysis (BPA) Process analysis helps enterprises to adjust and optimize the process asset library of
- Process Assets Library (PAL) process asset library, knowledge-based precipitation of enterprise processes, and binding systems and processes to make the approver know the corresponding responsibilities in the process
- Process Simulate process simulation, automated test
- Process Forecast Process prediction
- low-code platform
- wider opportunities lie in business areas + process engines, such as: DevOps, RPA, application and service orchestration, data orchestration, FaaS orchestration, etc.
When actually doing projects and using product based on process engines to do projects, you only need to determine nodes, node configurations, data configurations and permissions.Author: Ma Rui
Source: 21CTO
Typesetting: Lao Li
Question: Generally, nodes with email notifications are all nodes. How to implement email notification nodes? Please consider the following scenarios. When the
process flows and executes, you will encounter various errors, such as not being able to find the approver, etc. At this time, the process engine needs to rollback the data, and the business logic of the email notification node has been executed. In terms of permissions, for process resources, which departments can apply and which roles cannot be applied, process control should be done. During the process execution, process data and related persons who are not traveling should not see the process. Approvers who have processed the process cannot process the process any more. These are all issues that need to be considered in terms of authority.
.2.4 Form designThe form shown in the figure below can be analyzed. A process form has multiple main table information and multiple subtable information. Generally speaking, if non-process data processing is performed through the process engine, the sub-table is associated with the main table ID. If the process data processing is performed through the process engine, the sub-table and the main table are associated with the TaskId. The following is an example.
process system requires a form designer. Different nodes of a process can attach different forms to facilitate people of different roles to pay attention to process information in different dimensions.
.2.5 Page designGenerally speaking, the initiation, approval, history, etc. of the process are all a general system interface. For some business scenarios, a list interface needs to be made separately for easy use. For customers who already have portal systems, they need to integrate their interface styles. The following are examples of projects that have been done before.
.2.6 ReportSince not all customers have a report system, the process system needs to have a basic report function. The following figure is an example.
Customers with a report system can use their commercial version of the report system to obtain (directly fetch and count warehouse) data for display. Common reporting systems include FineReport, Tableau, PowerBI, etc.
.3 BPM process engine architecture design.3.1 Process engine architecture design
.3.2 Initiate the process
Process engine processing process
Execute node processing process
Problem: During the process engine processing, if a node has multiple connections, how to find out that FromNodeId is a connection to a certain Node? During manual processing, specify the connection texttml7
.4 Process engine architecture design
.4.1 Business identificationidentify configuration items in business scenarios, and use collection or grouping methods to enable business configuration
- to support business process configurable
- to support business process data, and automatically process
.4.2 Implementation of process engineBusiness Opportunitiesresource-related services, resource loading, resource storage, resource encryption, etc.
- configuration related services
- PVM implementation, that is, through a certain node (the starting node is the starting node) as the initial node, the node is automatically executed according to the action of a certain connection.
- data configuration, data permissions
- process data and business data automatic processing
Business Process Analysis (BPA) Process analysis helps enterprises to adjust and optimize the process asset library of
- Process Assets Library (PAL) process asset library, knowledge-based precipitation of enterprise processes, and binding systems and processes to make the approver know the corresponding responsibilities in the process
- Process Simulate process simulation, automated test
- Process Forecast Process prediction
- low-code platform
- wider opportunities lie in business areas + process engines, such as: DevOps, RPA, application and service orchestration, data orchestration, FaaS orchestration, etc.
Author: Ma Rui
Source: 21CTO
Typesetting: Lao Li