经过我的测试,用楼主的方法。我的测试结果是
----------30808875
方法1测试开始
----------30809265
方法1测试结束
390毫秒
----------------测试代码
procedure TMainForm.Button1Click(Sender: TObject);
var
lBizURL: TBizURL;
lFlowValue: TFlowValue;
lFlowControl: TFlowControl;
lExecutor: TOrgURL;
v_b: Boolean; //是否定位成功
lFlowGUID: String;
lTaskGUID: String;
AutoSendFlag: String;
AutoOutSendFlag: String;
sNames: String;
SenderList: String;
OutSenderList: String;
SendUnit: String;
sOutNames: string;
OutSendUnit: String;
SenderName: String;
SenderJG: String;
SenderBM: String;
SenderGW: String;
SendSubject: String;//发送标题
lOrgUnit: Business.Model.Org.Torgunit;
// lQuery : Business.Data.TQuery;
v_time: TDateTime;
begin
CSSDGGZY.TCSSDGGZY.Test_WriteInfo('方法1测试开始');
lBizURL := TBizURL.Create;
lFlowValue := TFlowValue.Create;
lFlowControl := TFlowControl.Create(Self.Context);
lExecutor := TOrgURL.Create('bm1', 'gw1', 'ry1');
lBizURL.URL := 'Biz:\OPERATION\CSLCQD_LC.Proc';
try
lFlowValue.IDs.Add('2607B0A932F846EA8A206401544ACF13');//流程ID
lFlowValue.Subject := '启动方法1流程'; //流程主题
//lFlowValue.Description := ADescription;//流程描述
//启动流程实例
lFlowControl.StartupFlow(lBizURL, 'CSLCQD_GN1', lExecutor, lFlowValue);
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.State := business.Model.Flow.TTaskState.tsStarted;
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.ExtendAttributeAsString['ESField01']:=Business.System.SysUtils.FormatDateTime('yymmddhh:nn', Business.Data.SysSrv.SysService.Time );
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.ExtendAttributeAsString['ESField02']:='收文';
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.Subject := '方法1_'+ sysutils.DateTimeToStr(sysutils.Now);
// lFlowControl.FlowRunnerbyIndex[0].CurrentTask.PrevGUID := FlowBroker1.FlowControl.CurrentTask.GUID;//填充前任务ID
{ if edit1.Text <>'0' then
begin
v_time:=Business.Data.SysSrv.SysService.Time+ObjectHelper.toFloat(edit1.text);
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.ExtendAttributeAsString['ESField04']:=Business.System.SysUtils.FormatDateTime('yyyy-mm-dd hh:nn:ss', v_time);
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.ExtendAttributeAsString['ESField05']:='0';
end;
}
//流程实例数据保存到数据库
lFlowControl.FlowRunnerbyIndex[0].CurrentTask.SaveToDB;
finally
lFlowControl.Free;
lFlowValue.Free;
lBizURL.Free;
lExecutor.Free;
// lQuery.Free;
end;
CSSDGGZY.TCSSDGGZY.Test_WriteInfo('方法1测试结束');
end; |