Oracle WorkFlow基础笔记
1. Workflow Builder的默认访问级别是100,以下是Oracle对访问级别的一个大致分类: 0-9 Oracle Workflow
3. Workflow安装 1、可以直接使用8i的http,不用安装IAS,根据Server安装指南配置httpd.conf的别名即可;http服务起不来的可能情况2、 httpd.conf语法错误,这个没什么好说的 因为我们自己一般没有配置Mail服务器,所以需要在Global Workflow Preferences里面把Send me electronic mail notifications设置为Do not send me mail 后来我根据Error Stack找到wf_xml包,把里面的RemoveNotification的Raise语句注释掉就可以了。嘿嘿,反正我是自己研究工作流,无所谓了 4.刚接触Workflow Builder会碰到的几个疑问 如何连接各个Node:用右键而不是左键连 为何修改不了别人的文件:在Help菜单里面设置合适的Access Level 为何图标不起作用:在View菜单里面选择Develop Mode 如何使用Standard的Item:打开Standard或Demo文件,把Stantard这个Item Type抓过去 Notification根据什么发:必须在Process里面打开Notification的属性,Node标签里面有一个Performer,根据需要设置成我们预定义的某个Role类型的Attribute Workflow Builder的PL/SQL函数有什么要求:拷个Demo的函数,照着写就可以了,怎么判断运行模式,怎么返回里面都有 其他问题其实Workflow Builder在保存或者我们选择Verify的时候都会提示,只要认真看都能解决 5.对各个Item的通俗理解 1、Item Type是个抽象的概念,为方便理解,可以看作是一个工作流的容器和标志 2、Attribute是全局变量,供整个Item Type里面的元素使用,可以作为message的附加属性,Send给用户看或者存储用户的Response内容比如Note和Forward To;Attribute另一个常用的地方是作为Notification的Performer。当然我们的PL/SQL代码是离不开Attribute,几乎任何PL/SQL函数都需要通过取得Attribute变量--判断Attribute变量--设置Attribute变量,决定程序如何走,返回什么值 3、Message,就是一个消息,内容在Body里面定义,用&引用Message自己的Attribute;对我们程序有用的的是Message的Attribute,一般和上面的全局变量Attribute对应,Send类型的Attribute将取当时的全局变量Attribute的值发给用户看,Response类型Attribute将把用户输入的内容返回给全局变量Attribute供我们的程序作下一步判断使用 4、Lookup Types,基础字典列表,就像我们的部门字典表,销售方式字典表一样,不过它是静态的;根据需要设置,一般用来标志工作流各类Item的返回值,和我们的PL/SQL函数返回值一一对应 5、Function,就是Function,一个处理,一般对应一个PL/SQL函数并定义返回值为某个Lookup Type 6、Notification,发送一个消息,消息内容为定义的Message内容,消息的接收人是定义的Performer 7、Process,真正的流程,由Notification、Function、子Process组成,开始于一个Start Function,结束于一个或多个End Function,中间是Notification和Function组成的业务流程,在这个级别上可以把Notification、Function、子Process看成是一样的即activity,他们都有返回值,不同的结果走不同的流程,由此组成一个符合业务需要的图表 6.由Engine管理、不需要我们操心的东西 1、消息发送;我们只管定义,由于可以用HTML写Message的Body,可以定义得很漂亮 2、流程选择;我们只管按不同的返回结果画图,Engine会根据我们函数的返回值调用下一个activity 3、用户选择;我们可以修改wf_roles、wf_users、wf_user_roles这三个视图,使之包含我们业务系统的用户即可 7.常用表 1.Workflow Definition Tables WF_ITEM_TYPES WF_ACTIVITIES WF_MESSAGES WF_ITEM_ATTRIBUTES WF_ACTIVITY_ATTRIBUTES WF_MESSAGE_ATTRIBUTES WF_PROCESS_ACTIVITIES WF_ACTIVITY_TRANSITIONS 2. Workflow Runtime Tables WF_ITEMS WF_ITEM_ACTIVITY_STATUSES WF_NOTIFICATIONS WF_NOTIFICATION_ATTRIBUTES 3. Business Event Tables WF_SYSTEMS WF_AGENTS WF_EVENTS WF_EVENT_SUBSCRIPTIONS 4. 各表解析 wf_item_types_vl,保存工作流的定义,即类 wf_items,保存实际的工作流,或者说工作流的对象实例 wf_item_attribute_values,保存工作流实例的attribute最新值 wf_item_activity_statuses,保存工作流实例的各个activity的状态,比如完成否,返回值 wf_notifications,保存工作流实例的notifications消息,基本是按顺序的,可以看发给谁了 wf_roles,角色视图,工作流引用角色的依据,有mail地址等信息 wf_user_roles,用户和角色关系视图,工作流可以根据它进行“群发” 8.签合层级 (1). Hierarchy头 SELECT * FROM PER_POSITION_STRUCTURES_V PS WHERE PS.NAME = 'XXXXXXXX'; --64 (2).Hierarchy行 SELECT * FROM PER_POS_STRUCTURE_ELEMENTS_V PE WHERE PE.POS_STRUCTURE_VERSION_ID = 64; (3).Hierarchy生成表 SELECT * FROM PO_EMPLOYEE_HIERARCHIES H WHERE H.POSITION_STRUCTURE_ID = 64 AND H.EMPLOYEE_ID <> H.SUPERIOR_ID; --职位表 SELECT * FROMselect*fromPER_ALL_PEOPLE_FP WHERE P.NAME = 'YYYYY'; --93
9.没有收到Notification 1. 程序错误,没有设置正确的Notification Performer 2. 如果是PO,可能没跑Fill Employee Hierarchy 3. 一个Employee分配给了多个User,那么其实只有第一个User收到了消息 4. 数据还没有同步到Workflow,即没跑Synchronize Workflow LOCAL tables 10. Workflow Role的类型 11. Approve_Id,Approve_Name,Approve_Display Name的必须建立 对于程序来说ID是关键的,来源于各个表如FND_USER或者HR_EMPLOYEES; 对于Workflow来说Name是关键的,来源于表WF_ROLES; 对于最终User来说,Display Name是关键的,来源于表WF_ROLES; 12.隐藏Notification中的一些默认Button #HIDE_REASSIGN,可以隐藏标准的Reassign按钮 #HIDE_MOREINFO,可以隐藏标准的Request Information按钮 13. Workflow的Activity的节点的七个状态 Active--activity is running. Complete--activity completed normally. Waiting--activity is waiting to run. Notified--notification activity is delivered and open. Deferred--activity is deferred. Error--activity completed with error. Suspended--activity is suspended.
Thanks and Regards (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |