起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 581|回复: 0

主流程流向子流程的说明

[复制链接]
发表于 2004-8-4 15:10:09 | 显示全部楼层 |阅读模式
如果主流程和子流程引用的不是一个“业务元素”且“创建子流程实例”,那么需要注意,子流程实例创建不是在打开子流程的入口功能,且处理数据或者流转时创建,而是在主流程流转到子流程时创建。创建流程实例需要一个必要条件:给流程字段赋值,所以:

1、创建子流程实例
2、主子流程不是一个业务元素
3、主流程流向子流程时候就创建流程实例,那是子流程的入口还没有运行,主流程又没有那个字段引用子流程的元素所以就出问题了

解决方法:
方法一:主子流程引用一个业务元素
方法二:在主流程中,某个字段引用子流程的业务元素
方法三:就是写代码,在创建流程实例时,超载,将子流程的流程ID值赋进去。
在主流程的流程代理的 OnCreateSubFlow 事件中写代码,例如:
procedure TMainForm.FlowBroker1CreateSubFlow(Sender: TObject; Command: TCreateSubFlowCommand);
var
  lSubFlowInfo: TSubFlowInfo;
  lGUID: string;
begin
  lGUID := JSCommon.CreateGUIDStr;
  lSubFlowInfo := Command.SubFlowInfos.Add;
  lSubFlowInfo.FlowValue.IDs.Add(lGUID);  /给子流程的实例传值
  lSubFlowInfo.FlowValue.Subject :   //赋子流程主题
  JSDialogs.ShowMsg(lGUID, '');
end;
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-5-7 15:31 , Processed in 0.040579 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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