发送通知的方法如下:
static procedure TTaskFunctionLibrary.NotifyFlowTask(ATask:TTask;AFuncURL,ASubject,
ARecieveDept,ARecievePosition,ARecievePerson,ASenderDept,ASenderPosition,
ASenderPerson:string);
var
lOrgURL : TOrgURL;
lTask : TTask;
lTaskBizData : TTaskBizData;
lTaskBizDataRec : TTaskBizDataRec;
begin
lTask := TTask.Create;
{任务接受者}
lOrgURl := TOrgURL.Create(ARecieveDept, ARecievePosition, ARecievePerson);
lTask.FlowGUID:=ATask.FlowGUID;
lTask.ProcURL:=ATask.ProcURL;
// lTask.ProcUnitID:=ATask.ProcUnitID;
{任务业务关联数据定义}
lTask.BizDatas.Assign(ATask.BizDatas);//设置业务数据与任务关联关系, 保存任务业务关联信息到‘系统空间\系统数据库\任务业务数据表’
try
{任务信息的定义}
lTask.Subject := ASubject;
lTask.Kind:= 'ftkNotify';
// lTask.TaskType:=ATask.TaskType;
// lTask.TaskTypeName:=ATask.TaskTypeName;
lTask.FuncURL := AFuncURL; //处理任务的功能
lTask.SenderDeptID := ASenderDept;
lTask.SenderPositionID := ASenderPosition;
lTask.SenderID := ASenderPerson;
lTask.TaskMessages.AddTaskMessage(nil, lOrgURl, TTaskmessagestate.tmsSend, 0,
False); //添加到任务列表
{保存任务}
Flow.FlowEngine.SaveTask(lTask); //保存任务信息到‘系统空间\系统数据库\任务表’,任务消息到‘任务消息表’
finally
lTask .Free;
lOrgURL.Free;
end;
end;
在流程结束时,调用以上方法发送通知
procedure TJKSP.FlowBrokerBeforeFlowFinish(Sender: TObject; Command: TFlowFinishCommand);
var
lCurOper:TOperator;
begin
Inherited;
TJKD(MainInfoBroker.Info).Checkout(False);
lCurOper:=SystemUtils.TContextUtils.GetOperator(Context);
TaskFunctionLibrary.TTaskFunctionLibrary.NotifyFlowTask(
Command.FlowControl.CurrentTask,'Biz:\ECIS\JKSPTZ.FUNC',
'您的借款申请已通过审批,单号为:'+
TJKD(MainInfoBroker.Info).DataSetMData.FieldByName('bill_code').AsString,
'','',TJKD(MainInfoBroker.Info).DataSetMData.FieldByName('maker_id').AsString,
lCurOper.DefaultPosition.DeptID,lCurOper.DefaultPosition.PositionID,lCurOper.ID);
end;
问题是:
在流程定义中未定义通知规则.
我要求打开通知的功能是代码中指定的'Biz:\ECIS\JKSPTZ.FUNC',
但是,实际打开的是发送通知的流程环节的功能.
请问如何解决? |