2024年4月17日

如何啟動 SLA MO Security (依 Property Manager 為例)

看起來, Oracle 預設就沒有在  Property Manager (PN) 啟動 SLA 的 MO Policy. 這個會造成如果你的 Ledger 底下有多個 Operation Unit, 它們會在同一個 Create Accounting 底下把全部 OU 的 Subledger 資料都跑出來. 當然就結果論來說, 反正它拋轉到 GL 本來就都是在同一個 Ledger 底下, 從 GL 的角度來看不是個問題; 可是如果使用者會在意 (比如, 把 Create Accounting 的結果當成是一個 Review 節點), 那就是個問題了.

思考點

就我這邊的環境來看, 同 Ledger 有多個 OU 並不是剛出現的情況, 但只有這個 PN 出了這個問題 (AR, AP, FA 等都沒有同樣結果), 那八成是跟 Application 有關. 另外, OU 的問題就應該是跟 MO 設定有關, 但是在看過 Profile "MO: Operating Unit" 與 "MO: Security Profile" 都沒問題後, 就覺得應該還有另外的東西是我不熟悉的.

參考文章

Create Accounting Creates a Single Journal For All Inventory Org. Parameter 'Inventory Organization' not enabled (Doc ID 556261.1)

實際作業

第一步: 更新該 Application 在 XLA_SUBLEDGERS 的設定值

UPDATE  XLA_SUBLEDGERS

SET     SECURITY_FUNCTION_NAME = 'XLA_SECURITY_POLICY_PKG.MO_POLICY'

WHERE   APPLICATION_ID = 240


第二步: 產生對應的 DBA_POLICIES 資料

BEGIN

  XLA_SECURITY_PKG.SET_SUBLEDGER_SECURITY(

      P_APPLICATION_ID => 240

    , P_SECURITY_FUNCTION_NAME => 'XLA_SECURITY_POLICY_PKG.MO_POLICY'

  );

END;


第三步: 把有用到的 SLA "Application Accounting Definitions" 重新 Validate 一次

雖然畫面上是顯示 Valid, 但是因為執行完第二步後 Create Accounting 會報錯, 所以就是一千零一招就好了

2024年3月8日

用 API: PO_CREATE_REQUISITION_SV.PROCESS_REQUISITION 產生 IR 取價不正確

 用 Oracle EBS 標準 API 來產生 IR 雖然沒有報錯,但是單價 Unit Price 資訊不正確。

 (這邊指的不正確是跟用標準 Java 畫面產生一模一樣的交易資料時,取得的單價值不同)

目前發現這個 API 有兩地方有疑問:

(目前使用的 API 版本資料為 $Header: POXCARQB.pls 120.12.12020000.3 2013/05/11 10:51:12 rkandima ship $)

1) Line# 154 ~ 164

邏輯是取得 Source 與 Destination Inventory Organization 的參數 PROCESS_ENABLED_FLAG 的值,如果 兩者不同 或是 兩者都為 Y 才進入到呼叫到 Transfer Price 的程式碼。如果兩者都為 N,則直接取得 Source Organization 的成本值。

2) Line# 215

就算成功進到 Transfer Price 的區塊,當它呼叫另一個 API: GMF_GET_TRANSFER_PRICE_PUB.GET_TRANSFER_PRICE 時,似乎參數 P_TRANSFER_TYPE 是給 INTORD,但是去該 API 看它的註解,給的值應該要是 INTORG 才對。

2023年8月3日

SLA Package Name 的規則

當使用 Oracle SLA 功能, 完成設定後, Oracle 會自動產生對應的 Package 在 APPS Schema 底下, 我們要怎麼知道自動產生的 Package 是哪一個呢?

首先, 我們可以看到以下的 Package 名稱:


XLA_00222_AAD_C_012345_PKG

第一節段: XLA, 沒有什麼問題, 就表示它是 SLA 用的 Package

第二節段: 00222, 你所設定的 SLA 的 Application Accounting Definitions 是適用在哪一個 Application, 這個是 Application ID

第三節段: AAD, 不知道什麼意思, 看起來每一個都是一樣的

第四節段: C, 應該是指客製 Customize. 另外有的值是 S, 那應該就是指標準 Standard

第五節段:  012345, 這個值是當你完成 Application Accounting Definitions 後, 它的 PRODUCT_RULE_HASH_ID.

2020年7月10日

2020年6月29日

2020年6月26日

Approval Management Engine - 第1篇

其實很早之前就想要寫這一個功能,多早呢?大概是 2013 - 2014 年吧。但是,我就懶~

反正現在就是在家上班,那就慢慢地開始寫這個功能的東西吧。


AME (Approval Management Engine) 是一個處理 Oracle EBS 電子簽核流程的功能,它可以讓 Oracle EBS 的表單 (但不是全部) 的簽核流程有更大的彈性去滿足公司的需求,而不是只能按照組織架構簽核。

2019年8月19日

Oracle Pipelined Table Functions

Oracle 9i 之後, 有一個功能叫做 Pipelined, 它是一個 Function, 可是用法與 Table 相同, 優點有 :

  • 快速, 不需等查詢執行完畢,每一筆 row 直接回傳結果
  • 執行效率好
  • 可輕易達成複雜的邏輯需求
  • 將程式保留在資料庫
  • 可輸入變數
  • 可達成 Transformation ( 行列轉置 )

2019年8月16日

利用 Dual 產生一個連續號碼的資料表

有時候會需要有一個資料表,可以用來確定某些應該是連續數字的欄位資料,是否有產生跳號的情況,這時候不需要"真的"去弄一個 Temp Table,然後塞一堆數字進去:

SELECT LEVEL AS GROUP_NUM FROM DUAL CONNECT BY LEVEL <= 5

紅字的部份就是看需要來修改囉~