EBS 第一個項目 學習總結 ---- 發運模塊

EBS 組織架構:

(一)業務組(BG)

(二)法律實體(LE)

(三)業務實體(OU)

(四)庫存組織(INV)

(五)公司成本中心(Cost Center)

(六)HR組織

(七)多組織接入控制



Sale Order 銷售訂單  的  Ship Confirm 發運功能模塊:

 

在做狀態變化時候要記得對WHO字段進行狀態的修改。

 

必要表的信息:

oe_order_headers_all 訂單頭信息表

oe_order_lines_all

--header_id=oe_order_headers_all.header_id
--訂單行信息表

 

這裏面有一個概念:

比如

ORDER_NUMBER  訂單編號  爲 101852

這裏有兩個訂單頭。

HEADER_ID:A                          HEADER_ID:B

而LINE_NUMBER的概念就是在這兩個訂單裏,屬於同一行的 如下:

HEADER_ID:                        A                      B

LINE_NUMBER:1           LINE_ID:A1          LINE_ID:B1    

LINE_NUMBER:2           LINE_ID:A2          LINE_ID:B2    

LINE_NUMBER:3           LINE_ID:A3          LINE_ID:B3    

銷售訂單是這樣一種邏輯關係。


oe_order_headers_all 中的重要字段:

HEADER_ID                  訂單頭id

REQUEST_ID 併發請求的id
ORG_ID 業務實體的id
SHIP_TO_ORG_ID 收貨方組織id
SHIP_FROM_ORG_ID 發貨方組織id

oe_order_lines_all中的重要字段
HEADER_ID 訂單頭id
REQUEST_ID 併發請求的id
ORG_ID 組織的id
LINE_ID 訂單行id
LINE_NUMBER 訂單行number
SHIP_TO_ORG_ID 收貨方組織id
SHIP_FROM_ORG_ID 發貨方組織id

wsh_delivery_details
--source_header_id=oe_order_headers_all.header_id
--source_line_id=oe_order_lines_all.line_id
物料發運明細信息表
DELIVERY_DETAIL_ID 物料單的id
SOURCE_HEADER_ID 訂單頭id
SOURCE_LINE_ID 訂單行id
CUSTOMER_ID 客戶id
INVENTORY_ITEM_ID 對應物料表的物料id
ORGANAZATION_ID 庫存組織的id
REQUESTED_QUANTITY 請求的數量
SHIPPED_QUANTITY 發運的數量
SUBINVENTORY 子庫存的名稱
RELEASED_STATUS 當前物料的狀態
ORG_ID 業務實體的id
REQUEST_ID 併發請求的id
LOCATOR_ID 庫存中貨位號

LOT_NUMBER 物料的批號


wsh_delivery_assignments
--delivery_detail_id=wsh_delivery_details.delivery_detail_id
--連接wsh_delivery_details和wsh_new_deliveries的信息表
--此階段連接wsh_delivery_details

DELIVERY_ID 發貨號
DELIVERY_DETAIL_ID 物料id



mtl_serial_numbers
記錄物料序列號的當前狀態的信息表
INVENTORY_ITEM_ID 物料id
SERIAL_NUMBER 序列號


mtl_serial_numbers_temp
序列號和物料單的對應表
由transaction_temp_id進行關聯





發運模塊,可以理解爲將保留庫中的物料拿出來進行發貨,發運確認完成則代表這物權的轉移。發運中的延交情況很多,比如當你要發貨的物品數量不足以滿足買方的數量,則可以延遲交貨,等到數量滿足了一起交貨。

做發運模塊主要是當物料挑庫完成後,得到一堆物料單,然後爲每一個物料單生成物料號,物料號是爲了讓發運時知道,該發運哪些物料,物料號的生成有多種情況。

發運模塊的界面操作:
登錄,找一個具有訂單管理職責。進入到 事務處理中。

可以根據ORDER NUMBER 銷售訂單的號碼進行查詢。



這裏的每一條都對應一個物料單。
Detail是物料編號
Item Name是物料的名稱。
Delivery是物料的發貨號
Line Status 是 物料的當前狀態,狀態是Staged/Pick Confirm狀態是要進行發運的。
Next Step 是 物料的下一個狀態
Order 是訂單編號

Requested Qty 是 需要的數量
Shipped Qty 是 要發運的數量
BackOrdered Qty 是要延交的數量

Serial Number 是序列號 序列號不是必須的,如果物料啓動了序列號控制纔會有,Org Code 是當前的庫存組織, subinventory 子庫存
如果想要發運的話 必須要分配物料號,

在這裏選擇操作,當前自己知道的就是隻有 :
Split Line 分行,當啓動序列號的時候,分行規則暫時不瞭解,但是會自動給分出來的行分配之前有的序列號。
Lauch Pick Release 自動挑庫,這個操作可以對Backordered或 Ready to Release 的進行挑庫,這個時候會自動爲這個物料單進行挑庫,並且分配發貨號。
挑庫,可以理解爲,將自己庫存中的物料發放到保留庫中,保留庫中的物料是以後不能被動的,以爲他們已經都分配完了,等待發運。而庫存中的物料是還可以分配的。
Auto-create Deliveries 自動分配物料發貨號

對於圖中藍字那行的,這個時候可以進行發運,進入Delivery界面,


點擊Ship Confirm,進行發運。


這裏要進行一些說明,

ShipConfirm Rule 裏的是當前系統已經定義好的發運規則,


這裏的 點擊Ship Entered Quantities ,在右面選擇你要對未知的數量的物料的發運方式,
例如 Requested Qty = 10 shipped qty = 5 backordered qty = 3 ,那麼未知數量就是2
如果選擇ship,則對未知的數量2的進行發運操作,就是發運7個,延交3個
如果選擇Backorder,則對未知的數量2進行延交操作,就是發運5延交5
如果選擇Stage,則對未知的數量歸回到Staged/Pick Confirm狀態。這個配合下面的

如果勾選,則對於回到Staged/Pick Confirm狀態的自動分配發貨號。
如果選擇Cyclecount ,則對未知數量的物料迴歸到Staged/Pick Confirm狀態,並且shipped Qty數量爲空。

Ship All就是將所有的物料都發運。其他的也一樣意思。
這裏要注意,發運後的物料單還要做一個 Trip Stop 停靠站操作,纔算發運成功,這個業務暫時還不清楚是什麼意思。

代碼實現上遠遠比界面複雜的多,首先要介紹幾個用到的API。

wsh_deliveries_pub.delivery_action(p_api_version_number => 1.0,
                                       p_init_msg_list      => fnd_api.g_true,
                                       x_return_status      => lv_return_status,
                                       x_msg_count          => ln_msg_count,
                                       x_msg_data           => lv_msg_data,
                                       p_action_code        => 'CONFIRM',
                                       p_delivery_id        => 104483, 
                                       p_delivery_name      => 104483,
                                       p_sc_action_flag     => 'C',
                                       p_sc_close_trip_flag => 'Y',
                                       x_trip_id            => ln_trip_id,
                                       x_trip_name          => lv_trip_name);

這裏的傳入參數,可以有:

P_action_code 有很多值:

'PLAN','UNPLAN','PACK','CONFIRM',
'RE-OPEN','IN-TRANSIT','CLOSE', 'ASSIGN-TRIP','UNASSIGN-TRIP','AUTOCREATE-TRIP', 'WT-VOL', 'PICK-RELEASE', 'DELETE'
我知道的只有,

--RE-OPEN   讓status處於重新打開狀態
--DELETE    刪除物料號
--CONFIRM 進行Ship Confirm操作 其實對應的是下圖的Ship confirm,和Actions內的操作:



p_sc_action_flag  : ship confirm option - 'S', 'B', 'T', 'A', 'C'
這個就相當於

S 是 Ship    B是backorder   T是stag   C是CycleCount A是Ship All

而其他參數如   :

p_sc_intransit_flag : 是 圖上的 Set Delivery In-transit 是否勾選, Y 是 N 否

p_sc_close_trip_flag:是 圖上的 Close Trip是否勾選, Y 是 N 否

p_sc_stage_del_flag:是 圖上的 Create Delivery for Staged Quan..是否勾選, Y 是 N 否

p_sc_trip_ship_method:是 圖上的 Ship Method 輸入的varchar2 類型,可以爲null

p_sc_actual_dep_date: 是圖上Actual Departure Date ,null 則自動賦值爲當前時間

p_sc_defer_interface_flag:圖上 Defer Interface是否勾選,Y 是 N 否


其他API將單開文章講解。如果有不對的地方希望大家評論給予建議,謝謝。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章