oracle 物料属性批次过期,ORACLE EBS 物料事务处理开发接口案例 - 其物料启用了序列和批次...

DECLARE

l_iface_rec inv.mtl_transactions_interface% ROWTYPE;

l_iface_lot_rec inv.mtl_transaction_lots_interface%ROWTYPE ;

l_iface_serial_rec inv.mtl_serial_numbers_interface%ROWTYPE ;

l_cur_mfg_org_id NUMBER := fnd_global.org_id ; --Current Inv Organization

l_user_id NUMBER := fnd_global.user_id; --User ID, Sysadmin here

l_serial_seq_id NUMBER;

l_product_id NUMBER;

l_return_count NUMBER;

x_trans_count NUMBER;

x_return_status VARCHAR2(100 );

x_msg_count NUMBER;

x_msg_data VARCHAR2(2000 );

BEGIN

fnd_global.apps_initialize(user_id => fnd_global.user_id

,resp_id => fnd_global.resp_id

,resp_appl_id => fnd_global.resp_appl_id);

l_iface_rec.last_update_date := SYSDATE;

l_iface_rec.last_updated_by := fnd_global.user_id;

l_iface_rec.creation_date := SYSDATE;

l_iface_rec.created_by := fnd_global.user_id;

l_iface_rec.last_update_login := fnd_global.last_update_login ;

SELECT mtl_material_transactions_s.nextval

INTO l_iface_rec.transaction_interface_id

FROM dual;

l_iface_rec.transaction_header_id := l_iface_rec.transaction_interface_id;

l_iface_rec.transaction_mode := 3;

l_iface_rec.process_flag := 1;

l_iface_rec.transaction_type_id := 42; --mtl_transaction_types 42->杂项接受 32-> 杂项发放

l_iface_rec.organization_id := l_cur_mfg_org_id;

l_iface_rec.inventory_item_id := 309978;

l_iface_rec.subinventory_code := 'RPK';

l_iface_rec.locator_id := 3877;

l_iface_rec.transfer_locator := 3900;

l_iface_rec.transfer_organization := l_cur_mfg_org_id;

l_iface_rec.transfer_subinventory := '11204';

l_iface_rec.transaction_quantity := 3;

l_iface_rec.transaction_uom := 'Ea';

l_iface_rec.transaction_date := SYSDATE;

l_iface_rec.source_code := 'Test Miscellaneous receipt API';

l_iface_rec.source_header_id := l_iface_rec.transaction_interface_id;

l_iface_rec.source_line_id := l_iface_rec.transaction_interface_id;

INSERT INTO inv.mtl_transactions_interface

VALUES l_iface_rec;

--第一批

l_serial_seq_id := mtl_material_transactions_s.nextval;

l_iface_lot_rec.last_update_date := SYSDATE;

l_iface_lot_rec.last_updated_by := l_user_id;

l_iface_lot_rec.creation_date := SYSDATE;

l_iface_lot_rec.created_by := l_user_id;

l_iface_lot_rec.last_update_login := - 1;

l_iface_lot_rec.lot_number := 'A112';

l_iface_lot_rec.transaction_interface_id := l_iface_rec.transaction_interface_id;

l_iface_lot_rec.transaction_quantity := 2;

l_iface_lot_rec.product_transaction_id := l_iface_rec.transaction_interface_id;

--启用虚列时必输,否则不能给值

l_iface_lot_rec.serial_transaction_temp_id := l_serial_seq_id;

INSERT INTO inv.mtl_transaction_lots_interface

VALUES l_iface_lot_rec;

l_iface_serial_rec.last_update_date := SYSDATE;

l_iface_serial_rec.last_updated_by := l_user_id;

l_iface_serial_rec.creation_date := SYSDATE;

l_iface_serial_rec.created_by := l_user_id;

l_iface_serial_rec.last_update_login := - 1;

l_iface_serial_rec.fm_serial_number := '10012';

l_iface_serial_rec.to_serial_number := '10013';

l_iface_serial_rec.transaction_interface_id := l_serial_seq_id;

INSERT INTO inv.mtl_serial_numbers_interface

VALUES l_iface_serial_rec;

---第二批

l_serial_seq_id := mtl_material_transactions_s.nextval;

l_iface_lot_rec.last_update_date := SYSDATE;

l_iface_lot_rec.last_updated_by := l_user_id;

l_iface_lot_rec.creation_date := SYSDATE;

l_iface_lot_rec.created_by := l_user_id;

l_iface_lot_rec.last_update_login := - 1;

l_iface_lot_rec.lot_number := 'A112';

l_iface_lot_rec.transaction_interface_id := l_iface_rec.transaction_interface_id;

l_iface_lot_rec.transaction_quantity := 1;

l_iface_lot_rec.product_transaction_id := l_iface_rec.transaction_interface_id;

--启用虚列时必输,否则不能给值

l_iface_lot_rec.serial_transaction_temp_id := l_serial_seq_id;

INSERT INTO inv.mtl_transaction_lots_interface

VALUES l_iface_lot_rec;

l_iface_serial_rec.last_update_date := SYSDATE;

l_iface_serial_rec.last_updated_by := l_user_id;

l_iface_serial_rec.creation_date := SYSDATE;

l_iface_serial_rec.created_by := l_user_id;

l_iface_serial_rec.last_update_login := - 1;

l_iface_serial_rec.fm_serial_number := '10017';

l_iface_serial_rec.to_serial_number := '10017';

l_iface_serial_rec.transaction_interface_id := l_serial_seq_id;

INSERT INTO inv.mtl_serial_numbers_interface

VALUES l_iface_serial_rec;

fnd_msg_pub.initialize;

x_return_status := fnd_api.g_ret_sts_success; --0 to indicate successful processing and value -1 to indicate failure processing

l_return_count := inv_txn_manager_pub.process_transactions(p_api_version => 1.0

,p_init_msg_list => fnd_api.g_false

,p_commit => fnd_api.g_false

,p_validation_level => fnd_api.g_valid_level_full

,x_return_status => x_return_status

,x_msg_count => x_msg_count

,x_msg_data => x_msg_data

,x_trans_count => x_trans_count

,p_table => 1

, --1==MTI,2==MMTT

p_header_id => l_iface_rec.transaction_interface_id);

dbms_output.put_line( 'l_return_count: ' || l_return_count);

IF l_return_count = - 1

OR x_return_status <> fnd_api.g_ret_sts_success THEN

FOR a_rec IN ( SELECT mti.transaction_interface_id

,mti.error_code

,mti.error_explanation

FROM mtl_transactions_interface mti

WHERE mti.transaction_header_id = l_iface_rec.transaction_header_id) LOOP

dbms_output.put_line('transaction_interface_id: ' || a_rec.transaction_interface_id);

dbms_output.put_line( 'error_code: ' || a_rec.error_code);

dbms_output.put_line( 'error_explanation: ' || a_rec.error_explanation);

END LOOP;

ROLLBACK;

END IF;

END;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值