Workflow
The workflow is initiated at creating entity. Also they are removed at deletion of entities. Most of code are found in *LocalServiceImpl.java.
Also for Asian markets, quick workflow approvement functionality is pre-implemented.
General workflow process
Workflow starts from WorkflowHandlerRegistryUtil.startWorkflowInstance, inside of *LocalServiceImpl#startWorkflowInstance method.
This method is placed in *LocalServiceImpl#addEntry , *LocalServiceImpl#updateEntry
WorkflowHandlerRegistryUtil.startWorkflowInstance(
entry.getCompanyId(), entry.getGroupId(), userId,
SampleSB.class.getName(), entry.getPrimaryKey(), entry,
serviceContext, workflowContext);
When the entity is deleted, the workflow must be removed at the same time. The method is found in *LocalServiceImpl#deleteEntry.
workflowInstanceLinkLocalService.deleteWorkflowInstanceLink(
entry.getCompanyId(), entry.getGroupId(),
SampleSB.class.getName(), entry.getPrimaryKey());
Quick workflow approver
In Asian markets, a user sometimes wants to approve right away, without assigning yourself first and approve. At each transition phase, pass the name of task to a method.
Key classes and methods
| Class | Method name | details |
|---|---|---|
| *WorkflowManager | completeWorkflowTaskAtOnce | Entry point of assigning and processing workflow at once |
| *WorkflowManager | isWorkflowEnable | Check if workflow is enabled |
| *WorkflowManager | getTransitionNames | Fetching a list of transition task names |
| *WorkflowManager | getWorkflowTask | Fetching a workflow task from the entity’s classPK. |
| *WorkflowManager | isWorkflowExist | Checking if the workflow task exists. |
What’s next?
Let’s learn more details of comments.