顯示具有 Oracle ERP Workflow 標籤的文章。 顯示所有文章
顯示具有 Oracle ERP Workflow 標籤的文章。 顯示所有文章

在 Workflow Builder 中為何無法修改 Activity 屬性內容


在 Workflow Builder 開啟某個 Activity 屬性設定, 卻無法修改, 如下 :


對於這個問題的發生,

在於 Workflow Builder 的 Access Level 設定問題,

請到 Help > About Oracle Workflow Builder 2.6.3.5 畫面 :


將 Access Level 由 100 改成 0, 然後按下 Yes 鈕 :




此時, 再去開啟 Activity 屬性設定, 就可以進行修改了.


在 Windows 7 安裝 Oracle Workflow Builder

在 Windows 7 安裝 Oracle Workflow Builder,

會出現 "作業系統版本不符合" 的錯誤訊息 :


若要正常安裝 Oracle Workflow Builder,

請設定 Workflow Builder Setup.exe 相容性, 如下 :


然後再一次安裝即可.




Oracle ERP Workflow 利用 Text 在 Notification 中顯示網頁鏈結

在 Oracle ERP Workflow 的 Notification 中,

可以利用 Text attribute type 做為 URL 鏈結,

步驟, 如下 :

1) 在 Message 下增加 Message Attribute :




2) Message 的 HTML Body 中, 寫入 message attribute 做為網頁 :


3) 設定 Message Attribute 的資料值 :
 程式碼
WF_ENGINE.SETITEMATTRTEXT( itemtype => P_ITEM_TYPE
, itemkey => P_ITEM_KEY
, aname => 'WF_ATTACHMENT'
, avalue => V_ATTACHMENT_URL
);

4) 執行效果 :

Oracle ERP Workflow 利用 URL 在 Notification 中顯示網頁鏈結

在 Oracle ERP Workflow 的 Notification 中,

可以利用 URL attribute type 顯示 URL 鏈結

有兩種方式, 如下 :


方式 1

1. 建立 Message Attribute, Attach Content 勾選 :


2. 執行結果 :



方式 2

1. 建立 Message Attribute, Attach Content 不勾選


2. Message Body 設定 :


3. 執行結果 :

Workflow 遇到 ORA-4061 / ORA-4065 / ORA-4068 的錯誤處理

在 Oracle ERP 中, 若更新 Workflow 運行用的 DB Package, 就會有可能出現這個錯誤,

其可能原因,如下:

1) When a package is compiled, all copies in the shared pool are flagged as invalid. The error ORA-04061 in the error stack is caused because the notification mailer is reading an old version of the package stored in memory.

2) If a stateful package is instantiated in a particular session, and then becomes invalidated, then all further references to that package in PL/SQL executed from SQL can result in an ORA-4061/ORA-4065 error message pair. Contrast this with the behavior if PL/SQL is invoked directly (not from SQL): a single set of ORA-4061/ORA-4065/ORA-4068 errors is given on the first reference; and subsequent references get no errors.

解決方式:

方式 1) 清空 Shared pool, 如下 :
程式碼
begin
sys.dbms_shared_pool.unkeep( 'Owner.Object_Name', 'P' );
dbms_output.put_line( 'Clear OK' );
exception
when others then
dbms_output.put_line( 'Error : ' || SQLERRM );
end;

方式 2) 若上述方式不可行,則執行此程式, 如下 :
 程式碼
DBMS_SESSION.RESET_PACKAGE;

方式 3) 若上述方式還不行,則 Apply RDBMS patch 2747350 on top of database version 9.2.0.5.

希望對被此問題困擾的人, 有所幫助.

Oracle Workflow ERROR_MESSAGE=3835 的錯誤處理

在 Oracle ERP 的 Workflow 流程中,

若沒有更改 Workflow 程式碼,

而以前執行都正常, 最近執行卻出現 "[WF_ERROR] ERROR_MESSAGE=3835" 的錯誤訊息,

不用懷疑, 請把 Workflow Server 重啟即可.

相關文章, 可以參考這兩篇 :

http://oraclea2z.blogspot.com/2008/11/wf-wfmlrdocumenterror-encountered.html.

http://kr.forums.oracle.com/forums/thread.jspa?threadID=500065.

解決 PR 在 approve 之後, status 仍是 In Process, 而不是 Approved 的問題 ?

在 Oracle ERP 中, 若遇此問題, 這是因為 PR approve 之後, PR Workflow (REQAPPRV) 停留在 Deferred, 如下圖 :


必須利用 Workflow Background Engine Concurrent Program 定時去處理它即可, 如下圖 :

WF_LOCAL_ROLES.DISPLAY_NAME 與 Employee Full Name 為何會不相同 ?

在 Oracle ERP 中, 會造成 wf_local_roles.display_name 與 employee full name 不相同的原因,

有可能是 User 分配 Employee 時, wf_local_roles.display_name 沒有同步更新為 employee full name.

解決方式, 有兩種 :
 方式 1
直接到 Employee 作業中, 更改一下 Employee 資料, 然後儲存,
這樣同時會將 wf_local_roles.display_name 更改為 employee full name

 方式 2
直接下 update 語法,
更改 wf_local_roles.display_name 為 employee full name (per_all_people_f.full_name)

 更新程式碼
update wf_local_roles
set display_name = (select FULL_NAME
from PER_ALL_PEOPLE_F
where PERSON_ID = (select employee_id
from fnd_user
where user_name = name
)
and EFFECTIVE_START_DATE < SYSDATE
and (EFFECTIVE_END_DATE > SYSDATE or EFFECTIVE_END_DATE is null)
)
where name = '&USERNAME';

Notification 網頁控管 Action History 的 From 與 To 顯示內容

Oracle ERP 的 Workflow Notification 網頁中, Action History 有 From、To 顯示內容,

這兩個資料的來源, 不是由 FND_USER.USER_NAME 而來,

而是由 WF_LOCAL_ROLES.DISPLAY_NAME 而來.

而 WF_LOCAL_ROLES.DISPLAY_NAME 又由 Employee Full Name (PER_ALL_PEOPLE_F.FULL_NAME) 帶來.

所以, 若要變更 From 與 To 的顯示內容, 可以直接 Update WF_LOCAL_ROLES.DISPLAY_NAME 欄位資料值即可.
 更新程式碼
update wf_local_roles
set display_name = (select FULL_NAME
from PER_ALL_PEOPLE_F
where PERSON_ID = (select employee_id
from fnd_user
where user_name = name
)
and EFFECTIVE_START_DATE < SYSDATE
and (EFFECTIVE_END_DATE > SYSDATE or EFFECTIVE_END_DATE is null)
)
where name = '&USERNAME';

p.s. 舊 Notification 的 From / To 不會顯示新的 Display Name; 新 Notification 的 From / To 才會顯示新的 Display Name.

舊 Notification :


新 Notification :

推薦 Workflow 基本入門動畫教學

對於剛接觸 Oracle ERP Workflow 的人而言,

下面的這段影片, 應非常適合入門者參考,

網址 : Workflow 基本入門的 Flash 教學.

User 登入時, 出現 'no valid responsibilities available' 錯誤

在 Oracle ERP 中, 若 User 登入時, 出現 no valid responsibilities available 錯誤, 該如何處理呢 ?

原因, 如下 :
 說明
雖然在 "Oracle ERP 作業" 中, 該 User 擁有的某些 Responsibility 沒有失效,
但在 "WF_LOCAL_USER_ROLES" table 中, 有些欄位值已失效,
而導致此錯誤訊息.

解決方式, 如下 :
 程式碼
update WF_LOCAL_USER_ROLES
set USER_END_DATE = null
, ROLE_END_DATE = null
, EFFECTIVE_END_DATE = null
, EXPIRATION_DATE = null
where USER_NAME = '&USER_NAME'
and EFFECTIVE_END_DATE > SYSDATE;

-- 避免將真正已失效的 Respsibility 又再次生效

Workflow 遇到 WFNTF_ROLE, is not a valid role or user name 錯誤

在 Oracle ERP 中, 若 Workflow 簽核指定某位 User, 卻出現 Error Name: WFNTF_ROLE, Error Message: 'User' is not a valid role or user name 錯誤, 該如何處理呢 ?

原因, 如下 :
 說明
雖然在 "Oracle ERP 作業" 中, 該 User 雖沒有失效,
但在 "WF_LOCAL_USER_ROLES" table 中, 有些欄位值已失效
或在 "WF_LOCAL_ROLES" table 中資料不存在,
而導致此錯誤訊息.

解決方式, 請按照下面方式處理 :
 利用 Standard 作業更新
1) 到 Employee 作業重新 Update 存檔.

2) 然後到 Fnd User 作業中, 清除 Employee 欄位資料, 存檔,
再設定 Employee 欄位資料, 存檔即可.

若還是無效, 則可能在 "WF_LOCAL_USER_ROLES" table 中, 有些欄位值已失效, 執行下面語法即可
 程式碼
update WF_LOCAL_USER_ROLES
set USER_END_DATE = null
, ROLE_END_DATE = null
, EFFECTIVE_END_DATE = null
, EXPIRATION_DATE = null
where USER_NAME = '&USER_NAME'
and ROLE_NAME = '&USER_NAME';

修正完畢後, 再到 Workflow 中, 將目前錯誤的 Workflow Activity 重新 Retry 即可.

Oracle Workflow 中, Message Attribute 的 Source 值為 Send 與 Respond 有何區別

在 Oracle Workflow 中, Message Attribute 有一個 Source 值,

其值有兩種 : Send 與 Respond, 而這兩個的區別, 如下 :

Send : Workflow "傳送" 資料給 User, 如: Workflow 在 Notification 顯示 Workflow 附檔內容給 User 看.


Respond : Workflow 要 User "回覆" 資料給它, 如: User 在 Notification 輸入備註資料.

Workflow 如何進行 Retry (Resubmit) or Skip

在 Oracle ERP 中, 如何讓 Workflow 進行 Retry(Resubmit) or SKIP, 好讓流程繼續往下執行,

程式碼, 如下 :
 程式碼
begin
wf_Engine.HandleError( '&item_type'
, '&item_key'
, '&activity_instance_internal_name'
, '&comflag'
, '&result'
);

commit;
end;

SKIP 範例 :
 範例
begin
wf_Engine.HandleError( 'OEOH' -- OM Order Header
, '296186' -- Header ID
, 'APPROVAL_ORDER_NTF' -- APPROVAL_ORDER_NTF (Notification for Order Approval)
, 'SKIP'
, 'PASS' -- PASS (Passes) / FAIL (Fails)
);

commit;
end;

RETRY 範例 :
 範例
begin
wf_Engine.HandleError( 'OEOH' -- OM Order Header
, '365908' -- Header ID
, 'APPROVAL_PROCESS:END' -- END (End)
, 'RETRY'
, NULL -- RETRY 不用指定流向, 給定 null 即可
);

commit;
end;

Oracle Workflow - 基本功能介紹

本文章投影片介紹 Oracle Workflow 的基本操作與介紹 :



投影片內容 :

1.Workflow 組成

2.Workflow 概觀

3.Workflow Builder 特性

4.Workflow Builder 環境

5.Workflow 整體視意圖

6.Workflow 開發步驟

7.建立新的 Workflow

8.Activity 之間的連結

9.Workflow 儲存

10.在 11.5.10 的測試

11.建立 Notification / Message

12.動態指定 Notification Performer

13.Function Activity 與其接收的 DB Procedure

14.Notification 接收的 DB Procedure

15.Timeout 處理

另外, 對於剛接觸 Oracle ERP Workflow 的人而言, 下面的這段影片, 應非常適合入門者參考, 網址 : Workflow 基本入門的 Flash 教學.
Related Posts Plugin for WordPress, Blogger...