|

楼主 |
发表于 2009-10-28 14:03:31
|
显示全部楼层
1、代码如下:
lFlowParam := TLoadFlowParam.Create; //流程参数
lTaskParam := TLoadTaskParam.Create; //任务参数
lTasks := TTasks.Create;
lTaskslist:=TList.Create;
try
DoGetFlowGUIDs(flow_field_value,lFlowParam.GUIDs);
lTaskParam.States := [TTaskState.tsStarted, TTaskState.tsProcessing, TTaskState.tsWaiting];
//以给定的条件查询任务(这里给定的条件由lFlowParam和lTaskParam共同给出,lFlowParam的限定条件是流程Guid值,lTaskParam的限定条件:是按照任务状态,只查询出需要处理的任务)
Flow.FlowEngine.GetTasks(lFlowParam, lTaskParam, lTasks);
if lTasks.Count<>0 then
begin
lTaskMessage:=lTasks.Items[0].TaskMessages[0];
lTaskslist.Add(lTasks.Items[0]);
lFlowContext := GetFlowContext(GetPositionContext);
if lFlowContext = nil then
Exit;
lOrgUrl := TOrgUrl.Create(lTaskMessage.ReceiverDeptID,lTaskMessage.ReceiverPositionID, lTaskMessage.ReceiverID);
try
FFlowControl.ExecuteTask(lTasks.Items[0], lOrgUrl);
lFuncURL := GetTaskFuncURL(lTasks.Items[0]);
lFunc := GetTaskFunc(lFlowContext, lFuncURL);
FFlowControl.Func := lFunc;
finally
lOrgUrl.Free;
end;
FFlowControl.FlowBack(lTaskslist);
end;
finally
lFlowParam.Free;
lTaskParam.Free;
lTasks.Free;
lTaskslist.Free;
end;
2、在这样的代码基础上,能用你给的链接中的方法吗?
我在窗体上放了个flowbroker,创建了事件,并写了代码:
procedure TMainForm.FlowBroker1CreateFlowBackFlowTasks(Sender: TObject; Command: TFlowBackCommand);
begin
dialogs.ShowMessage(tjr);
end;
结果表明这段代码没有执行。 |
|