起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 374|回复: 11

【搞定】急!流程流转的问题?**

[复制链接]
发表于 2007-3-29 21:01:49 | 显示全部楼层 |阅读模式
问题如图。
急待解决。

谢谢

proc.gif

28.46 KB, 下载次数: 151

回复

使用道具 举报

发表于 2007-3-30 09:15:41 | 显示全部楼层
可以使用代码实现:

在最后一个环节流转之后的事件种,使用代码将当前流程所有未处理的任务中止,然后中止流程。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-30 11:40:09 | 显示全部楼层
最初由 jiahaiminghr 发布
[B]可以使用代码实现:

在最后一个环节流转之后的事件种,使用代码将当前流程所有未处理的任务中止,然后中止流程。 [/B]


谢谢
不过还有个问题:

假设[业主]流转到了[主管部门]和[带动办]
此时,[带动办]有1条任务(记为任务1)

此时,在[带动办]处理这条任务前,[主管部门]又流转到了[发改委]处,而[发改委]又在带动办处理[任务1]前又再流转给[带动办]

此时会出现: [带动办]会看到2条任务,如何能防止这种情况,即保证[带动办]不管什么时候只能看到1条任务呢?
回复 支持 反对

使用道具 举报

发表于 2007-3-30 16:17:03 | 显示全部楼层
去掉“主管部门审核”环节后的and可以吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-30 17:03:38 | 显示全部楼层
使用代码将当前流程所有未处理的任务中止,然后中止流程。
=== 这个如何实现? 有没帖子说明? 在论坛里也搜不到。搜 “流程 中止 任务” 都没有,不然就是超时。

去掉“主管部门审核”环节后的and可以吗?
== 这个还没结合中止流程来试,现在还不知道行否。
回复 支持 反对

使用道具 举报

发表于 2007-3-30 17:12:13 | 显示全部楼层
1、中止任务
   首先查找到相关任务,然后设置相关的任务和任务消息的状态为“中止”
请参考:
http://bbs.justep.com/forum.php? ... hlight=%D6%D0%D6%B9

2、我认为:
在“主管部门审核”之前的and已经为“带动办”发出了任务,所以可以去掉“主管部门审核”之后的and环节,保证“带动办”只受到一个任务
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-30 20:05:17 | 显示全部楼层
谢谢,基本实现了,还有个问题

2、我认为:
==其实 “带动办”还是会收到2个任务,不过终止流程和任务后,另一个任务也消失了,这就可以了,不用管这点了。

还有个问题就是:
  用终止流程的话,通知不见了。

我原来有自定义流程审批完的通知,是这样的:

procedure TYJDSH.FlowBroker1CreateNotifyFlowTasks(Sender: TObject; Command: TFlowNotifyCommand);
begin
  if Command.FlowTasks.Count<= 0 then
    exit;
  //如果是结束,则通知第一级
// if (FlowBroker1.FlowControl.CurrentProcUnit.SuccedentUnits[0].ID = 'FINISH') then
//  begin
    Command.FlowTasks[0].Subject := '通知:' + dsb_XMJD.dataset.fieldByname('XMMC').asstring + '的' + Command.FlowControl.Proc.DisplayName + '由' + SysFunCLib.TFunJustep.GetCurrentLoginUser(ConText) + '审批完成!';
    Command.FlowTasks[0].Description :=  Command.FlowTasks[0].Subject ;
    Command.UserConfirm := False;
//  end ;
end;

经过断点,发现有执行到,但第一环节确实收不到通知。而不用终止的方式的话,第一环节是可以收到通知的。
注:通知规则已经在流程中设置好了。
回复 支持 反对

使用道具 举报

发表于 2007-3-31 09:26:42 | 显示全部楼层
1、中止流程是指6楼说的中止任务后,又用代码中止流程吗?
  如果是因为这样导致发出的通知看不到,请尝试只中止任务,而不中止流程。
  然后由接收通知的人把任务结束掉,然后看流程是否被自动结束。
(以上操作,是假设你的通知任务状态是正常的,而且接受者的定义也是正确的)

2、另外,如果实在不行,能否在带动办之后再加一个专门用来通知的环节
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-31 13:53:12 | 显示全部楼层
晕.. 发现不止通知不正常,还有个更严重的问题:

是这样的:
如果流程中止的话,怎么结束**所有环节**多余的任务(即工作台上显示的记录),而不是只是“带动办”环节的? 即这个流程下相关的所有任务。

因为刚才测试过程中又发现:如果“带动办”提交审批的话,其它环节已经提交过的任务还是残留着,这样会导致重复审批了。
回复 支持 反对

使用道具 举报

发表于 2007-3-31 14:25:41 | 显示全部楼层
最初由 jiahaiminghr 发布
[B]可以使用代码实现:

在最后一个环节流转之后的事件种,使用代码将当前流程所有未处理的任务中止,然后中止流程。 [/B]




楼主,不是直接结束流程。而是接收当前流程中的其他任务以及该任务对应的任务消息。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-28 20:54 , Processed in 0.042301 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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