Oracle ERP 2010-08-09 16:29:14 閱讀7 評論0 字號:大中小 訂閱
ORACLE EBS 系統(tǒng)應(yīng)用基礎(chǔ)概述
七、值集與查找代碼(Value Set and Lookup Code)
八、配置文件(Profile)
九、單據(jù)編號(Document Sequence)
十、工作流(Workflow)
十一、預(yù)警(Alert)
十二、應(yīng)用開放接口(Open Interface and API)
十三、結(jié)語
七、值集與查找代碼(Value Set and Lookup Code)
日常工作中,用戶在表單的字段(包括彈性域字段)中輸入數(shù)據(jù)的方式無外乎兩種:一種是直接手工鍵入,例如訂單中的數(shù)量(數(shù)值)或文字說明(字符)等等;另一種就是所謂“LOV”(List of Value),用戶只能從某個預(yù)先定義的“來源單據(jù)”做選擇輸入(用戶如手工輸入,系統(tǒng)可能自動針對來源單據(jù)進(jìn)行校驗以確定輸入值是否允許)。
表單字段的“LOV”輸入實際占了系統(tǒng)輸入操作的大部分情況,之所以如此的重要原因是業(yè)務(wù)實踐與系統(tǒng)實現(xiàn)的“標(biāo)準(zhǔn)化”需要。例如“人力資源管理部”這個官方正式名稱,在人們的日常工作與交流中,可能被簡化為“人力資源部、人事部、HR”等等,大家都知道它們是一回事,一般不會引起誤解。但對于系統(tǒng)來說就完全不同了,細(xì)微的差別在系統(tǒng)中都是兩個不同的對象,所以說LOV實際上也是系統(tǒng)實現(xiàn)“數(shù)據(jù)共享與集成”的基礎(chǔ)。
表單字段LOV的來源單據(jù)值種類,有些可能比較復(fù)雜,例如象“物料、供應(yīng)商、客戶”等等,這些字段的值被從來源單據(jù)帶過來時,系統(tǒng)可能還會帶過來其它若干相關(guān)重要信息到表單的其它相關(guān)字段上去。而有些可能就比較簡單,例如屬于通用基礎(chǔ)數(shù)據(jù)范疇的“單位UOM、幣別Currency以及日期Date”等。還有些雖然也比較簡單,但通常需要用戶預(yù)先做好定義,例如企業(yè)的“部門名稱列表”等,這些LOV在系統(tǒng)中通常稱之為“值集”(Value Set)。
在系統(tǒng)中定義一個完整的“值集”需要兩個相互獨立又相互關(guān)聯(lián)的階段,首先是定義“值集名”,系統(tǒng)中可以定義若干個不同用途的值集名,對于每一個值集(名),在定義界面可以對其相關(guān)屬性(如“驗證類型:無、獨立、從屬、表”等)做出相應(yīng)規(guī)定,以使其符合實際工作的需要。如圖21所示為“部門名稱”的“值集名”定義(或查找)界面:
其次,就是為已經(jīng)定義好的“值集名”賦予具體的值(驗證類型為“無”的除外),以組成系統(tǒng)可用的LOV。如下圖22所示,其中,有些值之間還可以根據(jù)需要定義形成某種“層次結(jié)構(gòu)”,“父子值”之間具有“匯總與被匯總”的關(guān)系。
驗證類型為“從屬”或“表”的值集定義比較特殊,前者需先定義所從屬的“獨立”值集。后者則是將某個系統(tǒng)內(nèi)的“應(yīng)用表”作為自己的LOV來源(如“定義供應(yīng)商”表單維護(hù)的供應(yīng)商名稱表),值集定義時,需規(guī)定使用哪些表,并定義 WHERE 子句來限制值集要使用的值。
使用值集LOV的表單字段的值幾乎都有一個共同的特性是,一般不直接參與業(yè)務(wù)流程的構(gòu)建,或不直接影響業(yè)務(wù)流程的運行。然而系統(tǒng)表單的某些字段是需要承擔(dān)“流程構(gòu)建”工作的,這些表單字段有些需要手工輸入,有些則可能是系統(tǒng)流程運行時自動賦值或在不同流程階段自動改寫(例如,表單狀態(tài)“未完成、已保存、已批準(zhǔn)、已拒絕”等等),有些值在表單中通常“可見”,有些則可能是在特殊情況下才可見。
上述這些表單的特殊字段(域)的LOV,一般是由系統(tǒng)在所謂“查找代碼”(Lookup Code)功能中定義的。ORACLE在系統(tǒng)層面于一個統(tǒng)一的界面(Form)中按模塊、按引用字段進(jìn)行全部Lookup Code定義。如圖23所示庫存相關(guān)表單中使用到的物料的“需求類型”定義:
Lookup Code系統(tǒng)的定義分為三種情況(訪問級別),一種是“系統(tǒng)級”,屬于ORACLE預(yù)定義且不允許用戶添加。這種情況下的“代碼值”(Code)基本都屬于系統(tǒng)的應(yīng)用程序中需要引用到的,影響或決定著系統(tǒng)業(yè)務(wù)流程的運行;二種是“用戶級”,屬于非系統(tǒng)預(yù)定義而由用戶自己添加,這種情況下的代碼值一般不被應(yīng)用程序所引用,其作用與前述值集LOV值大體相同;三種是“可擴(kuò)展級”,屬于ORACLE預(yù)定義但允許用戶添加。這種情況下的系統(tǒng)預(yù)定義值與“系統(tǒng)級”的定義值作用基本相同,而用戶添加的部分,其作用則與“用戶級”基本相同。
ORACLE的所謂“配置文件”實質(zhì)上就是人們已經(jīng)耳熟能詳?shù)乃^系統(tǒng)“參數(shù)”(不明白當(dāng)初的中文翻譯為何弄得如此奇怪)。ORACLE中的配置文件或參數(shù)涉及兩個過程:一是配置文件的本身定義(Definition);二是配置文件的應(yīng)用設(shè)置(Setup)。
ORACLE系統(tǒng)的預(yù)定義配置文件數(shù)量雖達(dá)七、八千之多,但這些配置文件對于用戶來說都是透明可見的,并不神秘。系統(tǒng)提供“配置文件”定義界面,供用戶對配置文件的某些屬性(甚至應(yīng)用程序)進(jìn)行調(diào)整或修改,用戶也可以根據(jù)自己的需要自定義新的配置文件。如下圖24所示配置文件的定義:
值得指出的是,系統(tǒng)預(yù)定義的“配置文件名”有一定命名規(guī)則(適用于大多數(shù)配置文件,少數(shù)例外),例如“MRP:忽略替代BOM/工藝路線”,前面的MRP是模塊代碼,代表屬于哪個應(yīng)用模塊,后面的部分則是代表具體用途。這種“命名規(guī)則”使我們很容易查找到針對不同模塊的相關(guān)參數(shù)。盡管系統(tǒng)預(yù)定義配置文件或參數(shù)的數(shù)量是如此之多,令人生畏,但歸納起來,可以發(fā)現(xiàn)按用途大致劃分為三類:
一類是真正起到控制業(yè)務(wù)流程運作或事務(wù)處理方式的部分,這些參數(shù)就如人們通常所津津樂道的所謂“流程開關(guān)”;二類實際并不直接控制流程運作或事務(wù)處理,只是起到一個向表單上默認(rèn)某些值的作用(這些默認(rèn)過去的值,有些參與流程構(gòu)建,有些僅起參考作用。用戶在表單上還是可以修改的);三類是起到某些特殊控制作用,例如改變系統(tǒng)的某些工作方式、控制UI界面的顏色字體等等,通常與具體業(yè)務(wù)關(guān)系不大。所有參數(shù)中前兩類占了絕大部分?jǐn)?shù)量(其中第一類又占主要部分),第三類數(shù)量很少。而系統(tǒng)應(yīng)用的難點與重點則是“第一類”、屬于“流程開關(guān)”那部分參數(shù)。
ORACLE系統(tǒng)的配置文件的“設(shè)置”(Setup)非常方便靈活,組合起來的應(yīng)用功能十分強(qiáng)大。系統(tǒng)的配置文件設(shè)置具有“結(jié)構(gòu)層次性”,對于某一個具體的配置文件,系統(tǒng)允許最多可以在6個層級進(jìn)行設(shè)置并發(fā)揮作用:地點層(系統(tǒng)安裝)、應(yīng)用產(chǎn)品(模塊)、責(zé)任(自定義的責(zé)任)、服務(wù)器、組織(包括OU/INV等)、用戶(自定義的用戶)。具體能在上述6個層級中的哪些層級“可見、可設(shè)置”,取決于這些配置文件的原始定義的相關(guān)屬性。并且實際應(yīng)用程序訪問時,將按照從“地點”逐步到“用戶”由低到高的“優(yōu)先級”順序發(fā)揮作用。如下圖25所示配置文件的設(shè)置:
最高優(yōu)先級的“用戶層”如果留空不賦值,則系統(tǒng)將默認(rèn)上一層級(責(zé)任層)的值作為自己的值。逐級前移直至最低優(yōu)先級的“地點層”,通常系統(tǒng)在安裝后于“地點層”有初始化的默認(rèn)值。盡管看起來配置文件數(shù)量有七八千,設(shè)置工作量巨大,但實際系統(tǒng)實施時,對于大部分企業(yè)來說,好在使用系統(tǒng)安裝時的默認(rèn)初始值就能基本符合要求,故也并不十分困難可怕。企業(yè)在實際工作過程中遇到問題時,如希望系統(tǒng)能實現(xiàn)某種功能或希望系統(tǒng)流程能按某種方式運行等等情況,則通常首先應(yīng)該基于系統(tǒng)配置文件的不同設(shè)置來尋求合適的解決方案。
此外,系統(tǒng)對于配置文件提供了“系統(tǒng)”與“用戶”兩種“安全性”(權(quán)限)的控制功能,前者一般由系統(tǒng)維護(hù)人員(如管理員)進(jìn)行控制,后者普通用戶就直接可以作設(shè)置修改,例如“UI界面的顏色、字體”等。
與手工業(yè)務(wù)模式下做單據(jù)一樣,系統(tǒng)中的所有業(yè)務(wù)流程類表單以及大部分的數(shù)據(jù)來源類表單,由于業(yè)務(wù)數(shù)據(jù)量巨大,當(dāng)然也需要進(jìn)行編號管理。ORACLE為此提供了單據(jù)的編號控制功能:自動編號、人工編號或無間隙(人工編號必須連續(xù)不斷號)。單據(jù)編號具體包括三個既相互獨立又相互關(guān)聯(lián)的三個步驟:一是定義“單據(jù)序列”(發(fā)生器);二是定義具體的“單據(jù)類別”,三是將“單據(jù)序列”分配給“單據(jù)類別”。
如圖26所示為定義“單據(jù)序列”(發(fā)生器)
如圖27所示是定義具體的“單據(jù)類別”
如圖28所示,是將單據(jù)序列發(fā)生器分配給單據(jù)類別,使兩者關(guān)聯(lián)
值得指出的是,事實上系統(tǒng)中的某些業(yè)務(wù)流程表單(例如銷售訂單),系統(tǒng)允許其自定義若干數(shù)量的“單據(jù)類別”(例如銷售訂單中的“訂單類型”或“事務(wù)處理類型”),這些自定義的“單據(jù)類別”可以擁有(被分配)各自不同的單據(jù)序列號發(fā)生器(相當(dāng)于使用時系統(tǒng)對它們各自獨立編號),也可以共同擁有同一個單據(jù)單據(jù)序列號發(fā)生器(相當(dāng)于使用時系統(tǒng)對它們混合共同編號),這為單據(jù)編號的實際使用與管理提供了很大的靈活性與方便性。另外要注意的是,系統(tǒng)中的某些單據(jù)如采購申請、采購訂單以及供應(yīng)商等也可以有其專門的編號管理機(jī)制,不能一概而論。
在企業(yè)的實際管理工作中,一個員工填寫好一份“費用報銷單”后,后續(xù)可能還需要經(jīng)過多個環(huán)節(jié)例如直接主管、上級主管、財務(wù)主管的審批,才可能到達(dá)會計(入賬)、出納(付款)手中,以完成整個工作過程。把這個工作過程“電子化”后放入系統(tǒng),就形成一個所謂的“工作流”過程。通常這個報銷單“工作流”需要經(jīng)過哪些環(huán)節(jié),是系統(tǒng)需要預(yù)先設(shè)置好的,并且可能不同的費用類別所需經(jīng)過的審批環(huán)節(jié)也是不同的。作為流程的參與者,例如“提交人、審批人”等,可以查詢、監(jiān)控單據(jù)的工作流處理過程,系統(tǒng)也可以在流程環(huán)節(jié)移動過程中,向下一環(huán)節(jié)的處理人發(fā)送提醒通知(如郵件等)。
單據(jù)的“審批流”實際是一個很簡單、很直觀的“工作流”應(yīng)用。推而廣之到系統(tǒng)中其它業(yè)務(wù)流程類表單的事務(wù)處理過程,所謂系統(tǒng)的“工作流”技術(shù)應(yīng)用就是:根據(jù)不同的業(yè)務(wù)單據(jù)類別,事先定義好需要經(jīng)過的不同業(yè)務(wù)處理環(huán)節(jié),單據(jù)在做事務(wù)處理時,按規(guī)定順序在相關(guān)環(huán)節(jié)間移動。用戶可監(jiān)控,即普通用戶可以查看工作流的處理過程狀態(tài);系統(tǒng)可管理,即系統(tǒng)工作流管理員,必要時可以對單據(jù)的工作流過程進(jìn)行干預(yù),例如跳過某些環(huán)節(jié)、改變參與人等等。
ORACLE系統(tǒng)核心業(yè)務(wù)模塊OM中關(guān)于銷售訂單的處理,就是一個典型的“工作流”技術(shù)使用范例。系統(tǒng)根據(jù)實際業(yè)務(wù)處理的需要,先定義好不同的銷售訂單“行類型”。例如“Ship only”,表示發(fā)給客戶的這個貨物免費、不需開票(例如因為貨物質(zhì)量問題而補(bǔ)發(fā)等原因);“Service”,表示這是向客戶提供的無形服務(wù),無需發(fā)貨,但需根據(jù)訂單行開票向客戶收費等等。再給這些訂單“行類型”分配一個合適的系統(tǒng)已經(jīng)定義好的“行工作流”。如圖29所示OM銷售訂單“行類型—行流”分配定義:
上述系統(tǒng)用于分配給“行類型”的行工作流,ORACLE提供了預(yù)定義的多種不同類別供用戶在設(shè)置系統(tǒng)時做選擇。更進(jìn)一步,ORACLE還提供“Workflow Builder”軟件包工具(這個軟件可以到ORACLE官網(wǎng)上自由下載使用),以便用戶對于系統(tǒng)所有預(yù)定義的流程進(jìn)行復(fù)制修改,或自定義符合使用要求的特殊流程。
對于具體的每一個銷售訂單,同一訂單中可能包含不同行類型的訂單行,這些訂單行將循著各自的“行工作流”而進(jìn)行事務(wù)處理。系統(tǒng)在表單界面的工具欄提供“工作流狀態(tài)查詢”的功能,用戶可以隨時對訂單中的每一個訂單行的系統(tǒng)處理過程實施監(jiān)控、查詢。
如下圖30所示銷售訂單行的工作流監(jiān)控功能使用界面:
在上圖中點擊“工作流狀態(tài)”功能,則系統(tǒng)將打開屬于訂單行1.1的工作流WEB查詢頁面。系統(tǒng)提供“活動歷史記錄”與“狀態(tài)圖”兩種主要查詢方式,分別如下圖31與圖32所示。圖31表示訂單行的活動歷史記錄,系統(tǒng)從用戶輸入訂單開始,對于后續(xù)幾乎每一步事務(wù)處理操作都做了記錄。
圖32所示以直觀圖形方式顯示的訂單行流程狀態(tài)。
需要指出的是,并非所有業(yè)務(wù)流程類表單都要采用類似銷售訂單的“工作流”處理方式,例如“采購訂單”的處理等。系統(tǒng)應(yīng)用模塊是否使用、如何使用“工作流”技術(shù),與具體的業(yè)務(wù)實踐以及采用之的優(yōu)缺點取舍有很大關(guān)系,不能一概而論。從系統(tǒng)開發(fā)設(shè)計的角度來看,盡管“工作流”于技術(shù)層面并不難掌握,但要與業(yè)務(wù)實踐實現(xiàn)很好的結(jié)合則并非易事。目前國內(nèi)主流產(chǎn)品基本都宣稱具有“工作流”技術(shù),但真正在系統(tǒng)核心業(yè)務(wù)流程中用得比較好的并不多見,大多只是在“單據(jù)審批”或非核心的事務(wù)處理型業(yè)務(wù)諸如“費用報銷”等領(lǐng)域中有所應(yīng)用。
此外,在EBS中有關(guān)“單據(jù)審批”的工作流應(yīng)用只是“單據(jù)審批”的系統(tǒng)實現(xiàn)方式之一。為滿足企業(yè)的復(fù)雜業(yè)務(wù)環(huán)境的需要,結(jié)合工作流技術(shù),系統(tǒng)還專門提供了一個審批功能更為強(qiáng)大且相對獨立的引擎模塊“審批管理”(AME)作為“外圍產(chǎn)品”供企業(yè)選擇使用。(