起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 613|回复: 3

【搞定】关于流程的通知规则**

[复制链接]
发表于 2006-12-27 11:06:37 | 显示全部楼层 |阅读模式
如图,流程有4个可以结束的功能环节.
需求是在流程完成或中止时通知相关人员.应该如何设置通知规则?
如果在4个功能环节上都设置通知规则,功能环节的流转并不一定是流程的结束环节,因此,在流程未结束时,也会发出通知,这是不需要的.

建议应该允许对流程设置通知规则,比如在流程启动、中止、完成的时候允许发出通知。

5.jpg

138.33 KB, 下载次数: 157

回复

使用道具 举报

 楼主| 发表于 2006-12-27 11:08:58 | 显示全部楼层
另外,如何通过代码发送通知?
回复 支持 反对

使用道具 举报

发表于 2006-12-27 15:06:50 | 显示全部楼层
使用代码创建无流程任务,通过操作TTask对象实现,但是如果希望通过右键菜单“处理”来打开自定义的功能,必须先定义任务关联。

procedure TTaskPubFunc.UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID,
  ASubject, ABizField, ABizFieldValue, ADept, APosition, APerson : string);
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;
try
  lTaskBizDatarec.BizField := ABizField;       //业务数据的关键字段,用于检索业务数据
  lTaskBizDataRec.Value := ABizFieldValue;     //业务数据的关键字段值
  lTaskBizData.BizDataKeys.Add(lTaskBizDataRec);
  //lTaskBizData.BizDatas.Add(lTaskBizDataRec);

  {任务信息的定义}
  lTask.Subject := ASubject;
  lTask.Kind:= '';                             //无流程任务为空
  lTask.TaskType := ATaskTypeID;               //任务类型,如:工作任务:WORKTASKDEAL, WORKTASK
  lTask.TaskTypeName := ATaskTypeName;
  lTask.FuncURL := AFuncURL;                   //处理任务的功能
  lTask.SenderDeptID := ADept;
  lTask.SenderPositionID := APosition;
  lTask.SenderID := APerson;
  lTask.BizDatas.Add(lTaskBizData);            //设置业务数据与任务关联关系, 保存任务业务关联信息到‘系统空间\系统数据库\任务业务数据表’

  lTask.TaskMessages.AddTaskMessage(nil, lOrgURl, TTaskmessagestate.tmsSend, 0,
    False);                                    //添加到任务列表

  {保存任务}
  Flow.FlowEngine.SaveTask(lTask);             //保存任务信息到‘系统空间\系统数据库\任务表’,任务消息到‘任务消息表’
finally
  //lTaskBizDataRec.Free;
  //lTaskBizData.Free;
  lTask .Free;
  lOrgURL.Free;
end;

end;

//调用UserStartTask
procedure TDMCJWLCRW.CreateCustomTaskClick(Sender: TObject);
VAR
  tpf : TTaskPubFunc;
  AFuncURL, ATaskTypeName, ATaskTypeID, ASubject, ABizField, ABizFieldValue,
  ADept, APosition, APerson : string;
begin
  if dsb.DataSet.FieldByName('GUID').AsString = '' then exit;

  tpf := TTaskPubFunc.Create(Self.Context);
  try
    AFuncURL := 'Biz:\PXAL\ZDYYWGN.Func';
    ATaskTypeName := '我的功能';
    ATaskTypeID := 'MYCUSTOMFUNCDEAL';
    ASubject := dsb.DataSet.FieldByName('Subject').AsString;
    ABizField := 'BIZ:\PXAL\DEMOSJK.DATABASE\ZDYRWGLDEMOB.TABLE\GUID.Field';
    ABizFieldValue := dsb.DataSet.FieldByName('GUID').AsString;
    ADept := dsb.DataSet.FieldByName('FDept').AsString;;
    APosition := dsb.DataSet.FieldByName('FPosition').AsString;;
    APerson := dsb.DataSet.FieldByName('FPerson').AsString;;

    tpf.UserStartTask(AFuncURL, ATaskTypeName, ATaskTypeID, ASubject, ABizField,
      ABizFieldValue, ADept, APosition, APerson);

    jsDialogs.ShowMsg('启动 ' + ASubject + ' 成功', '启动无流程任务');
  finally
    tpf.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2006-12-30 14:44:32 | 显示全部楼层
楼主,还有问题吗?
没有就结贴了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-5-19 07:26 , Processed in 0.048190 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表