Activiti7工作流引擎:高阶篇 命令上下文 CommandContext
Posted vbirdbest
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activiti7工作流引擎:高阶篇 命令上下文 CommandContext相关的知识,希望对你有一定的参考价值。
红管管 白签签
排队一起做酸酸
做完酸酸吃饭饭
吃完饭饭等单单
单单出来到时间
继续排队做酸酸
在家呆着防冠冠
么事不能胡转转
胡转可能得冠冠
可以从CommandContext中拿到所有EntityManager(即DAO、Mapper)用于对Activiti的25张表CRUD。
一:CommandContext
public class CommandContext
// ACT_RU_TASK
public TaskEntityManager getTaskEntityManager()
// ACT_RU_EXECUTION
public ExecutionEntityManager getExecutionEntityManager()
public DeploymentEntityManager getDeploymentEntityManager()
public HistoricProcessInstanceEntityManager getHistoricProcessInstanceEntityManager()
public ProcessDefinitionEntityManager getProcessDefinitionEntityManager()
public ModelEntityManager getModelEntityManager()
public ActivitiEngineAgenda getAgenda();
二:TaskEntityManager
public interface TaskEntityManager extends EntityManager<TaskEntity>
@Internal
public interface EntityManager<EntityImpl extends Entity>
EntityImpl create();
EntityImpl findById(String entityId);
void insert(EntityImpl entity);
void insert(EntityImpl entity, boolean fireCreateEvent);
EntityImpl update(EntityImpl entity);
EntityImpl update(EntityImpl entity, boolean fireUpdateEvent);
void delete(String id);
void delete(EntityImpl entity);
void delete(EntityImpl entity, boolean fireDeleteEvent);
三:Entity
@Internal
public interface TaskEntity extends VariableScope, Task, DelegateTask, Entity, HasRevision
public class TaskEntityImpl extends VariableScopeImpl implements TaskEntity, Serializable, BulkDeleteable
四:Command
public interface Command<T>
T execute(CommandContext commandContext);
五:自定义命令
public class MyCustomCommand implements Command<Object>
/**
* 当前任务id
*/
private String currentTaskId;
public MoveTaskCommand(String currentTaskId)
this.currentTaskId = currentTaskId;
@Override
public Object execute(CommandContext commandContext)
// 对ACT_RU_TASK增删改查
TaskEntityManager taskEntityManager = commandContext.getTaskEntityManager();
TaskEntity currentTaskEntity = taskEntityManager.findById(this.currentTaskId);
taskEntityManager.deleteTask(currentTaskEntity, null, true, true);
// 对ACT_RU_EXECUTION增删改查
ExecutionEntityManager executionEntityManager = commandContext.getExecutionEntityManager();
ExecutionEntity executionEntity = executionEntityManager.findById(currentTaskEntity.getExecutionId());
return null;
六:ManagementService
ManagementService 可以执行命令。so,我们如果需要对Activiti表进行直接操作的话可以将操作封装在Command中,然后通过ManagementService来执行。
@Autowired
private ManagementService managementService;
public void testMoveTask()
String currentTaskId = "86661d4e-707b-11ec-a9f1-8239436cd258";
MyCustomCommand myCustomCommand = new MyCustomCommand(currentTaskId);
managementService.executeCommand(myCustomCommand);
以上是关于Activiti7工作流引擎:高阶篇 命令上下文 CommandContext的主要内容,如果未能解决你的问题,请参考以下文章
Activiti7工作流引擎:高阶篇 内嵌子流程 SubProcess
Activiti7工作流引擎:高阶篇 ProcessDefinitionUtil