顯示具有 Oracle ERP 問題處理 標籤的文章。 顯示所有文章
顯示具有 Oracle ERP 問題處理 標籤的文章。 顯示所有文章

Oracle ERP 如何註冊 User Define 的 Table, Column

利用 "ad_dd" Package, 可完成 Register Table and Column 的需求.

 註冊 Table 語法
ad_dd.register_table( P_APPL_SHORT_NAME => 'App_Short_Name'
, P_TAB_NAME => 'Table_Name'
, P_TAB_TYPE => 'T'
)

-- 若註冊成功, 則在 FND_TABLES 會有該 table 資料

 取消註冊 Table 語法
ad_dd.delete_table( P_APPL_SHORT_NAME => 'App_Short_Name'
, P_TAB_NAME => 'Table_Name'
)

 註冊 Column 語法
ad_dd.register_column( P_APPL_SHORT_NAME => 'App_Short_Name'
, P_TAB_NAME => 'Table_Name'
, P_COL_NAME => 'Column_Name'
, P_COL_SEQ => Num
, P_COL_TYPE => 'DATA_TYPE'
, P_COL_WIDTH => DATA_SIZE
, P_NULLABLE => 'Y / N'
, P_TRANSLATE => 'Y / N'
)

-- 若註冊成功, 則在 FND_COLUMNS 會有該 column 資料

 取消註冊 Column 語法
ad_dd.delete_column( P_APPL_SHORT_NAME => 'App_Short_Name'
, P_TAB_NAME => 'Table_Name'
, P_COL_NAME => 'Column_Name'
)

p.s. 最後一定要下 Commit, 才可註冊成功.

MS Windows 的 Firefox 中, 執行 Oracle ERP

若在 Firefox 開啟 Oracle ERP 網址, 出現以下畫面之後, 就沒有任何反應 :


請按照以下步驟, 進行處理 :

1) 點選 "click here" 下載 oajinit.exe 檔案.

2) 執行 oajinit.exe 來安裝 Oracle JInitiator.

3) 到 "C:\Program Files\Oracle\JInitiator 版本\bin" 目錄中, Copy "NPJinit-版本.dll" 到 "<Firefox_Home> / plugins" 目錄中 :



4) 重新開啟 Firefox, 查看附加元件有沒有 Oracle JInitiator 元件 :


5) 重新執行 Oracle ERP 網頁, 就可以正常開啟了.

Ubuntu Linux 的 Firefox 中, 執行 Oracle ERP

直接在 Ubuntu Linux 的 Firefox 瀏覽器, 在尚未做任何對應處理時,

若開啟 Oracle ERP 網址, 會出現下面的畫面, 再來就無任何反應 :


若要讓 Firefox Browser 正常執行 Oracle ERP,

請按照下面的步驟, 即可完成 Firefox 開啟 Oracle ERP 的動作 :

1) 根據 Oracle ERP 所需的 Java 版本,進行 J2RE 與 Java Plug-in 的安裝 : http://tomkuo139.blogspot.com/2009/12/ubuntu-linux-firefox-java-plugin.html.

2) 開啟 Oracle ERP 網址, 第一次 Firefox 會 Crash 關閉, 但第二次以後, 就都可以正常開啟 Oracle ERP 頁面 :




3) 在 Ubuntu Linux 9.04 執行 Oracle ERP, Menu 字型就是不顯示, 如下 :


這問題是 Ubuntu Linux 支援 "顯示卡" 的問題, 在 "Ubuntu Linux 9.10" 之後, 就自然解決了, 如下 :


4) 從 dev60cgi / f60cgi 可登入 Oracle ERP, 但從 EBS 無法開啟 Oracle ERP, 則有可能是因為 Firefox 把 Oracle ERP 當作廣告封鎖了, 請確認 Firefix 下面的設定要開啟:


 注意事項
1. 目前證實, 若從 dev60cgi / f60cgi 登入 Form 作業,
則會有必須清除 Java Cache, 才可重新登入的問題.

2. 若從 Web Base 登入開啟 Oracle ERP Form 作業,
就不會有清除 Java Cache 的問題.

~ 字元不想成為漢書的列印指令

最近, 在 Oracle ERP 的 Report 列印時, 剛好欄位資料有 ~ 字元, 導致在漢書列印 Report 時, 漢書會將 ~ 字元當做列印指令, 而導致列印錯亂,

當初為了這個字元, 傷透腦筋, 在此提供相關的解決方案, 其實很簡單, 就在產生 Report 時, 將 ~ 字元換成 ~ 字元就可以了.

Oracle ERP 的密碼規則與變更

在 Oracle ERP 中,

FND_USER 這個 table 有兩個欄位 : ENCRYPTED_FOUNDATION_PASSWORD / ENCRYPTED_USER_PASSWORD,

它們的差異, 在於
ENCRYPTED_FOUNDATION_PASSWORD 是 APPS 加密後的密碼
ENCRYPTED_USER_PASSWORD 是 ERP User 加密後的密碼,

兩者的加密 key 也不相同,

詳細文章, 請見 Oracle APPS Password Security.

而對於如何變更 APPS 密碼, 也可參考這篇文章, 請見 Use FNDCPASS to Change The Oracle Users, APPS, APPLSYS and Application Module Passwords.

而對於如何變更 ERP User 密碼, 請查看 fnd_user_pkg 這個 ERP standard package.

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.

處理 Oracle ERP JInitiator 無法安裝的問題

當第一次在 IE 開啟 Oracle ERP 時, 都會要求安裝 Oracle JInitiator,

若有發生無法順利安裝, 目前我遇到的問題與解決方式, 如下 :

1) Browser 的安全性太高 (會影響 JInitiator 安裝檔下載), 則請將 Browser 的安全性暫時拉低, 等安裝且啟動正常, 再將安全性調回.


2) Browser 的封鎖功能 (會影響 JInitiator 安裝檔下載), 則請將 Browser 的封鎖功能暫時關閉, 等安裝且啟動正常, 再將封鎖功能調回.


3) 其他瀏覽器外掛程式的封鎖 (會影響 JInitiator 安裝檔下載), 則請將外掛程式的封鎖功能暫時關閉, 等安裝且啟動正常, 再將封鎖功能調回.

4) 防毒軟體擋住安裝 (會隔離 JInitiator 安裝時的 autorun.inf 暫存檔), 則請先將防毒軟體暫時關閉, 等安裝且啟動正常, 再將防毒軟體開啟.


以上, 供各位參考.

解決 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';

快速修改 Oracle ERP 使用者帳號

在 Oracle ERP 中, 如何快速更改使用者帳號,

而不是到使用者作業中, 一個一個修改,

或者自己 update table, 卻又怕有遺漏,

不用擔心, Oracle ERP 本身有提供一個 Package, 用來更改帳號, 如下 :
 程式碼
begin
fnd_user_pkg.change_user_name( 'old_user_name', 'new_user_name' );
end;

這樣子, 除了客制的 Table 之外, 所有 Oracle ERP 有關於舊帳號的資訊, 一律換成新帳號, 不用擔心遺漏.

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 ERP 的線上文件

Oracle ERP 因為本身系統的龐大複雜,

所以, 當愈到問題時, 就會需要一些文件,

Oracle 本身也提供了線上文件 (Online-Document),

在此分享給同樣受 Oracle ERP 所苦的朋友們,

網址 : http://download.oracle.com/docs/cd/B25516_18/current/html/docset.html

希望對你們有所幫助.

為何在 WIP_TRANSACTIONS 找不到某工單資料

在 Oracle ERP 中, 若工單的所有 Operation Resource,

其 Charge Type 值, 都沒有 WIP Move,

那麼在工單繳庫時, 就不會在 WIP_TRANSACTIONS 產生任何資料.

直接判斷某個 Item 是否為 "買進賣出商品"

在 Oracle ERP 中, 如何判斷某個 Item 是否為 "買進賣出商品", 則不做加工 or 製造,

可以由 Item 作業的 Build in WIP 欄位做判斷, 如下圖所示 :

FRM-41081 : Cannot move Item: invalid position 錯誤處理

在 Oracle ERP 中, 若一個 Canvas 在不同條件時, 要顯示不同的 Block 資料,

會用到 show_view, 處理 Block 對應的 Stacked Canvas 顯示與否,

這時候, 就會處理到 Block 的 Scrollbar 顯示問題,

因 Scrollbar 並無 API 控管其是否顯示,

只能變相, 將 Scrollbar 搬離至 Viewport 之外,

語法, 如下 :
 語法
set_block_property( 'blockName', BLOCKSCROLLBAR_X_POS, xPos );

但是若將 Scrollbar 搬出 Canvas 範圍外, 就會出現 FRM-41081 的錯誤了,

務必要小心喔.

APP-FND-01242 : Cannot read value from field ...

原因 : Value Set 中有設定的 Filed Item, 但是在 Form 中沒有該 Field Item, 導致讀不到該 Field Item 的資料值.

 方式 1
客制 Form, 新增缺少的 Block / Field Item 即可.

缺點 1 : 有使用此 Value Set 的 Form, 都要新增此 Block / Item, 若有 n 個 Form 有用到此 Flexfield, 就必須客制 n 個.

缺點 2 : 怕會有遺漏的 Form 也使用此 Flexfield, 而沒有客制到, 導致作業時會有此錯誤訊息.


 方式 2
將使用到此 Value Set 的 Flexfield 拉到畫面上, 然後, 此 Flexfield 不配置 Value Set, 不顯示此 Flexfield, 且改由 LOV 抓出資料.
(此做法 : 參考這裡)

優點 : 只需客制目前的 Form 即可.

正確顯示 Record History 資料

在 Oracle ERP 的 Help Menu 中, 有一個 Record History 作業, 如下 :


若其作業, 無法正常顯示 Record History :


則請檢查 Current Block 所使用的 Table / View 中,是否以下幾個欄位的 "欄位名稱是否存在" or "欄位名稱是否正確":

1) LAST_UPDATE_DATE : 最後修改日期

2) LAST_UPDATED_BY : 最後修改資料的 ERP User ID

3) CREATION_DATE : 建立日期

4) CREATED_BY : 建立資料的 ERP User ID

5) LAST_UPDATE_LOGIN : 登入系統的 OS User ID (可有可無)

除了第 5 個以外, 若缺少其中一個, 則 Record History 就無法正常顯示了.

FRM-40405: No changes to apply

在 Oracle ERP 中存檔時, 若出現 "FRM-40405: No changes to apply" 的錯誤訊息時, 可能的原因有以下幾種 :

1) Data Block 的資料沒有異動, 存檔時會出現
 錯誤
"FRM-40401: No changes to save" or "FRM-40405: No changes to apply" 的錯誤

這已不是程式的問題, 而是 User 沒有異動資料, 就做存檔動作導致.

2) 由 Open_Form 指令開啟 New Form, 在 New Form 做存檔時, 因為 Old Form 並未做異動, 而導致出現 "FRM-40405: No changes to save" 錯誤,

所以, 解決方式, 如下:
 方式
Open_Form 的第三個參數 session_mode = session, 而不是 no_session

也就是說, 在 Open_Form 開啟 New Form 時, 能夠讓 New Form 有其獨立的 Session, 讓 New Form commit 時, 不會影響到 Old Form.

以上, 幾種方式的問題與解答, 供各位參考.
Related Posts Plugin for WordPress, Blogger...