function FlowGetTaskParam(AInStates: TTaskStates; AInKinds: TFlowTaskKinds;
const AInProcUnitIDs: string; AInclude: Boolean;
AInludeIsAsynchronous: Boolean = False): TFlowGetTaskParam;
begin
Result.InStates := AInStates;
Result.InKinds := AInKinds;
Result.InProcUnitIDs := AInProcUnitIDs;
Result.Include := AInclude;
Result.IncludeAsynchronous := AInludeIsAsynchronous;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var
lTasks: TList;
lParam: TFlowGetTaskParam;
i: Integer;
begin
lTasks := TList.Create;
try
lParam := FlowGetTaskParam([TTaskState.tsFinished], [], FlowBroker1.FlowControl.CurrentProcUnit.LeadingUnits[0].ID, True, True);
FlowBroker1.FlowControl.Flow.GetLeadingTasks(FlowBroker1.FlowControl.CurrentTask, lParam, lTasks);
for i:=0 to lTasks.Count-1 do
Memo1.Lines.Add(SysUtils.Format('OrgKey(''%s'', ''%s'', ''%s'')', [TTask(lTasks[0]).TaskMessages[0].ReceiverDeptID, TTask(lTasks[0]).TaskMessages[0].ReceiverPositionID, TTask(lTasks[0]).TaskMessages[0].ReceiverID]));
finally
lTasks.Free;
end;
end;
这样得到的OrgKey就是需要的组织机构表达式了
当然你要根据需要得到的是部门还是岗位来写了 |