Oracle WorkFlow(工作流)(一)
轉(zhuǎn)載自:http://hi.baidu.com/quce227/item/3dee702c66466a0343634a58
1概述
1.1工作流的概念
Workflow是EBS的基礎(chǔ)架構(gòu)技術(shù)之一,系統(tǒng)中大部分流程性的通知和審批控制、賬戶按規(guī)則自動(dòng)生成都是通過Workflow實(shí)現(xiàn)的
1.2工作流的目的
- 1. 在業(yè)務(wù)流程中發(fā)送、提供附加信息,這些附加信息以自助的Web頁(yè)面或Form的形式存在,例如:在Application中審批采購(gòu)訂單時(shí),采購(gòu)訂單的form會(huì)作為附加信息提供給審批人。
- 2. 定義業(yè)務(wù)規(guī)則。使用WorkflowBuilder(圖形化工具)修改業(yè)務(wù)規(guī)則的流程;使用PL/SQL寫流程中活動(dòng)的源代碼。
- 3. 發(fā)送電子郵件。工作流可以以電子郵件的方式向任何Application的用戶發(fā)送通知。
1.3工作流體系結(jié)構(gòu):
- 1. 開發(fā)者客戶端:只要在PC上安裝了WorkflowBuilder并且可以連接到數(shù)據(jù)庫(kù),就可以用來創(chuàng)建和修改工作流的定義。
- 2. 數(shù)據(jù)庫(kù)服務(wù)器:工作流是和Oracle的數(shù)據(jù)庫(kù)集成在一起的。
- 3.應(yīng)用服務(wù)器:包括Oracle Web Server、WebDB以及發(fā)送電子郵件的后臺(tái)程序。
- 4. 最終用戶端:安裝了瀏覽器可以使用Application、接收工作流發(fā)出的郵件和使用用來監(jiān)控工作流的Web頁(yè)面。
1.4工作流開發(fā)工具安裝
在http://www.oracle.com/technology ... workflow/index.html下載頁(yè)面上找到workflow client并下載下來,即為所要安裝的Workflow Builder。
WorkflowBuilder介紹:
用來定義和修改工作流的圖形化工具,運(yùn)行在Windows操作系統(tǒng)上。可以將一個(gè)或幾個(gè)工作流的定義保存到數(shù)據(jù)庫(kù)中或保存成一個(gè)文件。
WorkflowBuilder由‘對(duì)象瀏覽器'和‘流程圖表' 兩種窗口構(gòu)成。‘對(duì)象瀏覽器'以樹狀結(jié)構(gòu)顯示了工作流的對(duì)象構(gòu)成,最上面一層是一個(gè)數(shù)據(jù)庫(kù)連接或一個(gè)wft文件,下面一層顯示的是在數(shù)據(jù)庫(kù)或文件中包含的工作流定義,更下面一層的是構(gòu)成一個(gè)完整的工作流定義的對(duì)象(例如:屬性、流程、功能、通知、消息和快速編碼)。‘流程圖表'窗口使用‘對(duì)象瀏覽器'窗口中的對(duì)象來創(chuàng)建和修改工作流中的流程。
工作流的流程是由活動(dòng)(活動(dòng)可以是功能、通知或另一個(gè)工作流流程)和各活動(dòng)之間的連線構(gòu)成的。在應(yīng)用中可以通過工作流引擎的API來調(diào)用一個(gè)工作流的流程。一個(gè)工作流的流程開始于一個(gè)‘開始'的活動(dòng)。工作流引擎會(huì)自動(dòng)地一個(gè)接一個(gè)地運(yùn)行流程中的活動(dòng),直到遇到一個(gè)通知或一個(gè)暫停工作流流程的活動(dòng)。當(dāng)工作流引擎遇到一個(gè)通知時(shí),它會(huì)調(diào)用通知程序來發(fā)送信息給某個(gè)角色,當(dāng)用戶或角色對(duì)通知作了回應(yīng),工作流引擎會(huì)接著運(yùn)行后面的活動(dòng),直到遇到一個(gè)‘結(jié)束'活動(dòng)。
在工作流的流程中可以使用循環(huán)、分支和平行結(jié)構(gòu)以及使用子流程來實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)規(guī)則。
2工作流的組成及創(chuàng)建
在Workflow Builder的對(duì)象瀏覽器窗口中以樹狀的方式顯示了工作流的對(duì)象的組成,在樹狀結(jié)構(gòu)的第三層(也就是項(xiàng)目類型的下面一層),包含以下這些分支:屬性(Attribute)、流程(或子流程Process)、功能(Function)、通知(Notification)、信息(Message)和快速編碼(Lookup Types);一個(gè)完整的工作流的定義就是由這些對(duì)象構(gòu)成的。
2.1單據(jù)類型(Item Type)
組成工作流的對(duì)象的集合,在工作流流程中的每一個(gè)對(duì)象都必須從屬于一個(gè)項(xiàng)目類型。企業(yè)的業(yè)務(wù)有很多類別,同一種業(yè)務(wù)對(duì)應(yīng)有不同的業(yè)務(wù)流程,同時(shí)在業(yè)務(wù)流轉(zhuǎn)的過程中處理不同的業(yè)務(wù)信息。單據(jù)類型其實(shí)就相當(dāng)于一個(gè)業(yè)務(wù)類型。
單據(jù)類型屬性主要是定義業(yè)務(wù)信息,另外還包含一些在其它對(duì)象需要引用的信息,例如通知里的接收人就可以作為單據(jù)類型的屬性。單據(jù)類型的另外一項(xiàng)功能就是對(duì)工作流程進(jìn)行分類 ,所有工作流里的其它對(duì)象都屬于一個(gè)單據(jù)類型。
Item Type是個(gè)抽象的概念,為方便理解,可以看作就是一個(gè)工作流。
創(chuàng)建一個(gè)Item Type:
- § 如果你沒有打開一個(gè)data store,從File里選擇New菜單創(chuàng)建一個(gè)新的Data Store,然后從鼠標(biāo)右鍵菜單里選擇New Item Type在瀏覽樹里定義一個(gè)新的Item Type,此時(shí)單據(jù)類型的屬性頁(yè)會(huì)出現(xiàn);
- § 每一個(gè)單據(jù)類型有一個(gè)大寫的內(nèi)部名稱,最多8個(gè)字符,所有的工作流API、PL/SQL過程,SQL腳本在識(shí)別單據(jù)類型的時(shí)候都引用單據(jù)類型的內(nèi)部名稱。在內(nèi)部名稱里不能包括":"和"/"。 Internal Name相當(dāng)于Code,在程序中經(jīng)常用它來標(biāo)志一個(gè)工作流;
- § 輸入一個(gè)翻譯性的名字,該名字是一個(gè)長(zhǎng)一些的描述性名稱,Display Name相當(dāng)于User Name,你也可以在Description中為單據(jù)類型輸入一段摘要信息;
- § 指定單據(jù)類型的持續(xù)類型,Persistence:當(dāng)你定義一個(gè)單據(jù)類型時(shí),你必須指定它的Persistence Type,它主要是控制單據(jù)類型實(shí)例的狀態(tài)審核追蹤的保存時(shí)間,如果你把持續(xù)類型設(shè)置為Permanent,則運(yùn)行時(shí)的狀態(tài)信息會(huì)一直保存,除非你調(diào)用WF_Purge.Totalperm()過程清除;如果你把持續(xù)類型設(shè)置為Temporary,你必須指定持續(xù)的天數(shù),臨時(shí)持續(xù)類型的單據(jù)類型實(shí)例在完成之后至少保存你指定的持續(xù)天數(shù),在'n'天過后,你可以調(diào)用任何一個(gè)WF_Purge的API清除單據(jù)類型的運(yùn)行時(shí)信息。;
- § Selector:如果你的單據(jù)類型有或者將有多個(gè)可運(yùn)行的流程活動(dòng),定義一個(gè)PL/SQL函數(shù)決定在一個(gè)特殊的條件下運(yùn)行哪一個(gè)流程活動(dòng)。你也可以擴(kuò)展這個(gè)選擇函數(shù)為一個(gè)回調(diào)函數(shù),這樣在流程執(zhí)行的過程中,如果會(huì)話信息中斷的話,可以恢復(fù)單據(jù)類型實(shí)例的上下文信息。當(dāng)你從通知詳細(xì)頁(yè)面上去查看一個(gè)頁(yè)面屬性時(shí)特別有用;
- § 選擇"Roles"頁(yè)規(guī)定能訪問單據(jù)類型的角色(沒有用過);
- § 選擇"Access"頁(yè)規(guī)定單據(jù)類型的訪問和定制級(jí)別;
- § 選擇"應(yīng)用"保存你的修改;
- § 在瀏覽樹里會(huì)出現(xiàn)一個(gè)二級(jí)分支來表示你剛創(chuàng)建的單據(jù)類型,你可以在瀏覽樹里雙擊單據(jù)類型瀏覽或修改單據(jù)類型的屬性;
2.2屬性(Attribute)
就好像PL/SQL中的全局變量,它可以全局地被工作流流程中的活動(dòng)引用(例如:在審批采購(gòu)訂單的工作流流程中,采購(gòu)訂單的編號(hào)就是一個(gè)項(xiàng)目類型屬性,在審批流程的活動(dòng)中可以隨時(shí)獲得這個(gè)屬性的值,也就是采購(gòu)訂單的編號(hào))。
單據(jù)類型屬性是和單據(jù)類型聯(lián)系在一起的,它通常充當(dāng)一個(gè)全局變量,可以被流程里的活動(dòng)引用或者修改。單據(jù)類型屬性包含流程完成所必需的單據(jù)信息。對(duì)于活動(dòng)需要引用的信息或者通知消息里包含的信息,你通常需要定義一個(gè)單據(jù)類型屬性。
創(chuàng)建一個(gè)Attribute:
- § 選中Item Type 子樹中的Attribute/右鍵/New Attribute,出現(xiàn)屬性頁(yè)面;
- § 輸入一個(gè)大寫的內(nèi)部名稱;
- § 輸入一個(gè)顯示名稱,該名稱會(huì)出現(xiàn)在瀏覽樹里;
- § 你可以輸入一段描述摘要信息;
- § 選擇屬性的數(shù)據(jù)類型,在定義活動(dòng)屬性的時(shí)候,沒有Form,URL,Document屬性類型。一般情況下可選以下幾項(xiàng):
屬性具有10種類型,下面給出每種類型的說明:
- Oslash; Text:屬性的值是一個(gè)字符串文本;
- Oslash; Number:屬性的值是一個(gè)數(shù)字,你可以為數(shù)字類型的屬性定義一個(gè)格式掩碼;
- Oslash; Date:屬性的值是一個(gè)日期類型,你也可以為日期類型的屬性定義一個(gè)格式掩碼;
- Oslash; Lookup:屬性的值是一個(gè)查找類型的代碼;
- Oslash; Form:屬性的值是一個(gè)Oracle應(yīng)用的內(nèi)部窗體函數(shù)名稱以及函數(shù)的參數(shù);如果你在通知消息里包括了一個(gè)窗體類型的屬性,在查看通知的時(shí)候,會(huì)顯示一個(gè)窗體附件的圖標(biāo),可以讓用戶瀏覽到相應(yīng)的頁(yè)面。
- Oslash; URL:屬性的值是一個(gè)網(wǎng)絡(luò)的URL地址,如果你在通知活動(dòng)里包含了一個(gè)URL引用屬性,在查看通知的時(shí)候,會(huì)有一個(gè)指向URL的標(biāo)識(shí),用戶可以完成活動(dòng)也可以訪問URL地址或的額外的信息。
- Oslash; Document:屬性的值是一個(gè)附件文檔,你可以在默認(rèn)值里指定文檔的類型:PL/SQL文檔,通過存儲(chǔ)過程把數(shù)據(jù)庫(kù)里的信息以文檔的方式表達(dá);DM文檔,一個(gè)被外部文檔管理系統(tǒng)管理的文檔。
- Oslash; Role:屬性的值是一個(gè)角色的內(nèi)部名稱,如果在一個(gè)通知里包含了一個(gè)角色類型的屬性,則該屬性會(huì)自動(dòng)解釋為角色的顯示名稱,省去了在內(nèi)部名稱和外部名稱之間維護(hù)的工作。為了給角色類型的屬性賦一個(gè)默認(rèn)值,你必須首先從數(shù)據(jù)庫(kù)里裝載角色。
- Oslash; Attribute:屬性類型的值是對(duì)單據(jù)類型的引用。
- Oslash; Event:暫時(shí)不知?(沒有查到相關(guān)資料)
- § 根據(jù)你選擇的屬性類型,為屬性指定默認(rèn)值信息;
- § 對(duì)單據(jù)類型屬性來說,可選的默認(rèn)值是一個(gè)你輸入或從列表中選擇的常量,不過,這個(gè)常量可以是一個(gè)在運(yùn)行時(shí)替換的字符串;對(duì)活動(dòng)屬性來說,默認(rèn)值可以是一個(gè)常量或者一個(gè)單據(jù)類型屬性;
- § 選擇"應(yīng)用"保存你的修改,選擇"確定"保存你的修改并推出屬性頁(yè)面,"取消"取消你的修改并推出屬性頁(yè)面;
- § 如果你在定義一個(gè)單據(jù)類型屬性,選擇"Access"頁(yè)設(shè)置允許修改屬性的訪問級(jí)別。
你創(chuàng)建的任何Attributes類型會(huì)出現(xiàn)在瀏覽樹的"Attributes"分支下,所有的函數(shù)屬性出現(xiàn)在對(duì)應(yīng)的函數(shù)下面,你可以從瀏覽樹里雙擊一個(gè)屬性瀏覽或修改屬性的定義。
2.2.1定義一個(gè)URL屬性
- § 在屬性默認(rèn)值里指定一個(gè)URL地址,這個(gè)URL可以是一個(gè)常量或者一個(gè)從其它單據(jù)屬性返回的值;
- § 你也可以在URL里包含字符串參數(shù),這個(gè)參數(shù)可以是一個(gè)字符串文本或一個(gè)其它單據(jù)類型的格式替換。在參數(shù)字符串里采用其它單據(jù)類型進(jìn)行格式替換,需要采用如下的格式:item_attr;
- § 如果URL里包含一個(gè)參數(shù)字符串,你必須遵守如下的限制:你不能用一個(gè)文檔類型的單據(jù)類型屬性對(duì)參數(shù)進(jìn)行格式替換;你可以用表單或URL屬性對(duì)參數(shù)進(jìn)行格式替換,但不能進(jìn)行嵌套替換;
- § 如果你需要在URL里傳遞一個(gè)日期時(shí)間參數(shù),你需要使用TO_CHAR函數(shù)把日期時(shí)間轉(zhuǎn)換為如下格式:"YYYY-MM-DD+HH24:MM:SS",同樣對(duì)日起類型需要使用TO_DATE;
- § 結(jié)束工作之后選擇"確定"按鈕保存。
2.2.2定義一個(gè)Form屬性
- § 在窗體屬性頁(yè)的默認(rèn)值里指定一個(gè)窗體函數(shù)的名稱以及可選的字符串參數(shù)(窗體函數(shù)的參數(shù));
- § 默認(rèn)值必須使用下面的格式輸入:function_name:arg1=value1 arg2=value2...argn=valuen,argn的值可以是一個(gè)包含在雙引號(hào)內(nèi)的字符串,也可以是一個(gè)被其他單據(jù)類型屬性進(jìn)行格式替換的值,可以使用下面的方式定義格式替換:argn="item_attr"或者argn="value &item_attr";
- § 如果你的窗體屬性內(nèi)包括參數(shù),你必須牢記以下的限制:你不能使用一個(gè)文檔類型的屬性進(jìn)行標(biāo)記替換;你可以使用一個(gè)窗體類型或URL類型的屬性進(jìn)行標(biāo)記替換,但是你不能進(jìn)行嵌套替換;
- § 保存你的工作。
2.2.3定義一個(gè)Document屬性
- § 在屬性頁(yè)的默認(rèn)值里輸入一個(gè)標(biāo)識(shí)文檔的字符串;
- § 你可以標(biāo)識(shí)以下兩種類型的文檔:PL/SQL文檔或者存放在文檔管理系統(tǒng)里的文檔;
- § 一個(gè)PL/SQL文檔表示數(shù)據(jù)庫(kù)里的數(shù)據(jù),該文檔由一個(gè)存儲(chǔ)過程產(chǎn)生,需要使用下面的方式來指定一個(gè)PL/SQL文檔的默認(rèn)值:plsql:<procedure>/<document_identifier>。在使用時(shí)用一個(gè)包和過程名稱來替換procedure,用直接傳送給過程的字符串參數(shù)替換document_identifier,這個(gè)參數(shù)字符串應(yīng)該能標(biāo)識(shí)這個(gè)文檔。PL/SQL存儲(chǔ)過程必須按照標(biāo)準(zhǔn)的API格式來寫;默認(rèn)值的實(shí)例如下所示:plsql:po_wf.show_req/po_req:2034;
- § 如果你想動(dòng)態(tài)的生成一個(gè)PL/SQL文檔,你可以把文檔標(biāo)識(shí)定義成一個(gè)標(biāo)記替換,然后使用其它單據(jù)類型屬性的值替換,例如:plsql:po_wf.show_req/item_attr1:&item_attr2;
- § 如果想指定一個(gè)由外部文檔管理系統(tǒng)管理的文檔,可以在默認(rèn)值里輸入如下格式的信息:DM:<node_ID>:<document_ID>:[version];
- § 選擇"確定"保存你的修改。
2.3流程(Process)
流程就是業(yè)務(wù)流程的流轉(zhuǎn)規(guī)則。流程包括兩部分:流程里包含的活動(dòng)和各個(gè)活動(dòng)在不同條件下的流轉(zhuǎn)關(guān)系。在定義流程的時(shí)候,因?yàn)榱鞒汤锏幕顒?dòng)可能有不同的返回結(jié)果,我們需要把不同結(jié)果的處理活動(dòng)和結(jié)果聯(lián)系起來,另外在OracleERP里還定義了一些標(biāo)準(zhǔn)的返回結(jié)果(例如超時(shí)),你在定義流程的時(shí)候,也可以對(duì)這些內(nèi)嵌的返回結(jié)果進(jìn)行處理。在流程實(shí)例流轉(zhuǎn)的時(shí)候,流程里的活動(dòng)有自己相應(yīng)的狀態(tài),工作流引擎得到活動(dòng)的狀態(tài)改變信息或活動(dòng)返回結(jié)果之后,按照你定義的流程流轉(zhuǎn)規(guī)則控制流程的流轉(zhuǎn)。流程必須屬于一個(gè)單據(jù)類型。
流程定義里有一個(gè)標(biāo)志屬性"是否可運(yùn)行標(biāo)志",如果一個(gè)流程是可運(yùn)行的,則可以在窗體上可以直接調(diào)用,否則該流程只能作為一個(gè)子流程包含在其它的流程里面,工作流引擎在碰到流程活動(dòng)的時(shí)候,會(huì)自動(dòng)激活子流程,讓子流程流轉(zhuǎn)。
2.3.1在你畫流程圖之前,你必須先定義一個(gè)流程活動(dòng)來表達(dá)流程圖:
- § 從瀏覽樹里選擇一個(gè)單據(jù)類型,右鍵Process并從菜單里選擇"New Process",在活動(dòng)屬性頁(yè)上定義流程活動(dòng)信息;
- § 流程活動(dòng)必須有一個(gè)全部大寫的內(nèi)部名稱和一個(gè)顯示名稱,你也可以輸入一段摘要信息來描述這個(gè)活動(dòng);
- § 指定流程活動(dòng)的結(jié)果類型,流程活動(dòng)可以不返回結(jié)果;
- § 為流程活動(dòng)選擇一個(gè)圖標(biāo)來標(biāo)識(shí)它;
- § 選中Runnable,這樣你就可以把流程當(dāng)作一個(gè)獨(dú)立的流程來運(yùn)行,如果不選的話,定義的流程只能作為一個(gè)子流程在別的流程下運(yùn)行;
- § 保存你的工作;
- § 選擇"Details"頁(yè)定義流程活動(dòng)的詳細(xì)信息;
- § 選擇"Access"頁(yè)指定允許修改流程的訪問級(jí)別;
- § 保存你所作的修改;
- § 在瀏覽樹的"Processes"分支下回出現(xiàn)你新定義的流程,在瀏覽樹里用鼠標(biāo)雙擊流程就可以查看和修改流程活動(dòng)的信息。
2.3.2畫流程圖
在Oracle Workflow Builder里,流程圖采用一種圖形化的方式來顯示流程里的活動(dòng)以及活動(dòng)之間的轉(zhuǎn)移。在流程圖里用一個(gè)圖標(biāo)來表示活動(dòng),用一個(gè)箭頭來表示活動(dòng)之間的轉(zhuǎn)移。你可以從瀏覽樹里把一個(gè)活動(dòng)拖拽到流程圖里,也可以直接在流程圖里創(chuàng)建一個(gè)活動(dòng),在流程圖里雙擊一個(gè)活動(dòng)節(jié)點(diǎn)可以查看或修改節(jié)點(diǎn)的信息。通過在兩個(gè)活動(dòng)之間畫一個(gè)箭頭來表示活動(dòng)之間的轉(zhuǎn)移。
轉(zhuǎn)移在流程圖里使用一個(gè)箭頭表示的,它表示一個(gè)活動(dòng)的結(jié)束以及另外一個(gè)活動(dòng)的激活。如果一個(gè)活動(dòng)的結(jié)果類型是None,則轉(zhuǎn)移表現(xiàn)為一個(gè)指向另外一個(gè)活動(dòng)的箭頭,表示只要初始的活動(dòng)一結(jié)束,就流向下一個(gè)活動(dòng)。如果一個(gè)活動(dòng)有返回結(jié)果類型,則你必須把轉(zhuǎn)移和活動(dòng)的一個(gè)結(jié)果聯(lián)系起來,你也可以為定義了返回結(jié)果的活動(dòng)定義下面的轉(zhuǎn)移類型:Default,Any,Timeout。在沒有任何轉(zhuǎn)移匹配完成結(jié)果時(shí),工作流引擎執(zhí)行默認(rèn)的轉(zhuǎn)移;如果定義了一個(gè)人以的轉(zhuǎn)移,則不論活動(dòng)的返回結(jié)果是什么,工作流引擎就執(zhí)行這個(gè)轉(zhuǎn)移,這樣可以保證你除了在工作流里執(zhí)行和放返回結(jié)果對(duì)應(yīng)的活動(dòng)外,還可以執(zhí)行一個(gè)通用的活動(dòng)。如果一個(gè)活動(dòng)在完成之前已經(jīng)超時(shí),則工作流引擎執(zhí)行超時(shí)轉(zhuǎn)移。一個(gè)活動(dòng)的返回結(jié)果可以有多個(gè)轉(zhuǎn)移來進(jìn)行并行處理。
(1)增加一個(gè)節(jié)點(diǎn)
- § 在開始畫流程圖之前,你必須先顯示流程活動(dòng)的流程窗口,你可以通過以下的方式顯示流程窗口:在瀏覽樹里雙擊一個(gè)定義好的流程活動(dòng);選擇一個(gè)定義好的流程活動(dòng)并按下Ctrl+E;選擇一個(gè)流程活動(dòng),并從編輯菜單里選擇流程詳細(xì)信息;使用快速啟動(dòng)向?qū)?chuàng)建一個(gè)新的流程。
- § 可以通過下面的方式創(chuàng)建一個(gè)節(jié)點(diǎn):從瀏覽樹里拖拽一個(gè)活動(dòng);選擇New Function、New Notification、New Process工具欄按鈕創(chuàng)建一個(gè)節(jié)點(diǎn);在彈出菜單里選擇Create Activity創(chuàng)建一個(gè)新的節(jié)點(diǎn);
- § 按住鼠標(biāo)右健并把鼠標(biāo)從一個(gè)活動(dòng)拖到另一個(gè)活動(dòng)就在兩個(gè)活動(dòng)之間創(chuàng)建了一個(gè)轉(zhuǎn)移;
- § 如果來源活動(dòng)定義了放回結(jié)果類型,則需要把轉(zhuǎn)移和一個(gè)結(jié)果聯(lián)系起來;
- § 你可以在流程圖里進(jìn)行Copy和Paste;
(2)定義一個(gè)節(jié)點(diǎn)
- § 打開流程活動(dòng)的流程窗口;
- § 使用工具欄按鈕創(chuàng)建一個(gè)新的活動(dòng);
- § 在單據(jù)類型域里,選擇一個(gè)單據(jù)類型;
- § 采用下面的方式定義節(jié)點(diǎn)的剩余信息:選擇一個(gè)已定義活動(dòng)的內(nèi)部名稱或顯示名稱,Workflow Builder會(huì)自動(dòng)顯示出原來定義的信息;另外你也可以使用新建按鈕來創(chuàng)建一個(gè)新的活動(dòng),并根據(jù)活動(dòng)的類型分別定義它們的信息,注意,在流程圖里說做的修改都會(huì)反映到瀏覽樹里的活動(dòng)信息里;
- § 選擇"Node"頁(yè)來定義節(jié)點(diǎn)的特定信息,為節(jié)點(diǎn)指定一個(gè)標(biāo)簽,因?yàn)橐粋€(gè)活動(dòng)在一個(gè)流程里可能有多個(gè)實(shí)例,可以通過標(biāo)簽來區(qū)分同一個(gè)活動(dòng)的不同實(shí)例;
- § 指定節(jié)點(diǎn)是否為一個(gè)開始或結(jié)束節(jié)點(diǎn);
- § 如果流程有一個(gè)接過類型,你必須為結(jié)束節(jié)點(diǎn)指定一個(gè)最終的結(jié)果;
- § 你可以提供一段注釋信息供自己察看;
- § 對(duì)一個(gè)通知或一個(gè)子流程活動(dòng),你可以規(guī)定該活動(dòng)節(jié)點(diǎn)是否必須在規(guī)定的時(shí)間之內(nèi)完成;
- § 對(duì)一個(gè)通知節(jié)點(diǎn)來說,你可以覆蓋同志消息的優(yōu)先級(jí),另外需要給通知活動(dòng)指定一個(gè)執(zhí)行者,這是一個(gè)角色;
- § 保存你的修改;
- § 如果節(jié)點(diǎn)是一個(gè)函數(shù)或通知活動(dòng),并且這個(gè)活動(dòng)有參數(shù),你可以選擇節(jié)點(diǎn)屬性頁(yè)給這些活動(dòng)屬性賦值;
如果這個(gè)節(jié)點(diǎn)是一個(gè)子流程,則一個(gè)子流程的標(biāo)識(shí)會(huì)出現(xiàn)在子流程節(jié)點(diǎn)圖標(biāo)上。
- (3)定義活動(dòng)屬性值
活動(dòng)屬性值主要是別PL/SQL存儲(chǔ)過程服務(wù)的,這個(gè)存儲(chǔ)過程被函數(shù)或通知活動(dòng)調(diào)用。
- § 顯示屬性值頁(yè);
- § 選擇一個(gè)屬性;
- § 在值區(qū)域里,輸入這個(gè)屬性的值,這個(gè)值可以是一個(gè)常量也可以是一個(gè)對(duì)單據(jù)類型屬性的引用。注意,這個(gè)值的類型必須和活動(dòng)屬性的類型以及存儲(chǔ)過程參數(shù)的類型保持一致;
- § 保存你的修改。
轉(zhuǎn)載于:https://www.cnblogs.com/wanghang/p/6299261.html
總結(jié)
以上是生活随笔為你收集整理的Oracle WorkFlow(工作流)(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vim下php文件中自动缩排html代码
- 下一篇: jmeter中timeout值怎么设置_