procedure TInformForm.OnSENDClick(Sender:TObject);//发送通知
var
lOrgURL: TOrgURL;
lTask: TTask;
lTaskBizData : TTaskBizData;
lTaskBizDataRec : TTaskBizDataRec;
begin
lTask := TTask.Create;
{任务接受者}
//lOrgURl := TOrgURL.Create(ADept, APosition, APerson);
{任务业务关联数据定义}
lTaskBizData := TTaskBizData.Create;
lTaskBizDataRec := TTaskBizDataRec.Create;
//业务数据的关键字段,用于检索业务数据
lTaskBizDatarec.BizField := 'Biz:\HGOPERATION\HGOPERATIONDB.DATABASE\t_EvectionReport.Table\LSH.Field';
//业务数据的关键字段值
lTaskBizDataRec.Value := ds.DataSet.FieldByName('LSH').AsString;
lTaskBizData.BizDataKeys.Add(lTaskBizDataRec);
{任务信息的定义}
//通过部门、岗位、人员创建组织单元
lOrgURl := TOrgURL.Create('JSFZC','KFCS','zj');
lTask.Subject:='通知';
lTask.Kind:= ''; //无流程任务为空
lTask.TaskType := 'inf';//自定义任务关联的任务ID
lTask.TaskTypeName := '通知';//自定义任务关联的任务名称
//处理任务的功能
lTask.FuncURL := 'Biz:\HGOPERATION\Inform.Func';
//lOrgURl := TOrgURL.Create(ADept, APosition, APerson);
lTask.SenderDeptID := 'JSFZC';
lTask.SenderPositionID := 'KFCS';
lTask.SenderID := 'zj';
//设置业务数据与任务关联关系,保存任务业务关联信息到'系统空间\系统数据库\任务业务数据表’
lTask.BizDatas.Add(lTaskBizData);
try
begin
lTask.TaskMessages.AddTaskMessage(nil, lOrgURl,
TTaskmessagestate.tmsSend, 0, False);
//添加到任务消息列表里
Flow.FlowEngine.SaveTask(lTask);//保存任务
end
finally
lTask .Free;
end;
end;
procedure TInformForm.BizFormClose(Sender: TObject; var Action: TCloseAction);
var
Feng: TFlowEngine;
fparam:TLoadFlowParam;
iquery: TQuery;
guid: string;
tparam: TLoadTaskParam;
begin
Feng:=TFlowEngine.Create();
fparam:=TLoadFlowParam.Create();
tparam:=TLoadTaskParam.create();
iquery:=TQuery.Create(nil);
iquery.ConnectionString:=BizObjConsts.cSysDatabaseConnectionString;
iquery.CommandText:='select FFlowGuid from TFlowID where FID='''+ds.DataSet.FieldByName('LSH').AsString+'''';
iquery.Open;
guid:=iquery.Fields[0].AsString;
fparam.GUIDs.Add(guid);
tparam.FlowGUIDs.Add(guid);
Feng.DeleteFlows(fparam,tparam);
Feng.DeleteTasks(tparam);
end;
待办里创建任务实现了,但窗口关闭后,待办里的任务消失掉这么弄? |