步骤:
1、生成一种特殊类型的任务并且加入到任务列表中;
procedure TMainForm.AddNewMessage(MessageKind :String);
var
lOrgURL: TOrgURL;
lTask: TTask;
begin
lTask := TTask.Create;
lOrgURl := TOrgURL.Create('XSB','LCCS','LJQ');
lTask.Subject:='自定义类型消息' ;
lTask.Kind:=MessageKind; //自定义的任务类型参数
lTask.SenderDeptID := 'XSB';
lTask.SenderPositionID := 'LCCS';
lTask.SenderID := 'LJQ';
try
lTask.TaskMessages.AddTaskMessage(nil, lOrgURl,
TTaskmessagestate.tmsSend, 0, False); //添加到任务列表
Flow.FlowEngine.SaveTask(lTask); //保存任务
finally
lTask .Free;
end;
2、生成一个功能,这个功能是从 “业务模型\系统空间\系统功能\业务流程\工作任务”功能继承下来;
3、在继承的子类的“任务处理”按钮中添加自己的调用函数,来处理自定义类型的任务消息;
procedure TMainForm.actProcTaskExecute(Sender: TObject);
begin
if actProcTask.Enabled then
if SelectedTask.Kind= 'aaaa' then
begin
//调用启动窗体
TaskRunFunc(); //自己调用的功能
end
else
begin
OpenTask(SelectedTask); //启动其他类型的任务
end;
end;
procedure TMainForm.TaskRunFunc();
var
lFuncItem: TOperatorFuncItem;
begin
lFuncItem:=CommonComponentLibrary.TCommonComponentLibrary.
UserSystem.FindFuncItem('Biz…'); //参数是调用功能的BIZURL
if lFuncItem <> nil then
Systemcore.TSystemCore.FuncManager.RunFunc(lFuncItem, ''); //启动功能
else
Dialogs.ShowMessage('找不到功能');
end;
4、修改子类中“处理任务”的Enabled属性,使自己的特殊类型消息可以执行。
function TMainForm.TaskCanExecute(ATask: TTask): Boolean;
begin
if ATask.Kind = 'aaaa' then
begin
Result := True;
end
else
begin
Result := (ATask.ProcURL <> '') and
(GetTaskKind(ATask) in Flow.SFlowCanExecuteTaskKinds);
end;
end;
提示: 在继承的功能中引用 “业务模型\系统空间\用户界面基础\库\公共组件库” |