起步软件技术论坛-X3

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

【结贴】代码控制子流程并添加执行者,**

[复制链接]
发表于 2008-6-19 09:59:13 | 显示全部楼层 |阅读模式
通过以下代码控制子流程并添加执行者,但lFlowTask := lSubFlowInfo.EntryFlowTasks.FindFlowTask('GZPJXJLLR')的返回值为空,这句找的环节是指子流程启动环节。
procedure TEJDHPGZKS.FlowBroker1CreateSubFlow(Sender: TObject; Command: TCreateSubFlowCommand);
var
  lSubFlowInfo: TSubFlowInfo;
  lGUID: string;
  lFlowTask    : TFlowTask;
  sDeptID    : String;
  sPosiID    : String;
  sPersID    : String;
begin
  lGUID := sdsMasterBroker.dataset.fieldbyname('GDH').asstring;
  lSubFlowInfo := Command.SubFlowInfos.Add;
  lSubFlowInfo.FlowValue.IDs.Add(lGUID);  //给子流程的实例传值
  lSubFlowInfo.FlowValue.Subject :=lGUID+':'+sdsMasterBroker.dataset.fieldbyname('GZNR').asstring;;   //赋子流程主题
  //JSDialogs.ShowMsg(lGUID, '');
  lFlowTask := lSubFlowInfo.EntryFlowTasks.FindFlowTask('GZPJXJLLR');//根据任务环节查找任务
      if lFlowTask <> nil then
      begin
        lFlowTask.Executors.Clear;
           //删除缺省执行者
        sPersID := Command.FlowControl.Executor.PersonID;
        sDeptID:=Command.FlowControl.Executor.DeptID;
        sPosiID:=Command.FlowControl.Executor.PositionID;
        lFlowTask.Executors.Add(sDeptID,sPosiID,sPersID);
      end;
end;
回复

使用道具 举报

发表于 2008-6-19 10:14:17 | 显示全部楼层
楼主少了这句
lSubFlowInfo.EntryFlowTasks.Assign(Command.EntryFlowTasks);
FlowTask := lSubFlowInfo.EntryFlowTasks.FindFlowTask('GZPJXJLLR');//根据任务环节查找任务
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-19 10:20:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2008-6-19 10:23:03 | 显示全部楼层
好的,谢谢反馈!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 05:41 , Processed in 0.039535 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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