|
unit TaskPubFunc;
interface
uses
Business.System, Business.Model, Business.Model.Flow, Business.Model.Org;
type
TTaskPubFunc = class(TBizLibrary)
private
{private declarations}
public
procedure UserStartFlow(AFlowUrl,ADept,ARole,APerson,AStartProc,AFlowID,
ASubject,ADescription:string);
implementation
procedure TTaskPubFunc.UserStartFlow(AFlowUrl, ADept, ARole, APerson, AStartProc, AFlowID,
ASubject, ADescription:string);
var
lBizURL: TBizURL;
lFlowValue: TFlowValue;
lFlowControl: TFlowControl;
lExecutor: TOrgURL;
begin
lBizURL := TBizURL.Create;
lFlowValue := TFlowValue.Create; //流程实例
lFlowControl := TFlowControl.Create(Self.Context); //流程控制组件
lExecutor := TOrgURL.Create(ADept, ARole, APerson); //执行者
lBizURL.URL := AFlowUrl; //流程url
try
lFlowValue.IDs.Add(AFlowID); //流程ID
lFlowValue.Subject := ASubject+AFlowID; //流程主题
lFlowValue.Description := ADescription; //流程描述
//启动流程实例 过程url 环节ID 执行者 流程实例值
lFlowControl.StartupFlow(lBizURL, AStartProc, lExecutor, lFlowValue);
//流程发送者信息
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SenderDeptID := ADept;
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SenderPositionID := ARole;
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SenderID := APerson;
//流程实例数据保存到数据库
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SaveToDB;
finally
lFlowControl.Free;
lFlowValue.Free;
lBizURL.Free;
end;
end; |
|