Activiti entry, activiti
Related Articles:
The most authoritative Activiti framework learning in history
Activiti entry-easily interpreting Databases
This chapter describes how to set up the Activiti framework environment. You can use the Activiti API to create 23 database tables and start the Activiti journey.
In the previous chapter, we introduced the features of 23 tables in the Activitie core database [database structure overview]. Here we will integrate Activiti into our project.
To integrate Activiti, follow these steps:
1. Download The Activti framework package from the official website;
2. The first step of framework integration is to export packages. These jar packages can be found in the official package;
Activiti uses the IOC mechanism of the Spring framework, so using the lib directory package in the root directory alone is not enough.
However, you can obtain it from the example project under the wars directory in the official package. Unzip the activiti-rest project and import all packages under the WEB-INF \ lib directory in the activiti-rest project. Add to project.
If we are using a Mysql database, the Link driver of the Mysql database is not provided in the Activiti official package. We need to import it ourselves. Manually import"Mysql-connector-java.jar", Added to the project.
3. Create a test class, create the Activiti core object PrcessEngine (process engine), and automatically create a database table. The test code is as follows:
In Activiti, the table is automatically created when the core process engine object is created. If the program runs normally, the database automatically creates the database according to the configuration, and then creates 23 tables.
Environment Test Improvement
In Actiiti5, the custom process will definitely operate on the database. It will be very troublesome to write a large segment of code as above, so we can write the database connection configuration into the configuration file.
There is no ready-made configuration file in official examples of Activiti5, so first find activiti-rest \ WEB-INF \ classes:
Activiti-context.xml: a configuration file similar to the spring structure, which is renamed activiti. cfg. xml after the content is cleared, used for the configuration of the Process Engine.
Configure the ProcessEngineConfiguration object according to the code above, and mainly define the database connection configuration and table creation policy. The configuration file code is as follows:
The Java code is as follows:
The createProcessEngineConfigurationFromResource parameter value is the name of activiti. cfg. xml in the configuration file we added, and the java code is executed. After the process engine object is created successfully and runs, the database automatically creates a table.
Core APIs
After the environment is successfully set up, you can use the core API to do something meaningful. Here is a brief introduction to core APIs.
LProcessEngine
Note:
1. The core class in Activiti can be understood as the big manager of Activiti, and other classes are all from him.
2. Generation Method:
We have seen two ways to create ProcessEngine, which is much simpler here. You can view the source code and find that the activiti. cfg. xml file under classpath is automatically loaded when you call the getdefadefaproceeengine method of ProcessEngines.
3. RepositoryService can be generated
4. RuntimeService can be generated
5. TaskService can be generated
Functions of each Service:
RepositoryService |
Management Process Definition |
RuntimeService |
Execution Management, including starting, advancing, and deleting process instances |
TaskService |
Task Management |
HistoryService |
History Management (Management of executed data) |
IdentityService |
Organization Management |
FormService |
Task form Management |
ManagerService |
Timer Task Service |
LRepositoryService
Is the repository service class of Activiti. The so-called repository refers to two files in the process definition document: bpmn files and process images.
1. Generation Method
2. DeploymentBuilder can be generated to define parameters related to process deployment.
3. Delete the Process Definition
LRuntimeService
Is the process execution service class of Activiti. You can obtain a lot of information about process execution from this service class.
LTaskService
Is the Task Service class of Activiti. You can operate process tasks in this service class.
LProcessDefinition
Process Definition class. The object that describes the process rule. You can obtain resource files from here.
LExecution
Activiti uses this object to describe every activity node in the process execution. In the case of no concurrency, it is the same as ProcessInstance.
LProcessInstance
Indicates an execution instance started according to the process rules. For example, if Xiaoqiang asks for leave, the system will create a separate process instance for him. A process instance includes all running nodes. We can use this object to learn the progress and other information of the current process instance.
Source code for ProcessInstance:
From the source code, ProcessInstance is Execution. But in the practical sense, there are some differences:
ProcessInstance and Execution are consistent in a single-line process, such as a loan process.
In this example, wire money and archive are executed concurrently. At this time, the total line represents ProcessInstance, and each activity in the sub-line represents Execution.