起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 370|回复: 10

【搞定】如何代码控制流程的流转**

[复制链接]
发表于 2007-7-23 17:12:24 | 显示全部楼层 |阅读模式
比如一个流程:A-B-C
有一种特殊情况是某个岗位下面的人员,就直接由流程A转到C,而无需经过流程B。
取岗位或者限定部门之类的都没任何问题,我现在的问题是如何将A的下一流程点的功能指定到C,我用Command.FlowTasks.FindFlowTask('C')有问题,FlowBroker1.FlowControl.CurrentProcUnit.GetSuccedentUnits好像也有问题,还请帮忙看看!
回复

使用道具 举报

发表于 2007-7-23 17:25:48 | 显示全部楼层
改一下你的流程图,A下边就分出来两个支,然后在A环节的执行规则中来判断具体要走哪个分支。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-23 19:15:37 | 显示全部楼层
最初由 lisb 发布
[B]改一下你的流程图,A下边就分出来两个支,然后在A环节的执行规则中来判断具体要走哪个分支。 [/B]


我知道这样改可以实现,但是这牵涉到几乎所有的流程,所以不想在表中增加字段来做判断条件,影响太大了一点。
比如所有的流程都有提交和审核两个点,如果提交人和审核人是同一个,那么提交完了之后再给自己审核,没有任何意义啊!
所以想通过代码来控制流转,不需要更改表结构,也简单一点。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-24 10:36:06 | 显示全部楼层
没人回答么?很紧急的问题啊!!
自己顶一下,别沉了!!!
回复 支持 反对

使用道具 举报

发表于 2007-7-24 14:39:44 | 显示全部楼层
流程可以这样画,条件分支的条件可以用一个参数来做判断,不用改表结构。

aa.jpg

32.81 KB, 下载次数: 183

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-25 11:01:30 | 显示全部楼层
最初由 lisb 发布
[B]流程可以这样画,条件分支的条件可以用一个参数来做判断,不用改表结构。 [/B]


我建了一个业务参数,按照你的图示来改流程。
我在A的OnCreateFlowOut事件里来设置业务参数的值,代码如下:
procedure TMainForm.FlowBroker1CreateFlowOutFlowTasks(Sender: TObject; Command: TFlowOutCommand);
var
    lParam: TBizParam;
    lBizURL: TBizURL;
    lContextCurrent: Business.Model.TContextCurrent;
    postid:string;
    lOrgURL: TOrgURL;
begin
     lContextCurrent := Business.Model.TContextCurrent.Create(Self.Context);
     postid:=lContextCurrent.PersonMember.Parent.id;
     lBizURL := TBizURL.Create;
     lBizURL.URL := 'Biz:\NRJBYWKJ\CCCSZ.ParamGroup';
     lParam := SystemUtils.TContextUtils.GetParam(Context, lBizURL.URL, 'GW');
     lParam.Value := '0';
     if postid='JL' then lParam.Value := '1';
end;

但是好像对业务参数的赋值不成功,不知道问题在那里,还请帮忙看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-25 15:58:42 | 显示全部楼层
没人搭理??
回复 支持 反对

使用道具 举报

发表于 2007-7-25 16:56:10 | 显示全部楼层
lBizURL.URL := 'Biz:\NRJBYWKJ\CCCSZ.ParamGroup';
lParam := SystemUtils.TContextUtils.GetParam(Context, lBizURL.URL, 'GW');

改成:
lBizURL.URL := 'Biz:\NRJBYWKJ\CCCSZ.ParamGroup/GW.Param';
lParam := lContextCurrent.GetParam(lBizURL);
回复 支持 反对

使用道具 举报

发表于 2007-7-26 09:08:53 | 显示全部楼层
8楼,两段代码是等价的!
回复 支持 反对

使用道具 举报

发表于 2007-7-26 09:49:42 | 显示全部楼层
汗,应该是一样的,没注意。

什么叫好像没成功。
那你跟踪一下,看在事件结束时是否赋值成功?
或者在后面重新获取参数取值看看能否取到
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-13 02:39 , Processed in 0.042832 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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