原帖:http://bbs.justep.com/forum.php?mod=viewthread&tid=23343
因为任务消息要发送给多个接收者,现代码修改如下:
procedure TCustomFLow.UserStartFlow
(FFlowUrl,FDept,FRole,FPerson,FStartProc,FFlowID,FSubject,FDescription: string; FContext: TContext; ExecutorCount : integer; Executors : TExecutors);
var
lBizURL: TBizURL;
lFlowValue: TFlowValue;
lFlowControl: TFlowControl;
lExecutor: TOrgURL;
lQuery : TQuery;
i, j : integer;
begin
lBizURL := TBizURL.Create;
lFlowValue := TFlowValue.Create;
lFlowControl := TFlowControl.Create(FContext);
lExecutor := TOrgURL.Create(FDept, FRole, FPerson);
lBizURL.URL := FFlowUrl;
try
lFlowValue.IDs.Add(FFlowID); //流程ID
lFlowValue.Subject := FSubject; //流程主题
lFlowValue.Description := FDescription; //流程描述
//启动流程实例
lFlowControl.StartupFlow(lBizURL, FStartProc, lExecutor, lFlowValue);
for i := 0 to ExecutorCount - 1 do
begin
lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages.Clear;
lFlowControl.FlowRunnerByIndex[0].CurrentTask.TaskMessages.AddTaskMessage(nil, TExecutor(Executors.FItems).FDept, TExecutor(Executors.FItems).FPostion, TExecutor(Executors.FItems).FPERSON);
end;
//流程实例数据保存到数据库
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SaveToDB;
SaveFLowID(FID);
finally
lFlowControl.Free;
lFlowValue.Free;
lBizURL.Free;
lQuery.Free;
end;
end;
任务消息能正常发送,接收者能正常接收消息,但是任务的执行方式还是不能达到“独占”的需求。
查询任务表中该任务发送的所有消息的执行方式均为“独占”。
麻烦版主再给看看!谢谢 |