--處理物料搬運單
--如果物料沒有啟用序列控制,可參考:
--declare
l_mo_line_detail_rec inv_mo_line_detail_util.g_mmtt_rec;
l_trolin_tbl inv_move_order_pub.trolin_tbl_type;
l_mold_tbl inv_mo_line_detail_util.g_mmtt_tbl_type;
x_mmtt_tbl inv_mo_line_detail_util.g_mmtt_tbl_type;
x_trolin_tbl inv_move_order_pub.trolin_tbl_type;
p_trolin_old_tbl inv_move_order_pub.trolin_tbl_type;
l_mtl_reservation inv_reservation_global.mtl_reservation_tbl_type;
l_mesg_len number;
--l_transaction_temp_id number; --臨時表的id
p_line_id number := 334214;
p_header_id number := 107313;
p_inventory_item_id number := 143116;
l_transaction_header_id number;
l_return_status number;
--x_return_status varchar2(1);
x_number_of_rows number;
x_detailed_qty number;
x_revision varchar2(3);
x_locator_id number;
x_transfer_to_location number;
x_lot_number varchar2(80);
x_expiration_date date;
x_transaction_temp_id number;
x_msg_count number;
x_msg_data varchar2(5000);
x_msg_data1 varchar2(5000);
--begin
--inv_replenish_detail_pub.line_details_pub,這個api可以實現自動分配,效果等同於處理物料搬運單介面的「分配」按鈕
--若不需要自動分配,則需要先手工插mtl_material_transactions_temp(mmtt)表
--然後手工插mtl_serial_numbers_temp表,給定序列的from,to
--以上的插表**比較多,可以參考這個部落格的操作
--我這就不多寫了...
--再呼叫inv_lpn_trx_pub.process_lpn_trx
inv_replenish_detail_pub.line_details_pub(p_line_id => p_line_id,
x_number_of_rows => x_number_of_rows,
x_detailed_qty => x_detailed_qty,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
x_revision => x_revision,
x_locator_id => x_locator_id,
x_transfer_to_location => x_transfer_to_location,
x_lot_number => x_lot_number,
x_expiration_date => x_expiration_date,
x_transaction_temp_id => x_transaction_temp_id,
p_transaction_header_id => null,
p_transaction_mode => null,
p_move_order_type => 1,
p_serial_flag => fnd_api.g_true,
p_plan_tasks => false --fnd_api.g_false
,p_auto_pick_confirm => false --fnd_api.g_false
,p_commit => false --fnd_api.g_false
);if (x_return_status <> fnd_api.g_ret_sts_success) then
if x_msg_count > 0 then
x_msg_data := chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_first, fnd_api.g_false), 1, 512);
for i in 1 .. 2 loop
x_msg_data := x_msg_data || chr(10) || substr(fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false), 1, 512);
end loop;
fnd_msg_pub.delete_msg();
l_mesg_len := length(x_msg_data);
for i in 1 .. ceil(l_mesg_len / 255) loop
dbms_output.put_line(substr(x_msg_data, ((i * 255) - 254), 255));
end loop;
end if;
end if;
dbms_output.put_line('x_msg_data :' || x_msg_data);
if (x_return_status = fnd_api.g_ret_sts_success) then
dbms_output.put_line('detailed qty: ' || x_detailed_qty);
dbms_output.put_line('number of rows: ' || x_number_of_rows);
dbms_output.put_line('trx temp id: ' || x_transaction_temp_id);
end if;
--update mtl_material_transactions_temp mmtt set mmtt.transaction_status = 1 where mmtt.trx_source_line_id = p_line_id;
select a.transaction_header_id
into l_transaction_header_id
from mtl_material_transactions_temp a
where a.transaction_temp_id = x_transaction_temp_id;
--將temp表資料處理至mmt表
l_return_status := inv_lpn_trx_pub.process_lpn_trx(p_trx_hdr_id => l_transaction_header_id,
p_commit => 'f',
x_proc_msg => x_msg_data1,
p_proc_mode => null,
p_process_trx => 't',
p_atomic => 't',
p_business_flow_code => null);
-- dbms_output.put_line('搬運單處理請求結果: ' || l_return_status);
dbms_output.put_line('l_return_status :' || l_return_status);
dbms_output.put_line('x_msg_data1 :' || x_msg_data1);
--輸出是否正確
--
end;
/
SAP中物料報廢無法確定賬戶問題處理例項
接物流反映部門在做一筆常規的物料報廢操作時,提示無法確立賬戶。不得不說,sap中的提示雖然有時候使用者從其字面意思難以理解。但對於有經驗的顧問而言,還是具有非常重要的意義,能直接定位到問題的根源。由於物料報廢產生了涉及到了物料價值的轉移,報廢後物料的原有價值就消失了。因此,在sap系統中只要產生物權...
SAP中外協加工BOM物料消耗問題處理例項
近期遇到一筆關於外協加工bom物料消耗問題。在系統標準的外協加工模式中,成品物料通過採購計畫協議從加工商處收貨。收貨時通過展開bom反衝消耗下級元件,扣減加工商處的原材料庫存。在收貨處理時,可以看到成品物料的下級元件展開及消耗數量情況。但在這個環節,發現其與當前bom中的物料不符。經檢查,其中乙個元...
金蝶K3物料後台啟用 取消保質期 批次管理
以下 需要確保物料沒有庫存方可執行操作!啟用物料效期管控 update t icitem set fiskfperiod 1,是否進行保質期管理,0表示不啟用保質期管理 fkfperiod 1825,保質期 天 0表示不啟用保質期管理 fstocktime 1,是否需要庫齡管理,1表示啟用庫齡管理 ...