HR processes
HR processes are mostly a special type of processors or stateful long running tasks. The intent here is to keep the process logic in the Activiti workflow, so it can be easily extensible without the need of digging in the code.
Both HR processors or long running tasks executes the same Activiti workflow process, the difference is in the time of execution: - processors executes process immediately, when identity contract is changed (active operation) - long running tasks are scheduled, mainly over night. So only the contract change is saved, and the HR processes are executed separately. Choosing the way is configurable - processor can be disabled, long running tasks can be scheduled or not.
The AbstractWorkflowStatefulExecutor
bears the responsibility of launching workflow tasks. The idea right now is fairly simple - execute the process synchronously for one user and return the operation result. The convention is that the processed item (of AbstractDto
type) is passed into the workflow, which in turn writes the OperationResult
as "operationResult" variable. You are advised to list through the standard set of workflow to see the real-world examples.
Developer tip: avoid asynchronous workflow execution if possible.
Standard set of HR processes
Enabled contract
The process is:
- a stateful task, therefore the contract is processed only once while it is valid for a continuous period of time. The process is realized by
HrEnableContractProcess
executor andhrEnableContract
Activiti workflow. - or processor, which checks, if the validity of a contract has changed. The same Activiti workflow is used.
End of contract
The process is:
- a stateful task, therefore the contract is processed only once while it is not valid for a continuous period of time. The process is realized by
HrEndContractProcess
executor andhrEndContract
Activiti workflow. - or processor that checks if the validity of a contract has changed. The same Activiti workflow is used.
Contract exclusion
The process is:
- a stateful task, therefore the contract is processed only once while it is disabled for a continuous period of time. The process is realized by
HrContractExclusionProcess
executor andhrContractExclusion
Activiti workflow. - or a processor that checks if the validity of a contract has changed. The same Activiti workflow is used.