1. Workflow Builder的默許訪問級別是100,以下是Oracle對訪問級別的1個大致分類:
0⑼ Oracle Workflow
10⑴9 Oracle Application Object Library
20⑼9 Oracle Application Development
100⑼99 Customer Organization
1000 Public
2. Oracle 工作流對象通過不同的選項和訪問級別來實現(xiàn)對象的保護
3. Workflow 安裝
1、可以直接使用8i的http,不用安裝IAS,根據(jù)Server安裝指南配置httpd.conf的別名便可;http服務(wù)起不來的可能情況2、
httpd.conf語法毛病,這個沒甚么好說的
之前的服務(wù)沒有正常結(jié)束,1般重新啟動計算機便可;或殺掉java進程,如果有的話
新安裝了Oracle其它產(chǎn)品,致使路徑援用毛病;我的解決辦法是把新安裝軟件在環(huán)境變量Path中添加的路徑移到最后
如果要看httpd為什么沒法啟動,查看Log是沒用的;應(yīng)當(dāng)先運行CMD,然后cd到需要的目錄,輸入apache.exe,這個時候就會有毛病出現(xiàn)
2、Notification默許的配置是html email,這個時候易遇到Notification就報錯,
由于我們自己1般沒有配置Mail服務(wù)器,所以需要在Global Workflow Preferences里面把Send me electronic mail notifications設(shè)置為Do not send me mail
3、開始我沒有配好Business Event System,在履行Aprove等動作的時候總是No Data Found;
后來我根據(jù)Error Stack找到wf_xml包,把里面的RemoveNotification的Raise語句注釋掉就能夠了。嘿嘿,反正我是自己研究工作流,無所謂了
4、我的系統(tǒng)是XP Home SP1,沒有JVM,沒法View Diagram;裝了JDK,不太好用,卸掉裝msjavx86.exe1切正常
4. 剛接觸Workflow Builder會碰到的幾個疑問
如何連接各個Node:用右鍵而不是左鍵連
為什么修改不了他人的文件:在Help菜單里面設(shè)置適合的Access Level
為什么圖標不起作用:在View菜單里面選擇Develop Mode
如何使用Standard的Item:打開Standard或Demo文件,把Stantard這個Item Type抓過去
Notification根據(jù)甚么發(fā):必須在Process里面打開Notification的屬性,Node標簽里面有1個Performer,根據(jù)需要設(shè)置成我們預(yù)定義的某個Role類型的Attribute
Workflow Builder的PL/SQL函數(shù)有甚么要求:拷個Demo的函數(shù),照著寫就能夠了,怎樣判斷運行模式,怎樣返回里面都有
其他問題其實Workflow Builder在保存或我們選擇Verify的時候都會提示,只要認真看都能解決
5.對各個Item的通俗理解
1、Item Type是個抽象的概念,為方便理解,可以看做是1個工作流的容器和標志
2、Attribute是全局變量,供全部Item Type里面的元素使用,可以作為message的附加屬性,Send給用戶看或存儲用戶的Response內(nèi)容比如Note和Forward To;Attribute另外一個經(jīng)常使用的地方是作為Notification的Performer。固然我們的PL/SQL代碼是離不開Attribute,幾近任何PL/SQL函數(shù)都需要通過獲得Attribute變量--判斷Attribute變量--設(shè)置Attribute變量,決定程序如何走,返回甚么值
3、Message,就是1個消息,內(nèi)容在Body里面定義,用&援用Message自己的Attribute;對我們程序有用的的是Message的Attribute,1般和上面的全局變量Attribute對應(yīng),Send類型的Attribute將取當(dāng)時的全局變量Attribute的值發(fā)給用戶看,Response類型Attribute將把用戶輸入的內(nèi)容返回給全局變量Attribute供我們的程序作下1步判斷使用
4、Lookup Types,基礎(chǔ)字典列表,就像我們的部門字典表,銷售方式字典表1樣,不過它是靜態(tài)的;根據(jù)需要設(shè)置,1般用來標志工作流各類Item的返回值,和我們的PL/SQL函數(shù)返回值逐一對應(yīng)
5、Function,就是Function,1個處理,1般對應(yīng)1個PL/SQL函數(shù)并定義返回值為某個Lookup Type
6、Notification,發(fā)送1個消息,消息內(nèi)容為定義的Message內(nèi)容,消息的接收人是定義的Performer
7、Process,真實的流程,由Notification、Function、子Process組成,開始于1個Start Function,結(jié)束于1個或多個End Function,中間是Notification和Function組成的業(yè)務(wù)流程,在這個級別上可以把Notification、Function、子Process看成是1樣的即activity,他們都有返回值,不同的結(jié)果走不同的流程,由此組成1個符合業(yè)務(wù)需要的圖表
6. 由Engine管理、不需要我們操心的東西
1、消息發(fā)送;我們只管定義,由于可以用HTML寫Message的Body,可以定義得很漂亮
2、流程選擇;我們只管按不同的返回結(jié)果畫圖,Engine會根據(jù)我們函數(shù)的返回值調(diào)用下1個activity
3、用戶選擇;我們可以修改wf_roles、wf_users、wf_user_roles這3個視圖,使之包括我們業(yè)務(wù)系統(tǒng)的用戶便可
7. 經(jīng)常使用表
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的狀態(tài),比如完成否,返回值
wf_notifications,保存工作流實例的notifications消息,基本是按順序的,可以看發(fā)給誰了
wf_roles,角色視圖,工作流援用角色的根據(jù),有mail地址等信息
wf_user_roles,用戶和角色關(guān)系視圖,工作流可以根據(jù)它進行“群發(fā)”
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. 程序毛病,沒有設(shè)置正確的Notification Performer
2. 如果是PO,可能沒跑Fill Employee Hierarchy
3. 1個Employee分配給了多個User,那末其實只有第1個User收到了消息
4. 數(shù)據(jù)還沒有同步到Workflow,即沒跑Synchronize Workflow LOCAL tables
10. Workflow Role的類型
11. Approve_Id, Approve_Name, Approve_Display Name 的必須建立
對程序來講ID是關(guān)鍵的,來源于各個表如FND_USER或HR_EMPLOYEES;
對Workflow來講Name是關(guān)鍵的,來源于表WF_ROLES;
對終究User來講,Display Name是關(guān)鍵的,來源于表WF_ROLES;
12. 隱藏Notification中的1些默許Button
#HIDE_REASSIGN,可以隱藏標準的Reassign按鈕
#HIDE_MOREINFO,可以隱藏標準的Request Information按鈕
13. Workflow的Activity的節(jié)點的7個狀態(tài)
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