SlideShare une entreprise Scribd logo
1  sur  25
Workflow Miscellaneous
Overview
• 前面介绍了如何使用WFB定义一个简单的流程,
  如何在EBS中使用该流程, 以及工作流的表/API
  等. 除了这些基本的特性之外, 这里将介绍一些
  其他的高级特性和细节:
 –   Process Selector/Callback
 –   活动状态
 –   活动超时(timeout), 延迟(deferred), 停滞(stuck)
 –   Respond类型消息
 –   通知重新分配(Reassign)/假期规则(Vacation Rule)/工
     作列表(worklist)
Process Selector
• 根据工作流的设计, 一个Item Type可以包含
  多个Process, 那么在工作流引擎在启动一个
  工作流时会如何选择启动哪一个流程呢? 有
  如下两种方式:
  1, wf_engine.CreateProcess 传入process参数
  为非null值, 从而启动指定的流程;
  2, wf_engine.CreateProcess 传入process参数
  为null值, 则会调用Item Type的selector过程,
  该过程会返回流程的名称.
Process Selector
           - WFB Setup
• 如何为Item Type指定一个selector过程呢? 在
  WFB中打开Item Type节点的属性, 在Selector
  字段中指定selector过程, 遵循如下格式
  <package>.<procedure>, 如下:
Process Selector
                     - API Standard
• selector过程必须遵循如下的API格式:
    procedure <procedure_name>
      ( itemtype          in     varchar2,
        itemkey                  in         varchar2,
        actid                    in         number,
        command           in     varchar2,
        resultout         out    varchar2) ...
 参数说明:
 itemtype               Item Type的内部名称
 itemkey                Item Key
 actid                  过程被调用时的活动id, 当command参数为
                        RUN时此参数为null
 command                调用模式, 可以是RUN, TEST_CTX, SET_CTX,
                        后两者用于selector过程的回调功能; 调用
                        wf_engine.createprocess未指定process参数时传
                        入command参数为RUN
 resultout              对于RUN/TEST_CTX模式返回值, RUN模式返
                        回选择的流程名称
Process Selector
                                  - A toy demo
•   定义wfdemo.selector过程如下, 始终返回default流程, 仅作为演示:
    procedure selector(itemtype in varchar2,
                         itemkey in varchar2,
                         actid in number,
                         command in varchar2,
                         resultout out varchar2) is
    begin
           if(command = 'RUN') then
                         resultout := ‘DEFAULT';
           end if;
    end;
•   另外定义一个dummy流程, 如图:
•   上传该wft文件, 使用如下代码运行该工作流(WAP页面必须指定process)
     declare
       v_itemtype varchar2(30) := 'LEAVEREQ';
       v_itemkey varchar2(30) := '10';
     begin
       wf_engine.createprocess(v_itemtype, v_itemkey, null);
       wf_engine.SetItemAttrText(v_itemtype, v_itemkey, 'LEAVEREQUSTER', 'OPERATIONS');
       wf_engine.startProcess(v_itemtype, v_itemkey);
       commit;
     end;
Process Selector
                 - More
• Item Type的selector信息记录可以使用如下
  sql进行查询:
   select name, wf_selector from wf_item_types
   where name = 'LEAVEREQ'
• selector过程除了在启动工作流使决定使用
  哪一个流程外, 还可以被扩展为类似于回调
  (callback)的功能, 在执行活动节点之前调用
  selector过程传入command参数为TEST_CTX
  或者SET_CTX验证或者设置上下文.
Activity Statuses
• 工作流活动在执行的过程中有相应的状态标记, 分
  为:
  Active   活动正在被执行, 顶层流程在流
           程结束之前一直处于active状态
  Complete 活动成功完成
  Waiting  等待. 示例: AND活动
  Notified 活动等待FYA通知的反馈, 或者等待
           一个事件消息
  Deferred 活动被延迟, 将由后台引擎执行
  Error    活动执行过程中遇到错误
  Suspend  活动被暂停
Notification Timeout
                     - Setup
• 可以为活动节点定义超时属性, 从而在活动超时的情况下
  采取相应的动作, 通常超时属性应用在FYA的通知节点. 设
  置如下:
• 节点的超时属性可以设置如下:
 – No timeout       不设置超时
 – Relative Time    指定超时时间
 – Item Attribute   引用工作流属性
• 当为一个节点设置了超时属性
之后, 该节点可以选择在超时情况
下执行什么动作, 比如结束流程/重新执行当前节点/执行另一
个节活动等.
Activity Cost
• 在对函数活动节点进行设置时, 可以设置一个
  cost属性, 如下:
• cost属性值是对该节点执
  行时间的一个估计, 在WFB
  中单位是秒(以1/100秒
  存储wf_activities/cost字段).
  在 工作流运行的过程中, 会对比活动的cost值
  与wf_engine.threshold的值, 如果大于则停止该
  流程的执行; 否则则执行该流程.
  wf_engine.threshold的值默认为50(1/100秒). 从
  WFB到数据库的转换乘以100即可, 这里设置为
  1在数据库存储的值是100, 该活动将会被延迟.
Activity Cost
• 重新上传之后, 在WAP中启动该流程. 可以看到流
  程在执行到”Find Approver”节点时状态变为了
  Deferred, 当前函数节点没有被执行.




• 可以使用如下两种方式驱动deferred节点的执行:
1, 运行并发请求”Workflow background process”;
2, 调用wf_engine.Background过程, 实际上方法1调用
   了此过程.
Activity Cost
  - Workflow background process
• 使用SA职责提交提交该并发请求, 请求完成
  之后流程将会继续往下执行:
Activity Cost
       - WFSTD DEFER
• 除了设置函数节点的cost属性之外还可以通
  过WFSTD中的DEFER节点实现延迟, 只需要
  在节点前面添加一个DEFER节点就可以做到
  这一点, 如下:
Stuck Process
• 当一个流程处在active状态但是无法继续执
  行时, 该流程状态将会被标志为ERROR:#STUCK,
  相应的错误流程将会被执行. 这样的情况可
  能发生在:
  1, 当前流程节点非END节点, 但是没有后续
  节点;
  2, 节点返回了值但是没有为该值定义下一
  个节点;
Respond Message
• 答复类型的消息属性用于FYA通知的审批人填写反馈信息;
  在定义FYA通知的消息时, 添加一个Respond类型的消息属
  性即可.




       在status monitor页面点击participant responses
Notification Reassign
                - Sender
• 默认情况下FYA通知由通知的接收人进行审批, 在通知的审批页面提供
  了Reassign按钮, 用于将通知分配给其他人, 有两种模式:
  1, Delegate 委托别人审批, 但是不改变通知的所有人(责任人不变);
  2, Transfer 将通知转移给其他人, 通知的所有人发生变化; 示例:
Notification Reassign
           - Receiver
• 重新分配通知之后, 通知接收人可以在工作
  列表中看到该通知, 打开通知之后还可以查
  看通知的历史:
Notification Reassign
             - Disable
• 使用特殊消息属性#HIDE_REASSIGN可以控
  制相应通知审批页Reassign按钮是否显示,
  如果设置为Y则不显示, 示例:
Notification Reassign
                    - Database
• 对一个通知进行Reassign时, 会修改数据中相应的记
  录. 按照deletge或者transfer:
  1, delegate


 2, transfer



 作transfer时同时还会修改wf_item_activity_statuses
 表中的assigned_user字段; 而delegate不会
Vacation Rules
• 通过定义假期规则用户可以设定在离开的时间
  内如何自动处理收到的通知, 假期规则可以作
  用在:
 – 所有Item Types的通知
 – 指定Item Type的通知
 – 指定Item Type的指定通知
假期规则从下往上进行检查, 如果发现匹配则
执行相应的动作, 有以下类型:
 – 重新分配通知
 – 回复或者关闭通知
 – 将reassign的通知返回原接收者
Vacation Rules
             - Maintain
• 可以在首页的worklist访问假期规则页面, 在
  该页面可以对假期规则进行创建, 更新和删
  除等操作, 如下:



• 新建一个假期规则
  1, 设置Item Type
Vacation Rules
            - Maintain
2, 设置通知



3, 设置执行的动作, 这里选择回复
Worklist Access
• 在HOME页面的工作列表区域还可以设置允
  许其他的用户访问当前用户的工作列表, 如
  下:
Worklist Access
• 这里将cbrown用户工作列表的权限分配给了
  process_ops用户, 使用process_ops登录后在工作列
  表区域会多出一个切换用户按钮, 切换用户之后可
  以看到cbrown的工作列表并进行操作:
6, workflow miscellaneous

Contenu connexe

En vedette

7, business event system
7, business event system7, business event system
7, business event systemted-xu
 
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & apited-xu
 
A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...
A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...
A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...CSCJournals
 
Shakespeare!
Shakespeare!Shakespeare!
Shakespeare!RaeNotRay
 
How to process a miscellaneous payment through your PayClix dashboard
How to process a miscellaneous payment through your PayClix dashboardHow to process a miscellaneous payment through your PayClix dashboard
How to process a miscellaneous payment through your PayClix dashboardAndrew Harrison
 
Write script
Write scriptWrite script
Write scripticochito
 
English file phrases help
English file   phrases helpEnglish file   phrases help
English file phrases helpSuely Marques
 
1.charlotte mew _the_trees_are_down
1.charlotte mew _the_trees_are_down1.charlotte mew _the_trees_are_down
1.charlotte mew _the_trees_are_downCharter College
 
Creative writing task radio script
Creative writing task radio scriptCreative writing task radio script
Creative writing task radio scriptroedogg71
 
Heart and Circulation
Heart and CirculationHeart and Circulation
Heart and CirculationChy Yong
 
The Black Cat Intro
The  Black  Cat IntroThe  Black  Cat Intro
The Black Cat Introtranceking
 
Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.
Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.
Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.Dr. Ravi Sankar
 
The Trees are Down
The Trees are DownThe Trees are Down
The Trees are DownShan Ambrose
 

En vedette (20)

7, business event system
7, business event system7, business event system
7, business event system
 
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & api
 
Student script outline
Student script outlineStudent script outline
Student script outline
 
A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...
A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...
A Novel Approach for Bilingual (English - Oriya) Script Identification and Re...
 
Shakespeare!
Shakespeare!Shakespeare!
Shakespeare!
 
How to process a miscellaneous payment through your PayClix dashboard
How to process a miscellaneous payment through your PayClix dashboardHow to process a miscellaneous payment through your PayClix dashboard
How to process a miscellaneous payment through your PayClix dashboard
 
Physicochemical Principles
Physicochemical PrinciplesPhysicochemical Principles
Physicochemical Principles
 
Miscellaneous process
Miscellaneous processMiscellaneous process
Miscellaneous process
 
Write script
Write scriptWrite script
Write script
 
English file phrases help
English file   phrases helpEnglish file   phrases help
English file phrases help
 
1.charlotte mew _the_trees_are_down
1.charlotte mew _the_trees_are_down1.charlotte mew _the_trees_are_down
1.charlotte mew _the_trees_are_down
 
Regulation of respiration
Regulation of respirationRegulation of respiration
Regulation of respiration
 
Creative writing task radio script
Creative writing task radio scriptCreative writing task radio script
Creative writing task radio script
 
Class 14 summary – basics of process control
Class 14   summary – basics of process controlClass 14   summary – basics of process control
Class 14 summary – basics of process control
 
Gluconeogenesis
GluconeogenesisGluconeogenesis
Gluconeogenesis
 
Heart and Circulation
Heart and CirculationHeart and Circulation
Heart and Circulation
 
Krebs cycle
Krebs cycleKrebs cycle
Krebs cycle
 
The Black Cat Intro
The  Black  Cat IntroThe  Black  Cat Intro
The Black Cat Intro
 
Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.
Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.
Penicillins by Dr. Panchumarthy Ravisankar M.Pharm., Ph.D.
 
The Trees are Down
The Trees are DownThe Trees are Down
The Trees are Down
 

Similaire à 6, workflow miscellaneous

3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebsted-xu
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & apited-xu
 
Node cluster
Node clusterNode cluster
Node clusteraleafs
 
Power flow簡介
Power flow簡介Power flow簡介
Power flow簡介Sky Wu
 
作業系統數位教材(劉政雄)(1 9)
作業系統數位教材(劉政雄)(1 9)作業系統數位教材(劉政雄)(1 9)
作業系統數位教材(劉政雄)(1 9)Ying wei (Joe) Chou
 
Hyperic hq安装配置演示
Hyperic hq安装配置演示Hyperic hq安装配置演示
Hyperic hq安装配置演示bmg521
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops琛琳 饶
 
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflowted-xu
 
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert systemted-xu
 
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashbackted-xu
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
cppcheck源码分析
cppcheck源码分析cppcheck源码分析
cppcheck源码分析Wu Liang
 
網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能beiyu95
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow introted-xu
 
Akka分片集群的实现
Akka分片集群的实现Akka分片集群的实现
Akka分片集群的实现Caoyuan Deng
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机EdwardBadBoy
 
Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩chinafenghao
 
Phpunit入门 r2
Phpunit入门 r2Phpunit入门 r2
Phpunit入门 r2Baohua Cai
 

Similaire à 6, workflow miscellaneous (20)

3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebs
 
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
 
Node cluster
Node clusterNode cluster
Node cluster
 
Power flow簡介
Power flow簡介Power flow簡介
Power flow簡介
 
作業系統數位教材(劉政雄)(1 9)
作業系統數位教材(劉政雄)(1 9)作業系統數位教材(劉政雄)(1 9)
作業系統數位教材(劉政雄)(1 9)
 
Hyperic hq安装配置演示
Hyperic hq安装配置演示Hyperic hq安装配置演示
Hyperic hq安装配置演示
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflow
 
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert system
 
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashback
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结
 
cppcheck源码分析
cppcheck源码分析cppcheck源码分析
cppcheck源码分析
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow intro
 
Akka分片集群的实现
Akka分片集群的实现Akka分片集群的实现
Akka分片集群的实现
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机
 
LabView with Lego NXT
LabView  with Lego NXTLabView  with Lego NXT
LabView with Lego NXT
 
Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩Mysql mmm演讲--冯浩
Mysql mmm演讲--冯浩
 
Phpunit入门 r2
Phpunit入门 r2Phpunit入门 r2
Phpunit入门 r2
 

Plus de ted-xu

9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rmanted-xu
 
8, OCP - backup with rman
8, OCP - backup with rman8, OCP - backup with rman
8, OCP - backup with rmanted-xu
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recoveryted-xu
 
6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle securityted-xu
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storageted-xu
 
4, OCP - oracle networking
4, OCP - oracle networking4, OCP - oracle networking
4, OCP - oracle networkingted-xu
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance managementted-xu
 
2, OCP - installing and creating a database
2, OCP - installing and creating a database2, OCP - installing and creating a database
2, OCP - installing and creating a databaseted-xu
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuningted-xu
 
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notested-xu
 
5, sed
5, sed5, sed
5, sedted-xu
 
4, grep
4, grep4, grep
4, grepted-xu
 
3, regular expression
3, regular expression3, regular expression
3, regular expressionted-xu
 
2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplifiedted-xu
 
1, shell intro
1, shell intro1, shell intro
1, shell introted-xu
 
6, awk
6, awk6, awk
6, awkted-xu
 
8, lamp
8, lamp8, lamp
8, lampted-xu
 
6, vim
6, vim6, vim
6, vimted-xu
 
5, system admin
5, system admin5, system admin
5, system adminted-xu
 

Plus de ted-xu (20)

9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
 
8, OCP - backup with rman
8, OCP - backup with rman8, OCP - backup with rman
8, OCP - backup with rman
 
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
 
6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle security
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storage
 
4, OCP - oracle networking
4, OCP - oracle networking4, OCP - oracle networking
4, OCP - oracle networking
 
3, OCP - instance management
3, OCP - instance management3, OCP - instance management
3, OCP - instance management
 
2, OCP - installing and creating a database
2, OCP - installing and creating a database2, OCP - installing and creating a database
2, OCP - installing and creating a database
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
 
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notes
 
5, sed
5, sed5, sed
5, sed
 
4, grep
4, grep4, grep
4, grep
 
3, regular expression
3, regular expression3, regular expression
3, regular expression
 
2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplified
 
1, shell intro
1, shell intro1, shell intro
1, shell intro
 
6, awk
6, awk6, awk
6, awk
 
8, lamp
8, lamp8, lamp
8, lamp
 
6, vim
6, vim6, vim
6, vim
 
5, system admin
5, system admin5, system admin
5, system admin
 

6, workflow miscellaneous

  • 2. Overview • 前面介绍了如何使用WFB定义一个简单的流程, 如何在EBS中使用该流程, 以及工作流的表/API 等. 除了这些基本的特性之外, 这里将介绍一些 其他的高级特性和细节: – Process Selector/Callback – 活动状态 – 活动超时(timeout), 延迟(deferred), 停滞(stuck) – Respond类型消息 – 通知重新分配(Reassign)/假期规则(Vacation Rule)/工 作列表(worklist)
  • 3. Process Selector • 根据工作流的设计, 一个Item Type可以包含 多个Process, 那么在工作流引擎在启动一个 工作流时会如何选择启动哪一个流程呢? 有 如下两种方式: 1, wf_engine.CreateProcess 传入process参数 为非null值, 从而启动指定的流程; 2, wf_engine.CreateProcess 传入process参数 为null值, 则会调用Item Type的selector过程, 该过程会返回流程的名称.
  • 4. Process Selector - WFB Setup • 如何为Item Type指定一个selector过程呢? 在 WFB中打开Item Type节点的属性, 在Selector 字段中指定selector过程, 遵循如下格式 <package>.<procedure>, 如下:
  • 5. Process Selector - API Standard • selector过程必须遵循如下的API格式: procedure <procedure_name> ( itemtype in varchar2, itemkey in varchar2, actid in number, command in varchar2, resultout out varchar2) ... 参数说明: itemtype Item Type的内部名称 itemkey Item Key actid 过程被调用时的活动id, 当command参数为 RUN时此参数为null command 调用模式, 可以是RUN, TEST_CTX, SET_CTX, 后两者用于selector过程的回调功能; 调用 wf_engine.createprocess未指定process参数时传 入command参数为RUN resultout 对于RUN/TEST_CTX模式返回值, RUN模式返 回选择的流程名称
  • 6. Process Selector - A toy demo • 定义wfdemo.selector过程如下, 始终返回default流程, 仅作为演示: procedure selector(itemtype in varchar2, itemkey in varchar2, actid in number, command in varchar2, resultout out varchar2) is begin if(command = 'RUN') then resultout := ‘DEFAULT'; end if; end; • 另外定义一个dummy流程, 如图: • 上传该wft文件, 使用如下代码运行该工作流(WAP页面必须指定process) declare v_itemtype varchar2(30) := 'LEAVEREQ'; v_itemkey varchar2(30) := '10'; begin wf_engine.createprocess(v_itemtype, v_itemkey, null); wf_engine.SetItemAttrText(v_itemtype, v_itemkey, 'LEAVEREQUSTER', 'OPERATIONS'); wf_engine.startProcess(v_itemtype, v_itemkey); commit; end;
  • 7. Process Selector - More • Item Type的selector信息记录可以使用如下 sql进行查询: select name, wf_selector from wf_item_types where name = 'LEAVEREQ' • selector过程除了在启动工作流使决定使用 哪一个流程外, 还可以被扩展为类似于回调 (callback)的功能, 在执行活动节点之前调用 selector过程传入command参数为TEST_CTX 或者SET_CTX验证或者设置上下文.
  • 8. Activity Statuses • 工作流活动在执行的过程中有相应的状态标记, 分 为: Active 活动正在被执行, 顶层流程在流 程结束之前一直处于active状态 Complete 活动成功完成 Waiting 等待. 示例: AND活动 Notified 活动等待FYA通知的反馈, 或者等待 一个事件消息 Deferred 活动被延迟, 将由后台引擎执行 Error 活动执行过程中遇到错误 Suspend 活动被暂停
  • 9. Notification Timeout - Setup • 可以为活动节点定义超时属性, 从而在活动超时的情况下 采取相应的动作, 通常超时属性应用在FYA的通知节点. 设 置如下: • 节点的超时属性可以设置如下: – No timeout 不设置超时 – Relative Time 指定超时时间 – Item Attribute 引用工作流属性 • 当为一个节点设置了超时属性 之后, 该节点可以选择在超时情况 下执行什么动作, 比如结束流程/重新执行当前节点/执行另一 个节活动等.
  • 10. Activity Cost • 在对函数活动节点进行设置时, 可以设置一个 cost属性, 如下: • cost属性值是对该节点执 行时间的一个估计, 在WFB 中单位是秒(以1/100秒 存储wf_activities/cost字段). 在 工作流运行的过程中, 会对比活动的cost值 与wf_engine.threshold的值, 如果大于则停止该 流程的执行; 否则则执行该流程. wf_engine.threshold的值默认为50(1/100秒). 从 WFB到数据库的转换乘以100即可, 这里设置为 1在数据库存储的值是100, 该活动将会被延迟.
  • 11. Activity Cost • 重新上传之后, 在WAP中启动该流程. 可以看到流 程在执行到”Find Approver”节点时状态变为了 Deferred, 当前函数节点没有被执行. • 可以使用如下两种方式驱动deferred节点的执行: 1, 运行并发请求”Workflow background process”; 2, 调用wf_engine.Background过程, 实际上方法1调用 了此过程.
  • 12. Activity Cost - Workflow background process • 使用SA职责提交提交该并发请求, 请求完成 之后流程将会继续往下执行:
  • 13. Activity Cost - WFSTD DEFER • 除了设置函数节点的cost属性之外还可以通 过WFSTD中的DEFER节点实现延迟, 只需要 在节点前面添加一个DEFER节点就可以做到 这一点, 如下:
  • 14. Stuck Process • 当一个流程处在active状态但是无法继续执 行时, 该流程状态将会被标志为ERROR:#STUCK, 相应的错误流程将会被执行. 这样的情况可 能发生在: 1, 当前流程节点非END节点, 但是没有后续 节点; 2, 节点返回了值但是没有为该值定义下一 个节点;
  • 15. Respond Message • 答复类型的消息属性用于FYA通知的审批人填写反馈信息; 在定义FYA通知的消息时, 添加一个Respond类型的消息属 性即可. 在status monitor页面点击participant responses
  • 16. Notification Reassign - Sender • 默认情况下FYA通知由通知的接收人进行审批, 在通知的审批页面提供 了Reassign按钮, 用于将通知分配给其他人, 有两种模式: 1, Delegate 委托别人审批, 但是不改变通知的所有人(责任人不变); 2, Transfer 将通知转移给其他人, 通知的所有人发生变化; 示例:
  • 17. Notification Reassign - Receiver • 重新分配通知之后, 通知接收人可以在工作 列表中看到该通知, 打开通知之后还可以查 看通知的历史:
  • 18. Notification Reassign - Disable • 使用特殊消息属性#HIDE_REASSIGN可以控 制相应通知审批页Reassign按钮是否显示, 如果设置为Y则不显示, 示例:
  • 19. Notification Reassign - Database • 对一个通知进行Reassign时, 会修改数据中相应的记 录. 按照deletge或者transfer: 1, delegate 2, transfer 作transfer时同时还会修改wf_item_activity_statuses 表中的assigned_user字段; 而delegate不会
  • 20. Vacation Rules • 通过定义假期规则用户可以设定在离开的时间 内如何自动处理收到的通知, 假期规则可以作 用在: – 所有Item Types的通知 – 指定Item Type的通知 – 指定Item Type的指定通知 假期规则从下往上进行检查, 如果发现匹配则 执行相应的动作, 有以下类型: – 重新分配通知 – 回复或者关闭通知 – 将reassign的通知返回原接收者
  • 21. Vacation Rules - Maintain • 可以在首页的worklist访问假期规则页面, 在 该页面可以对假期规则进行创建, 更新和删 除等操作, 如下: • 新建一个假期规则 1, 设置Item Type
  • 22. Vacation Rules - Maintain 2, 设置通知 3, 设置执行的动作, 这里选择回复
  • 23. Worklist Access • 在HOME页面的工作列表区域还可以设置允 许其他的用户访问当前用户的工作列表, 如 下:
  • 24. Worklist Access • 这里将cbrown用户工作列表的权限分配给了 process_ops用户, 使用process_ops登录后在工作列 表区域会多出一个切换用户按钮, 切换用户之后可 以看到cbrown的工作列表并进行操作: