操作步骤:
1、生成一种特殊类型的消息并且加入到任务列表中
VAR
lOrgURL: TOrgURL;
lTask: TTask;
begin
lTask := TTask.Create;
lOrgURl := TOrgURL.Create('BM1','GW1','RY1');
lTask.Subject:='启动无流程任务' ;
lTask.Kind:='aaaa';
lTask.SenderDeptID := 'BM1';
lTask.SenderPositionID := 'GW1';
lTask.SenderID := 'RY1';
lTask.TaskMessages.AddTaskMessage(nil, lOrgURl, TTaskmessagestate.tmsSend, 0, False); //添加到任务列表
Flow.FlowEngine.SaveTask(lTask); //保存任务
lTask .Free;
end;
2、修改工作任务中的《任务处理》按钮,添加自己的调用函数
在工作任务中引入:业务模型\系统空间\用户界面基础\库\公共组件库
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:\CSMX\FUNC\LCGN1.Func');
if lFuncItem <> nil then
Systemcore.TSystemCore.FuncManager.RunFunc(lFuncItem, '')
else
Dialogs.ShowMessage('找不到功能');
end;
3、修改处理任务的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; |