如何准确访问当前任务的后续任务
需求描述:
环节A后面是异或环节,异或环节后面是两个活动环节B和C。B为默认环节。在A环节点击流转的时候指定C环节的执行者范围。
代码如下:
lFlowTask := Command.FlowTasks.FindFlowTask('C');
//lFlowTask := Command.FlowTasks.FindFlowTask('HSYWGN');
if lFlowTask <> nil then
begin
lRange := 'OrgChildren(OrgKey('''+lQuery.FieldByName('DEPARTMENT_ID').AsString+''','''',''''), '''', True, False)';
lFlowTask.ExecutorMustBeFuncOwner:=True; //执行者必须是功能拥有者
lFlowTask.ExecutorAmount:= TTaskExecutorAmount.teaMulti; //TTaskExecutorAmount.teaMulti; //执行者范围 多个
// lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaOne; //执行者范围 单个
lFlowTask.ExecutorKinds := [TTaskExecutorKind.ekPersonMember]; //执行者类型 人员成员
lFlowTask.AllowExecutorRange:=lRange; //限定执行者范围
lFlowTask.ExecutorRange:=lRange; //默认执行者范围
//lFlowTask.ExecuteMode := TTaskExecuteMode.emSimultaneous ; //任务执行方式 同时执行
// lFlowTask.ExecuteMode := TTaskExecuteMode.emSimultaneous ; //任务执行方式 同时执行
// lFlowTask.ExecuteMode := TTaskExecuteMode.emExclusive ; //任务执行方式 独立执行
lFlowTask.ExecuteMode := TTaskExecuteMode.emMonopolize ; //任务执行方式 独占方式
// lFlowTask.ExecuteMode := TTaskExecuteMode.emSequential ; //任务执行方式 顺序执行
lFlowTask.PreemptMode :=TTaskPreemptMode.omFirstOpen; //抢占方式 第一个打开
// lFlowTask.PreemptMode :=TTaskPreemptMode.omFirstProcess; //抢占方式 第一个处理
lFlowTask.AssignMode := TTaskAssignMode.amSingleness;//TTaskAssignMode.amSingleness; //任务分配方式 独立分配
// lFlowTask.AssignMode := TTaskAssignMode.amTogether; //任务分配方式 共同分配
出现问题:
lFlowTask := Command.FlowTasks.FindFlowTask('C');中的lFlowTask对象为空对象。如果查找的任务换成B(lFlowTask := Command.FlowTasks.FindFlowTask('B');)即可访问到。
麻烦版主给个解决办法,谢谢! |