LeetCode - SQL 50 - 1321. Restaurant Growth
看到別人的寫法, 學起來!
sum(amount) over (order by visited_on range between interval '6' day preceding and current row)
LeetCode - SQL 50 - 1321. Restaurant Growth
看到別人的寫法, 學起來!
sum(amount) over (order by visited_on range between interval '6' day preceding and current row)
看起來, 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 會報錯, 所以就是一千零一招就好了
用 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 才對。
當使用 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.
這一篇就用上一篇留下來的例子來開始說明 AME 中,屬性 (Attributes) 跟條件 (Conditions) 的使用。