流程环节间的逻辑控制、业务数据的传递可以直接通过设置过程模型实现,如果需要根据业务数据来控制流程的流转,就需要在流程环节的OnCreateFlowOutTasks事件中写代码来实现。因此想指定下一环节的接受者需要在OnCreateFlowOutTasks事件中写代码实现,按照流程环节ID,查找到对应这个环节的流程任务,然后根据业务数据对这个流程任务的执行者赋值。
1、代码修改执行者列表
procedure TMainForm.FlowDDLRCreateFlowOutFlowTasks(…;…);
var
lFlowTask:TFlowTask;
lOrgURL: TOrgURL;
begin
lFlowTask := Command.FlowTasks.FindFlowTask(ANextProcUnit);//根据任务环节查找任务
if lFlowTask <> nil then
begin
lFlowTask.Executors.Clear; //删除缺省执行者
lOrgURL := TOrgURL.Create('XSB','XSY',ZXX' ); //部门、岗位、人员创建组织单元
lFlowTask.Executors.Add(lOrgURL);//添加执行者
end;
end;
2、代码修改执行者表达式
procedure TMainForm.FlowDDLRCreateFlowOutFlowTasks(…);
var
lFlowTask:TFlowTask;
lOrgURL: TOrgURL;
Range:String;
begin
lFlowTask := Command.FlowTasks.FindFlowTask('DDSH');
if lFlowTask <> nil then
begin
Range:= 'OrgSelect(orgcondition('+''''+'*.psm'''+',ISPLAYNAME =
'+''''+'李海萍'+''''+','+''''+'''))'
lFlowTask.ExecutorRange:=Range; //执行组织机构表达式
end;
end; |