procedure TMainForm.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
lFlowTask:TFlowTask;
lRange:String;
i:integer;
begin
lRange := '';
lFlowTask := Command.FlowTasks.FindFlowTask(ANextProcUnit);
if lFlowTask <> nil then
begin
for i := 0 to ADeptList.Count -1 do
begin
//OrgChildren(OrgKey('08', '', ''), '', True, False)
if lRange ='' then
lRange:='OrgChildren(OrgKey('''+ADeptList.Strings+''','''',''''), '''', True, False)'
else
lRange:=lRange + ' or '+'OrgChildren(OrgKey('''+ADeptList.Strings+''','''',''''), '''', True, False)';
end;
lFlowTask.ExecutorMustBeFuncOwner:=True; //执行者必须是功能拥有者
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaMulti; //执行者范围 多个
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaAll; //执行者范围 所有
lFlowTask.ExecutorAmount:=TTaskExecutorAmount.teaOne; //执行者范围 单个
lFlowTask.ExecutorKinds := [TTaskExecutorKind.ekPersonMember]; //执行者类型 人员成员
lFlowTask.AllowExecutorRange:=lRange; //限定执行者范围
lFlowTask.ExecutorRange:=lRange; //默认执行者范围
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; //任务分配方式 独立分配
lFlowTask.AssignMode := TTaskAssignMode.amTogether; //任务分配方式 共同分配
end; |