起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 2497|回复: 1

代码如何指定下个环节的接受者

[复制链接]
发表于 2004-5-24 09:43:46 | 显示全部楼层 |阅读模式
流程环节间的逻辑控制、业务数据的传递可以直接通过设置过程模型实现,如果需要根据业务数据来控制流程的流转,就需要在流程环节的OnCreateFlowOutTasks事件中写代码来实现。因此想指定下一环节的接受者需要在OnCreateFlowOutTasks事件中写代码实现,按照流程环节ID,查找到对应这个环节的流程任务,然后根据业务数据对这个流程任务的执行者赋值。

1、代码修改执行者列表

procedure TMainForm.FlowDDLRCreateFlowOutFlowTasks(…;…);
var
  lFlowTask:TFlowTask;
  lOrgURL: TOrgURL;
begin
  lFlowTask := Command.FlowTasks.FindFlowTask(ANextProcUnit);//根据任务环节查找任务
  if lFlowTask <> nil then
  begin
    lFlowTask.Executors.Clear;   //删除缺省执行者
    lOrgURL := TOrgURL.Create('XSB','XSY',ZXX' ); //部门、岗位、人员创建组织单元
    lFlowTask.Executors.Add(lOrgURL);//添加执行者
  end;
end;

2、代码修改执行者表达式

procedure TMainForm.FlowDDLRCreateFlowOutFlowTasks(…);
var
  lFlowTask:TFlowTask;
  lOrgURL: TOrgURL;
  Range:String;
begin
  lFlowTask := Command.FlowTasks.FindFlowTask('DDSH');
  if lFlowTask <> nil then
  begin
    Range:= 'OrgSelect(orgcondition('+''''+'*.psm'''+',ISPLAYNAME =
    '+''''+'李海萍'+''''+','+''''+'''))'
    lFlowTask.ExecutorRange:=Range; //执行组织机构表达式
  end;
end;
回复

使用道具 举报

发表于 2004-7-20 19:57:11 | 显示全部楼层
通过Command.FlowTasks.FindFlowTask得到指定环节的流程任务FlowTask,然后指定这个流程任务的各种属性可以指定任务的执行者表达式、执行者列表,执行者类型等

1、AllowExecutors:允许的执行者TOrgUnits
2、AllowExecutorRange:允许的执行者表达式String
3、ExecutorMustBeFuncOwner:执行者必须是功能的拥有者
4、Executors:执行者
5、ExecutorRange:执行者表达式
6、ExecutorAmount:执行者范围(TTaskExecutorAmount.teaMulti多个 teaOne单个 teaAll所有)
7、ExecuteMode:任务执行方式(TTaskExecuteMode.emSimultaneous同时 emSequential顺序 emMonopolize独立 emExclusive独占)
8、AssignMode:任务分配方式 (TTaskAssignMode.amTogether共同分配 amSingleness独立分配)
9、ExecutorKinds执行者类型

例如:
  lFlowTask := Command.FlowTasks.FindFlowTask(ANextProcUnit);
  if lFlowTask <> nil then
  begin
    lFlowTask.Executors.Clear;   //删除缺省执行者
    lOrgURL := TOrgURL.Create(ADept, ARole, APerson);
    lFlowTask.Executors.Add(lOrgURL);
  end;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-5-3 05:33 , Processed in 0.043644 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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