PIXNET Logo登入

Aloz 的 Oracle ERP 天地

跳到主文

幫自己在學習 Oralce ERP 時, 留一點記錄與備忘

部落格全站分類:職場甘苦

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 8月 13 週二 201314:16
  • Sales Order Line Update API (OE_ORDER_PUB.PROCESS_ORDER)

直接就貼 Sample Code 上來 (以 Update "Schedule Ship Date" 為例)
DECLARE
L_USER_ID NUMBER;
L_RESP_ID NUMBER;
L_APPL_ID NUMBER;
L_HEADER_REC_IN OE_ORDER_PUB.HEADER_REC_TYPE;
L_LINE_TBL_IN OE_ORDER_PUB.LINE_TBL_TYPE;
L_ACTION_REQUEST_TBL_IN OE_ORDER_PUB.REQUEST_TBL_TYPE;
L_HEADER_REC_OUT OE_ORDER_PUB.HEADER_REC_TYPE;
L_LINE_TBL_OUT OE_ORDER_PUB.LINE_TBL_TYPE;
L_HEADER_VAL_REC_OUT OE_ORDER_PUB.HEADER_VAL_REC_TYPE;
L_HEADER_ADJ_TBL_OUT OE_ORDER_PUB.HEADER_ADJ_TBL_TYPE;
L_HEADER_ADJ_VAL_TBL_OUT OE_ORDER_PUB.HEADER_ADJ_VAL_TBL_TYPE;
L_HEADER_PRICE_ATT_TBL_OUT OE_ORDER_PUB.HEADER_PRICE_ATT_TBL_TYPE;
L_HEADER_ADJ_ATT_TBL_OUT OE_ORDER_PUB.HEADER_ADJ_ATT_TBL_TYPE;
L_HEADER_ADJ_ASSOC_TBL_OUT OE_ORDER_PUB.HEADER_ADJ_ASSOC_TBL_TYPE;
L_HEADER_SCREDIT_TBL_OUT OE_ORDER_PUB.HEADER_SCREDIT_TBL_TYPE;
L_HEADER_SCREDIT_VAL_TBL_OUT OE_ORDER_PUB.HEADER_SCREDIT_VAL_TBL_TYPE;
L_LINE_VAL_TBL_OUT OE_ORDER_PUB.LINE_VAL_TBL_TYPE;
L_LINE_ADJ_TBL_OUT OE_ORDER_PUB.LINE_ADJ_TBL_TYPE;
L_LINE_ADJ_VAL_TBL_OUT OE_ORDER_PUB.LINE_ADJ_VAL_TBL_TYPE;
L_LINE_PRICE_ATT_TBL_OUT OE_ORDER_PUB.LINE_PRICE_ATT_TBL_TYPE;
L_LINE_ADJ_ATT_TBL_OUT OE_ORDER_PUB.LINE_ADJ_ATT_TBL_TYPE;
L_LINE_ADJ_ASSOC_TBL_OUT OE_ORDER_PUB.LINE_ADJ_ASSOC_TBL_TYPE;
L_LINE_SCREDIT_TBL_OUT OE_ORDER_PUB.LINE_SCREDIT_TBL_TYPE;
L_LINE_SCREDIT_VAL_TBL_OUT OE_ORDER_PUB.LINE_SCREDIT_VAL_TBL_TYPE;
L_LOT_SERIAL_TBL_OUT OE_ORDER_PUB.LOT_SERIAL_TBL_TYPE;
L_LOT_SERIAL_VAL_TBL_OUT OE_ORDER_PUB.LOT_SERIAL_VAL_TBL_TYPE;
L_ACTION_REQUEST_TBL_OUT OE_ORDER_PUB.REQUEST_TBL_TYPE;
L_CHR_PROGRAM_UNIT_NAME VARCHAR2 (100);
L_CHR_RET_STATUS VARCHAR2 (1000) := NULL;
L_MSG_COUNT NUMBER := 0;
L_MSG_DATA VARCHAR2 (2000);
L_NUM_API_VERSION NUMBER := 1.0;

CURSOR C_SO_DETAILS IS
SELECT OH.HEADER_ID
, OL.LINE_ID
, OH.ORDER_NUMBER AS SO_NUMBER
, MSI.SEGMENT1
, OL.LINE_NUMBER || '.' || OL.SHIPMENT_NUMBER AS LINE
, OL.INVENTORY_ITEM_ID
FROM OE_ORDER_HEADERS_ALL OH
, OE_ORDER_LINES_ALL OL
, MTL_SYSTEM_ITEMS MSI
WHERE 0 = 0
AND OH.HEADER_ID = OL.HEADER_ID
AND OL.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
AND MSI.ORGANIZATION_ID = OL.SHIP_FROM_ORG_ID
AND OL.LINE_ID = 1
;
BEGIN
SELECT USER_ID
INTO L_USER_ID
FROM FND_USER
WHERE USER_NAME = 'ABC'
;

SELECT RESPONSIBILITY_ID
, APPLICATION_ID
INTO L_RESP_ID
, L_APPL_ID
FROM FND_RESPONSIBILITY_VL
WHERE RESPONSIBILITY_NAME LIKE 'Order Management Super User'
;

FND_GLOBAL.APPS_INITIALIZE (L_USER_ID, L_RESP_ID, L_APPL_ID);

FOR ISO_REC IN C_SO_DETAILS LOOP
L_LINE_TBL_IN (1) := OE_ORDER_PUB.G_MISS_LINE_REC;

L_LINE_TBL_IN (1).LINE_ID := ISO_REC.LINE_ID;
L_LINE_TBL_IN (1).SCHEDULE_SHIP_DATE := SYSDATE; --TO_DATE(ISO_REC.UPDATE_SSD,'DD-MON-RRRR HH24:MI:SS');
L_LINE_TBL_IN (1).OPERATION := OE_GLOBALS.G_OPR_UPDATE;

OE_MSG_PUB.DELETE_MSG;

OE_ORDER_PUB.PROCESS_ORDER (
P_API_VERSION_NUMBER => L_NUM_API_VERSION
, P_INIT_MSG_LIST => FND_API.G_FALSE
, P_RETURN_VALUES => FND_API.G_FALSE
, P_ACTION_COMMIT => FND_API.G_FALSE
, P_LINE_TBL => L_LINE_TBL_IN
, X_HEADER_REC => L_HEADER_REC_OUT
, X_HEADER_VAL_REC => L_HEADER_VAL_REC_OUT
, X_HEADER_ADJ_TBL => L_HEADER_ADJ_TBL_OUT
, X_HEADER_ADJ_VAL_TBL => L_HEADER_ADJ_VAL_TBL_OUT
, X_HEADER_PRICE_ATT_TBL => L_HEADER_PRICE_ATT_TBL_OUT
, X_HEADER_ADJ_ATT_TBL => L_HEADER_ADJ_ATT_TBL_OUT
, X_HEADER_ADJ_ASSOC_TBL => L_HEADER_ADJ_ASSOC_TBL_OUT
, X_HEADER_SCREDIT_TBL => L_HEADER_SCREDIT_TBL_OUT
, X_HEADER_SCREDIT_VAL_TBL => L_HEADER_SCREDIT_VAL_TBL_OUT
, X_LINE_TBL => L_LINE_TBL_OUT
, X_LINE_VAL_TBL => L_LINE_VAL_TBL_OUT
, X_LINE_ADJ_TBL => L_LINE_ADJ_TBL_OUT
, X_LINE_ADJ_VAL_TBL => L_LINE_ADJ_VAL_TBL_OUT
, X_LINE_PRICE_ATT_TBL => L_LINE_PRICE_ATT_TBL_OUT
, X_LINE_ADJ_ATT_TBL => L_LINE_ADJ_ATT_TBL_OUT
, X_LINE_ADJ_ASSOC_TBL => L_LINE_ADJ_ASSOC_TBL_OUT
, X_LINE_SCREDIT_TBL => L_LINE_SCREDIT_TBL_OUT
, X_LINE_SCREDIT_VAL_TBL => L_LINE_SCREDIT_VAL_TBL_OUT
, X_LOT_SERIAL_TBL => L_LOT_SERIAL_TBL_OUT
, X_LOT_SERIAL_VAL_TBL => L_LOT_SERIAL_VAL_TBL_OUT
, X_ACTION_REQUEST_TBL => L_ACTION_REQUEST_TBL_OUT
, X_RETURN_STATUS => L_CHR_RET_STATUS
, X_MSG_COUNT => L_MSG_COUNT
, X_MSG_DATA => L_MSG_DATA
);

L_MSG_DATA := NULL;

IF L_CHR_RET_STATUS <> 'S' THEN
FOR IINDX IN 1 .. L_MSG_COUNT LOOP
L_MSG_DATA := L_MSG_DATA || ' ' || OE_MSG_PUB.GET (IINDX);
END LOOP;
END IF;

DBMS_OUTPUT.ENABLE (10000);
DBMS_OUTPUT.PUT_LINE ('Sales Order => ' || ISO_REC.SO_NUMBER || ' - Line Number => ' || ISO_REC.LINE);
DBMS_OUTPUT.PUT_LINE ('Return Status: ' || L_CHR_RET_STATUS);
DBMS_OUTPUT.PUT_LINE ('Error Message: ' || L_MSG_DATA);
END LOOP;

COMMIT;
END;
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(1) 人氣(3,004)

  • 個人分類:Order Management
▲top
  • 2月 07 週四 201316:59
  • (R12) Customer Standard Error "You have insufficient privileges for the current operation. Please contact your System Administrator"

如果你的 Responsibility 的 Menu 是套用標準的 OM Menu (ONT_SUPER_USER) 或 OM > Customer 功能是使用標準的 Submenu (ONT_CUSTOMERS), 那你有可能會遇到這個問題, 可是使用 AR 下的 Customer 正常....

- 情境:
1. 點選 Customer Standard
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(0) 人氣(422)

  • 個人分類:Order Management
▲top
  • 12月 01 週六 201205:52
  • Order Organizer 的自訂 Query

Order Organizer : Result
Order Organizer 是很好用的查詢介面, 除了不能維護資料之外, 其他的功能都與 Sales Order 沒有太大的不同. 不過, 也是有它獨特的功能可以介紹, 就是自定查尋 (Query)

當在 Order Organizer Find 畫面輸入完查詢條件之後, 會看到結果視窗, 左手邊就是要介紹的功能 :
- Search Results : 目前的查詢結果
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(0) 人氣(294)

  • 個人分類:Order Management
▲top
  • 2月 01 週二 201111:04
  • Customer Address Location 欄位

看到對岸論壇有人在問, Customer 主檔的 Business Purpose 中的 Location 欄位可不可以自動給值?
雄雄想到, 我們家的系統一直以來都是自動給值的 (序號), 所以這應該是有一個設定可以調整, 很快的就找到了 :
OM Superuser > Setup > Customers > System Options > Trans and Customers > Automatic Site Numbering
當這個設定有勾選, Location 欄位就會反灰, 在存檔後自動給予一編號, 反之, 則開放給使用者自行給予, 且為必填
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(0) 人氣(166)

  • 個人分類:Order Management
▲top
  • 12月 27 週一 201014:51
  • OE_BLANKET_PUB.Process_Blanket

想要找看看, 在 11i 的版本中, 是不是 API 給 Blanket Sales Agreement (BSA) 使用, 結果很遺憾的沒有, 只有 R12 限定 (囧)
Doc ID : 790223.1
Purpose
This note is intended to show how the creation of Blanket Sales Agreement action can be simulated using the newly available Public API in R12.1.1. .
Scope and Application
The intended audience is for those with technical knowledge of Oracle Applications Code, the usage of public APIs, and those familiar with creating custom solutions for unique business requirements.
How to create Blanket Sales Agreement using public API OE_BLANKET_PUB.Process_Blanket in Oracle Order Management
Assumption: 
=========== 
The following setups related to the Blanket Sales Agreement are not in the scope of this document  
and we assume that these setup steps are already in place. 
1. Setup of order transaction type 
2. Setup of document sequence 
3. Setup of document assignment 
The Blanket Sales Agreement feature has been around from Release 11.5.9 and  
its creation in Order Management has been supported from Blanket Sales Agreement Form. 
From Release 12.1.1, support has been provided to create BSA from backend using the newly  
available public API OE_BLANKET_PUB.Process_Blanket(). 
The sales Agreement functionality supports standard, ATO items and Kits 
and also includes the ability to create releases by order import and process order API.  
Sales Agreement header created usually includes the following information 
   - Customer, ship to , Bill to , Version e.t.c 
   - Effective Dates  
   - Payment and freight terms between the customer and supplier 
   - Sales Agreement Min and Max quantity 
   - Control flag to determine whether you can exceed the maximum value 
   - Pricing information such as Standard price lists or Sales Agreement price lists. 
Sales Agreement Lines Include the following information 
   - Item categories to store the categories and ALL ITEMS to cover all items. 
   - Min and Max quantity agreed by the customer and supplier 
   - Price including the choice of price list in addition to line level  
     modifiers: Discount % and discount amount. 
   - Effective dates
Procedure Parameter Description: 
******************************** 
OE_BLANKET_PUB.process_Blanket() accepts the following parameters
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(2) 人氣(3,607)

  • 個人分類:Order Management
▲top
  • 9月 17 週五 201013:18
  • Defaulting Rule 設定方式


之前有寫過一篇 Defaulting Rule 與 Package (http://aloz0101.pixnet.net/blog/post/17066963), 不過裡面沒有提到 Defaulting Rule 的設定方式, 就用這篇來說吧
畫面路徑 : OM > Setup > Rules > Defaulting
範例功能 : 如何設定自動給 Subinventory
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(4) 人氣(941)

  • 個人分類:Order Management
▲top
  • 6月 25 週五 201016:04
  • Quantity cannot be greater than original quantity

當 User 操作 RMA 單時, 選擇了 Reference 後, Book order 會發生 "Quantity cannot be greater than original quantity" 的錯誤訊息. 不過, 標準畫面很難查的出來是哪一張 RMA 單 Reference 了同一張單子, 所以無法處理.
SELECT OOH1.ORDER_NUMBER A1
, OOL1.ORDERED_ITEM A2
, OOL1.LINE_NUMBER A3
, OOL1.ORDERED_QUANTITY A4
, OOH1.FLOW_STATUS_CODE A5
, OOH2.ORDER_NUMBER B1
, OOL2.LINE_NUMBER B1
, OOL2.ORDERED_QUANTITY B3
, OOH2.FLOW_STATUS_CODE B4
, OOH3.ORDER_NUMBER C1
, OOL3.LINE_NUMBER C2
, OOL3.ORDERED_QUANTITY C3
, OOH3.FLOW_STATUS_CODE C4
FROM ONT.OE_ORDER_HEADERS_ALL OOH1
, ONT.OE_ORDER_LINES_ALL OOL1
, ONT.OE_ORDER_LINES_ALL OOL2
, ONT.OE_ORDER_HEADERS_ALL OOH2
, ONT.OE_ORDER_LINES_ALL OOL3
, ONT.OE_ORDER_HEADERS_ALL OOH3
WHERE OOH1.HEADER_ID = OOL1.HEADER_ID
AND OOL1.LINE_CATEGORY_CODE = 'RETURN'
AND OOH1.ORDER_NUMBER = '當前的訂單編號'
AND OOL1.REFERENCE_LINE_ID = OOL2.LINE_ID
AND OOH2.HEADER_ID = OOL2.HEADER_ID
AND OOL1.REFERENCE_LINE_ID = OOL3.REFERENCE_LINE_ID(+)
AND OOH3.HEADER_ID(+) = OOL3.HEADER_ID
AND OOH1.ORDER_NUMBER <> OOH3.ORDER_NUMBER
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(0) 人氣(455)

  • 個人分類:Order Management
▲top
  • 3月 30 週二 201010:58
  • OM 模組的 Processing Constraints

OM 模組底下有一個功能 : Processing Constraints (路徑 : Setup > Rules > Security > Processing Constraints), 此功能是用來定義, 在 OM 模組所屬的畫面, 什麼時候要做什麼, 什麼時候不能做什麼
畫面很簡單, 最上面的部份就是選擇 Application 與 畫面 (Entity)
中間的部分就是設定 Constraints 的地方 :
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(3) 人氣(890)

  • 個人分類:Order Management
▲top
  • 3月 01 週一 201016:55
  • OE_DEPENDENCIES_EXTN package

上週發生了一個新的 Import Error : "Ship To is required on a booked order", 一直看 Ship To 相關欄位都看不出所以然, 後來才發現是別的欄位造成的
OM 模組有一個 Package : OE_DEPENDENCIES, 是 Oracle 用來定義 OM 畫面每一個欄位的主從關係, 從這個 Package 可以知道, 當使用者更新了某欄位, 會連帶哪些欄位會"重新帶出"預設值, 例如 : 
l_index := OE_HEADER_UTIL.G_INVOICE_TO_ORG * G_MAX ;
g_dep_tbl(l_index ).attribute
  := OE_HEADER_UTIL.G_PAYMENT_TERM;
g_dep_tbl(l_index +1 ).attribute  := OE_HEADER_UTIL.G_INVOICE_TO_CONTACT;
g_dep_tbl(l_index +2 ).attribute  := OE_HEADER_UTIL.G_PRICE_LIST;
g_dep_tbl(l_index +3 ).attribute  := OE_HEADER_UTIL.G_FOB_POINT;
g_dep_tbl(l_index +4 ).attribute  := OE_HEADER_UTIL.G_FREIGHT_TERMS;
g_dep_tbl(l_index +5 ).attribute  := OE_HEADER_UTIL.G_TAX_EXEMPT_NUMBER;
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(0) 人氣(445)

  • 個人分類:Order Management
▲top
  • 2月 11 週四 201010:37
  • Credit Check 的 Override Manual Release

在之前的某篇文章有提到, Credit Check 中有一個功能 : Override Manual Release, 一直到昨天才發現我對這個功能的意義是錯的
如果有勾選 Override Manual Release, OK, 在 Days to Honor Manual Release 所設定的天數之內, 不會再被 Credit Hold, 超過此天數就會再重新被 Hold (當然, 必須要觸發到)
那, 沒有勾選 Override Manual Release 呢? 
(繼續閱讀...)
文章標籤

Aloz 發表在 痞客邦 留言(0) 人氣(694)

  • 個人分類:Order Management
▲top
12...4»

個人頭像

Aloz
暱稱:
Aloz
分類:
職場甘苦
好友:
累積中
地區:

文章搜尋

文章分類

toggle Web (1)
  • HTML (2)
toggle Order EBS (15)
  • Receivable (1)
  • System Administrator (34)
  • Order Management (36)
  • WIP (1)
  • Purchasing Order (3)
  • Form Personalize (10)
  • Form Develop (4)
  • Inventory (1)
  • Oracle Error (1)
  • Oracle Alert (2)
  • Receipt (1)
  • Shipping (10)
  • Oracle Discoverer (3)
  • Oracle Service Request (3)
  • PL/SQL (15)
toggle VBA (2)
  • Word (1)
  • Excel (1)
toggle 美國 (1)
  • USA Life (1)
  • Oracle Fusion (1)
  • 未分類文章 (1)

近期文章

  • 移轉到 Blogger
  • Receivable Installments (分期付款)
  • INV/CST 期間關閉時,會將庫存(Inventory)與WIP資料Snapshot起來
  • Create Accounting
  • Oracle Fusion Application
  • Timestamp
  • 從申請 L1A 簽證說起
  • Uncosted Material/WSM Transactions
  • FND_DATE.CANONICAL_TO_DATE
  • EBS 密碼安全設定

熱門文章

  • (3,732)Form Personalize - 簡介
  • (3,530)AR Transaction Date 與 GL Date
  • (2,933)客製Form - 呼叫Report
  • (2,778)使用 Oracle Alert
  • (1,828)Ship Confirm之後, 資料卡在不知名處.....
  • (1,651)Form Personalize - 客製 LOV
  • (1,362)Shipping Transaction 的 Backorder 機制
  • (1,316)Form Personalize - 控制 Item / Black
  • (895)抓取正確的 Line Status
  • (656)Blanket Sales Agreements使用心得

最新迴響

  • [18/06/08] Cheng Andy 於文章「Form Personalize - 簡...」發表了一則私密留言
  • [18/06/05] Cheng Andy 於文章「Form Personalize - 簡...」發表了一則私密留言
  • [18/06/05] Cheng Andy 於文章「Form Personalize - 簡...」發表了一則私密留言
  • [18/06/04] Cheng Andy 於文章「Form Personalize - 簡...」發表了一則私密留言
  • [18/02/23] 訪客 於文章「Credit Check Rule 只計...」留言:
    請問 Open Receivables Days -1 的...
  • [17/09/15] Renee  於文章「Form Personalize - 客...」留言:
    Hi 謝謝 這篇很讚喔.....
  • [17/03/29] Allen痞客 於文章「從申請 L1A 簽證說起...」發表了一則私密留言
  • [17/03/29] Allen痞客 於文章「從申請 L1A 簽證說起...」留言:
    Hi Aloz兄不好意思, 我check mail box沒...
  • [17/03/28] Allen痞客 於文章「從申請 L1A 簽證說起...」發表了一則私密留言
  • [16/09/13] 訪客 於文章「阿拉伯數字轉換為英文...」留言:
    超過1千萬會錯誤, 傳回ora-01830 select ...

留言板

funP

參觀人氣

  • 本日人氣:
  • 累積人氣:

線上人數