1 .工作流构建器的默认访问级别为100,以下是Oracle访问级别的大致分类:
(0oracle工作流
109 Oracle应用管理系统对象库
((9Oracle应用管理系统开发
100 99客户组织
1000公共
2. Oracle工作流对象在不同的选项和访问级别保护对象
3 .工作流安装
1、可以直接使用8i的http,无需安装IAS,只需按照Server安装指南配置httpd.conf别名即可; 可能不会发生http服务2、
httpd.conf语法的缺点,这没什么好说的
以前的服务没有正常结束,只要重新启动计算机即可,如1所示,要么杀死java进程,如果有的话
由于新安装了Oracle的其他产品,路径的引用出现了问题; 我的解决方案是最后移动新安装的软件添加到环境变量Path的路径
要查看httpd为什么不能启动,查看日志是徒劳的。首先必须运行CMD,然后前往需要cd的目录并输入apache.exe。 此时会发生故障
2、Notification默认的配置是html email,此时遇到Notification容易报告错误。
因为我们自己没有像1那样配置邮件服务器,所以必须在全局工作流首选项中将sendmeelectronicmailnotifications设置为Do not send me mail
3、最初没有准备业务事件系统。 履行存档等动作时总是无数据基金;
然后,根据error堆栈找到wf_xml包,并注释掉中的RemoveNotification的Raise语句即可。 嘿嘿,反正我自己在研究工作流程,无所谓
4、我的系统是XP Home SP1,没有JVM,不能查看诊断程序; 虽然安装了JDK,但是不好用。 卸下后安装msjavx86.exe1即可正常断开
刚接触工作流构建器时面临的几个问题
如何连接每个节点:右键连接而不是左键连接
为什么不能修改他人的文件:在帮助菜单中设置适当的访问级别
图标不起作用的原因:在View菜单中选择Develop Mode
标准项目用法:打开标准或演示文件,抓住名为标准的项目类型
通告基于什么? 必须在Process中打开通告属性。 Node标记有一个Performer,可以根据需要将其设置为我们预定义的角色类型的属性
对工作流构建器的PL/SQL函数有什么要求? 复制Demo的函数,照着写就行了。 无论如何判断执行模式,如何回到里面都可以
其他问题其实工作流构建器在保存或我们选择验证时会给出提示,认真看就能解决
5 .对各Item的易懂理解
1、Item Type是一个抽象概念,为了便于理解,可以将其视为一个工作流的容器和标志
2、Attribute是全局变量,用于所有Item Type中的元素,可用作消息的附加属性。 Send向用户展示和保存用户的响应内容,例如Note和Forward To; Attribute的另一个常用之处是Performer作为通告。 我们的PL/SQL代码离不开Attribute,但大多数PL/SQL函数通过设置Attribute变量――attribute变量――attribute变量,可以确定程序是如何运行的,以及程序是如何运行的
3、消息是一条消息,内容在主体中定义,引用消息中引用自己的属性; Message的Attribute对我们的程序有帮助,如1所示,与上面的全局变量Attribute对应。 Send型Attribute取当时的全局变量Attribute的值给用户看,Response型Attribute将用户输入的内容返回给全局变量Attribute提供给我们的程序
4、Lookup Types,基础词典列表类似我们的部门词典表、销售方式词典表1,但为静态; 根据需要,如1那样标记工作流的各种Item的返回值,并与我们的PL/SQL函数的返回值一一对应
5、函数在函数中,与一个处理,一个PL/SQL函数对应,将返回值定义为Lookup Type
6、通告,发一条信息,关掉
息内容为定义的Message内容,消息的接收人是定义的Performer7、Process,真实的流程,由Notification、Function、子Process组成,开始于1个Start Function,结束于1个或多个End Function,中间是Notification和Function组成的业务流程,在这个级别上可以把Notification、Function、子Process看成是1样的即activity,他们都有返回值,不同的结果走不同的流程,由此组成1个符合业务需要的图表
6.由Engine管理、不需要我们操心的东西
1、消息发送;我们只管定义,由于可以用HTML写Message的Body,可以定义得很漂亮
2、流程选择;我们只管按不同的返回结果画图,Engine会根据我们函数的返回值调用下1个activity
3、用户选择;我们可以修改wf_roles、wf_users、wf_user_roles这3个视图,使之包括我们业务系统的用户便可
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_MESSAGES
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'; -⑹4
(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 * FROM select * from PER_ALL_PEOPLE_F P WHERE P.NAME = 'YYYYY'; -⑼3
--职位分配
SELECT * FROM PER_ALL_ASSIGNMENTS_F A WHERE A.POSITION_ID = 93; -⑼60
--人员
SELECT * FROM PER_ALL_PEOPLE_F AP WHERE AP.PERSON_ID = 960;
--要求
Fill Employee Hierarchy
9.没有收到Notification
1. 程序毛病,没有设置正确的Notification Performer
2. 如果是PO,可能没跑Fill Employee Hierarchy
3. 1个Employee分配给了多个User,那末其实只有第1个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中的1些默许Button
#HIDE_REASSIGN,可以隐藏标准的Reassign按钮
#HIDE_MOREINFO,可以隐藏标准的Request Information按钮
13. Workflow的Activity的节点的7个状态
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