看起來, 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 會報錯, 所以就是一千零一招就好了