DECLARE
L_QTY_REC GMIGAPI.qty_rec_typ;
L_ic_jrnl_mst_row ic_jrnl_mst%ROWTYPE;
L_ic_adjs_jnl_row1 ic_adjs_jnl%ROWTYPE;
L_ic_adjs_jnl_row2 ic_adjs_jnl%ROWTYPE;
L_return_status VARCHAR2(10);
L_msg_count NUMBER;
L_msg_data VARCHAR2(1000);
l_dummy_cnt NUMBER := 0;
l_loop_cnt NUMBER := 0;
BEGIN
--set serveroutput on size 20000;
dbms_output.enable(20000);
dbms_application_info.set_client_info(122);
--fnd_global.APPS_INITIALIZE(1115, 1, 1);--不能执行该语句,否则提示错误,
L_QTY_REC.trans_type := 4;
L_QTY_REC.orgn_code := 'Z999';
L_QTY_REC.reason_code := 'PCZT';
L_QTY_REC.item_no := '2101001001';
L_QTY_REC.lot_no := '2008110402';
L_QTY_REC.from_whse_code := 'ZZC';
L_QTY_REC.from_location := 'A';
L_QTY_REC.lot_status := 'HG';
L_QTY_REC.trans_qty := 2;
L_QTY_REC.co_code := 'CO';
L_QTY_REC.item_um := '箱';
--L_QTY_REC.trans_date := SYSDATE;
if gmigutl.Setup('APP_USER') then
GMIPAPI.Inventory_Posting(p_api_version => apps.GMIGUTL.API_VERSION, --1.0,
p_init_msg_list => FND_API.G_FALSE,
p_commit => FND_API.G_TRUE,
p_validation_level => FND_API.G_VALID_LEVEL_FULL,
p_qty_rec => L_QTY_REC,
x_ic_jrnl_mst_row => L_ic_jrnl_mst_row,
x_ic_adjs_jnl_row1 => L_ic_adjs_jnl_row1,
x_ic_adjs_jnl_row2 => L_ic_adjs_jnl_row2,
x_return_status => L_return_status,
x_msg_count => L_msg_count,
x_msg_data => L_msg_data);
if L_msg_count > 0 then
l_loop_cnt := 1;
loop
apps.FND_MSG_PUB.Get(p_msg_index => l_loop_cnt,
p_data => L_msg_data,
p_encoded => apps.FND_API.G_FALSE,
p_msg_index_out => l_dummy_cnt);
DBMS_OUTPUT.PUT_LINE(L_msg_data);
l_loop_cnt := l_loop_cnt + 1;
if l_loop_cnt > L_msg_count then
exit;
end if;
end loop;
end if;
IF L_return_status = 'S' THEN
DBMS_OUTPUT.put_line('SUCCESS');
DBMS_OUTPUT.PUT_LINE('message is: ' || l_msg_data);
DBMS_OUTPUT.PUT_LINE('message index is: ' || l_msg_count);
COMMIT;
ELSIF L_return_status = 'E' THEN
DBMS_OUTPUT.put_line('ERROR');
DBMS_OUTPUT.PUT_LINE('message is: ' || l_msg_data);
DBMS_OUTPUT.PUT_LINE('message index is: ' || l_msg_count);
rollback;
ELSIF L_return_status = 'U' THEN
DBMS_OUTPUT.put_line('UNEXPECT');
DBMS_OUTPUT.PUT_LINE('message is: ' || l_msg_data);
DBMS_OUTPUT.PUT_LINE('message index is: ' || l_msg_count);
ROLLBACK;
ELSE
DBMS_OUTPUT.put_line('AAAAA');
END IF;
ELSE
DBMS_OUTPUT.put_line('XXX');
end if;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('EXCEPTION:' || L_return_status || '-' || sqlerrm);
END;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/797362/viewspace-592578/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/797362/viewspace-592578/