起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 3060|回复: 7

流程事件说明

[复制链接]
发表于 2004-4-20 11:23:24 | 显示全部楼层 |阅读模式
AfterFlowFinish : 发生在流程完成后

AfterFlowOut : 发生在流程流转后

AfterFlowStartup : 发生在流程启动后

AfterFlowTransmit : 发生在流程转发后

AfterNotify : 发生在流程通知后

AfterTaskAbort: 发生在任务中止后

BeforeFlowAbort : 发生在流程中止前

BeforeFlowArchive : 发生在流程归档前

BeforeFlowBack :发生在流程回退前

BeforeFlowFinish : 发生在流程完成前

BeforeFlowOut : 发生在流程流转前

BeforeFlowStartup : 发生在流程启动前

BeforeFlowTransmit : 发生在流程转发前

BeforeNotify : 发生在流程通知前

BeforeTaskAbort : 发生在任务中止前


OnCalcProcCondition  :发生在计算某个条件、条件分支环节是否允许通过时

OnCreateFlowBackFlowTasks : 发生在创建回退任务时

OnCreateFlowOutFlowTasks : 发生在创建流转任务时

OnCreateFlowTransmitFlowTasks  : 发生在创建转发任务时

OnCreateNotifyFlowTasks  : 发生在创建通知任务时

OnCreateSubFlow  : 发生在创建子流程时

OnGetAbortTasks  : 发生在得到需要中止的任务时(只有多个任务同时处理时候才会)

OnGetFlowBackTasks  :发生在得到需要回退的任务时(只有多个任务同时处理时候才会)

OnGetFlowNotifyTasks  : 发生在得到需要通知的任务时(只有多个任务同时处理时候才会)

OnGetFlowOutTasks  : 发生在得到需要流转的任务时(只有多个任务同时处理时候才会)

OnGetFlowTransmitTasks  : 发生在得到需要转发的任务时(只有多个任务同时处理时候才会)
回复

使用道具 举报

 楼主| 发表于 2004-7-19 11:01:57 | 显示全部楼层
例如:

流程中所有的事件,按照名称,应该可以看到可以做哪些事情,不能哪些事情,如:流转动作
BeforeFlowOut,这个事件触发在“流转”之前。此事件发生的时候,系统还没有真正去做“流转”,所以这个事件中可以做“判断”到底要不要“流转”,而不能去做一些流转的事情,如:设置是否显示流转框、修改执行者等。
CreateFlowOutFlowTasks,这个事件触发在“流转”正在进行中,并且还没有显示流转对话框。当这个事件触发的时候,“流转”已经真正发生,所以在这个事件中可以做一些,控制流转的工作,如:设置是否显示流转框、修改执行者,修改任务等。
AfterFlowOut,这个事件触发在“流转”之后,当这个事件触发的时候,“流转”动作已经真正,成功完成,所以在这个事件中可以做一些如:更新标记啊,之类的工作。
回复 支持 反对

使用道具 举报

发表于 2004-7-20 09:45:33 | 显示全部楼层
先看看流程启动环节

如果 流程启动规则 为 处理时 ,则当保存数据的时候
  • 触发BeforeApply事件
  • 触发BeforeFlowStartup事件
  • 创建流程实例
  • 触发AfterFlowStartup事件
  • 触发AfterApply事件
    [/list=1]

    如果 流程启动规则 为 流转时 ,则当流转时
    • 根据流转规则,判断是否可以流转
    • 触发BeforeFlowOut事件
    • 触发BeforeFlowStartup事件
    • 根据流程定义查找允许的下一个环节,如果有条件环节、条件分支环节,触发OnCalcProcCondition事件
    • 根据流程下一个环节的执行规则,创建流程任务FlowTask
    • 触发OnCreateFlowOutFlowTasks事件
    • 如果没有屏蔽流转对话框,弹出流转对话框,用户选择任务和执行者等,点击确定;如果取消,则退出执行下面的过程
    • 触发AfterFlowStartup事件
    • 触发AfterFlowOut事件
      [/list=1]
回复 支持 反对

使用道具 举报

发表于 2004-7-20 15:20:50 | 显示全部楼层
在来看看中间环节,当流转时
  • 根据流转规则,判断是否可以流转
  • 触发BeforeFlowOut事件
  • 根据流程定义查找允许的下一个环节,如果有条件环节、条件分支环节,触发OnCalcProcCondition事件
  • 根据流程下一个环节的执行规则,创建流程任务FlowTask
  • 触发OnCreateFlowOutFlowTasks事件
  • 如果没有屏蔽流转对话框,弹出流转对话框,用户选择任务和执行者等,点击确定;如果取消,则退出执行下面的过程
  • 触发AfterFlowOut事件
    [/list=1]
回复 支持 反对

使用道具 举报

发表于 2004-7-20 15:23:10 | 显示全部楼层
结束环节前的环节,流转时
  • 根据流转规则,判断是否可以流转
  • 触发BeforeFlowOut事件
  • 触发BeforeFlowFinish事件
  • 如果流程结束时自动归档,则触发BeforeFlowArchive事件
  • 如果没有屏蔽流转对话框,弹出流转对话框,用户选择任务和执行者等,点击确定;如果取消,则退出执行下面的过程
  • 如果流程结束时自动归档,则触发AfterFlowArchive事件
  • 触发AfterFlowFinish事件
  • 触发AfterFlowOut事件
    [/list=1]
回复 支持 反对

使用道具 举报

发表于 2004-7-20 15:28:02 | 显示全部楼层
从楼上几个帖子,我们可以看到:
BeforeFlowOut  可以做“判断”到底要不要“流转”
CreateFlowOutFlowTasks  可以做一些,控制流转的工作,如:设置是否显示流转框、修改执行者,修改任务等。
AfterFlowOut  可以做一些更新标记的工作
OnCalcProcCondition  适合做复杂流程条件的判断、子流程下直接的条件分支的判断等
回复 支持 反对

使用道具 举报

发表于 2007-11-1 15:32:32 | 显示全部楼层
在流程批处理中,如果当前有多个任务在处理中,执行 FlowControl.FlowOut(nil) 流转时候,会触发 OnGetFlowOutTasks  事件,决定多个任务中哪些任务可以列出来选择 Command.Source,哪些任务默认被选中 Command.Selected ;也可以在这个事件中决定是否弹出选择任务窗体 通过设置 Command.UserConfirm 属性。
回复 支持 反对

使用道具 举报

发表于 2007-11-2 10:40:40 | 显示全部楼层
按照事件触发的情况来分,流程事件可以分为:
入口环节上
  BeforeFlowStartup : 发生在流程启动前
  AfterFlowStartup  : 发生在流程启动后
  OnCreateFlowOutFlowTasks : 发生在创建流转任务时
  BeforeFlowOut : 发生在流程流转前
  AfterFlowOut  : 发生在流程流转后

结束环节上
  BeforeFlowFinish : 发生在流程完成前
  AfterFlowFinish  : 发生在流程完成后
  OnCreateFlowOutFlowTasks : 发生在创建流转任务时
  BeforeFlowOut : 发生在流程流转前
  AfterFlowOut  : 发生在流程流转后

流转时
  OnCreateFlowOutFlowTasks : 发生在创建流转任务时
  BeforeFlowOut : 发生在流程流转前
  AfterFlowOut  : 发生在流程流转后

回退时
  OnCreateFlowBackFlowTasks : 发生在创建回退任务时
  BeforeFlowBack :发生在流程回退前
  AfterFlowBack  :发生在流程回退后

转发时
  OnCreateFlowTransmitFlowTasks  : 发生在创建转发任务时
  BeforeFlowTransmit : 发生在流程转发前
  AfterFlowTransmit  : 发生在流程转发后

通知时
  OnCreateNotifyFlowTasks  : 发生在创建通知任务时
  BeforeNotify : 发生在流程通知前
  AfterNotify  : 发生在流程通知后

流程中止时
  BeforeFlowAbort : 发生在流程中止前
  AfterFlowAbort  : 发生在流程中止后

任务中止时
  BeforeTaskAbort : 发生在任务中止前
  AfterTaskAbort  : 发生在任务中止后

流程归档时
  BeforeFlowArchive : 发生在流程归档前
  AfterFlowArchive  : 发生在流程归档后

在批处理环节上
  OnGetFlowOutTasks      :发生在得到需要流转的任务时
  OnGetAbortTasks        :发生在得到需要中止的任务时
  OnGetFlowBackTasks     :发生在得到需要回退的任务时
  OnGetFlowNotifyTasks   :发生在得到需要通知的任务时
  OnGetFlowTransmitTasks :发生在得到需要转发的任务时
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-22 19:17 , Processed in 0.040663 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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