您的位置:首页 > 其它

创建物料搬运单demo

2014-08-15 14:22 381 查看
--创建物料搬运单
DECLARE
-- Common Declarations
l_api_version   NUMBER := 1.0;
l_init_msg_list VARCHAR2(2) := fnd_api.g_true;
l_return_values VARCHAR2(2) := fnd_api.g_false;
l_commit        VARCHAR2(2) := fnd_api.g_false;
x_return_status VARCHAR2(2);
x_msg_count     NUMBER := 0;
x_msg_data      VARCHAR2(255);

-- WHO columns
l_user_id        NUMBER := -1;
l_resp_id        NUMBER := -1;
l_application_id NUMBER := -1;
l_row_cnt        NUMBER := 1;
l_user_name      VARCHAR2(30) := 'MFG';
l_resp_name      VARCHAR2(50) := 'Manufacturing and Distribution Manager';

-- API specific declarations
l_header_id      NUMBER := 0;
l_trohdr_rec     inv_move_order_pub.trohdr_rec_type;
l_trohdr_val_rec inv_move_order_pub.trohdr_val_rec_type;
l_trolin_tbl     inv_move_order_pub.trolin_tbl_type;
l_trolin_val_tbl inv_move_order_pub.trolin_val_tbl_type;
x_trolin_tbl     inv_move_order_pub.trolin_tbl_type;
x_trolin_val_tbl inv_move_order_pub.trolin_val_tbl_type;
x_trohdr_rec     inv_move_order_pub.trohdr_rec_type;
x_trohdr_val_rec inv_move_order_pub.trohdr_val_rec_type;
--
l_mesg_len NUMBER;

BEGIN

-- Get the user_id
SELECT user_id INTO l_user_id FROM fnd_user WHERE user_name = 'SETUP_USER14';

-- Get the application_id and responsibility_id
SELECT application_id,
responsibility_id
INTO l_application_id,
l_resp_id
FROM fnd_responsibility_vl
WHERE responsibility_name = 'XXWE MG User';

fnd_global.apps_initialize(l_user_id, l_resp_id, l_application_id); -- Suhasini / Mfg  Mgr / INV
dbms_output.put_line('Initialized applications context: ' || l_user_id || ' ' || l_resp_id || ' ' || l_application_id);

-- Initialize the move order header
--l_trohdr_rec.header_id              := 105271;
l_trohdr_rec.date_required          := SYSDATE + 2;
l_trohdr_rec.organization_id        := 683;
l_trohdr_rec.from_subinventory_code := NULL;
l_trohdr_rec.to_subinventory_code   := NULL;
l_trohdr_rec.status_date            := SYSDATE;
l_trohdr_rec.request_number         := 'lcytest09';
l_trohdr_rec.header_status          := inv_globals.g_to_status_preapproved; -- preApproved
l_trohdr_rec.transaction_type_id    := inv_globals.g_type_transfer_order_subxfr; -- INV_GLOBALS.G_TYPE_TRANSFER_ORDER_STGXFR;
l_trohdr_rec.move_order_type        := inv_globals.g_move_order_requisition; -- G_MOVE_ORDER_PICK_WAVE;
l_trohdr_rec.db_flag                := fnd_api.g_true;
l_trohdr_rec.operation              := inv_globals.g_opr_create; --create

-- Who columns
l_trohdr_rec.created_by       := l_user_id;
l_trohdr_rec.creation_date    := SYSDATE;
l_trohdr_rec.last_updated_by  := l_user_id;
l_trohdr_rec.last_update_date := SYSDATE;

-- create  line  for the  header created above
l_trolin_tbl(l_row_cnt).date_required := SYSDATE;
l_trolin_tbl(l_row_cnt).organization_id := 683;
l_trolin_tbl(l_row_cnt).inventory_item_id := 143116;
l_trolin_tbl(l_row_cnt).from_subinventory_code := NULL;
l_trolin_tbl(l_row_cnt).to_subinventory_code := '200-CX1';
l_trolin_tbl(l_row_cnt).quantity := 2;
l_trolin_tbl(l_row_cnt).status_date := SYSDATE;
l_trolin_tbl(l_row_cnt).uom_code := 'UN';
l_trolin_tbl(l_row_cnt).line_number := l_row_cnt;
l_trolin_tbl(l_row_cnt).line_status := inv_globals.g_to_status_preapproved;
l_trolin_tbl(l_row_cnt).db_flag := fnd_api.g_true;
l_trolin_tbl(l_row_cnt).operation := inv_globals.g_opr_create;
--l_trolin_tbl(l_row_cnt).line_status := inv_globals.G_TO_STATUS_INCOMPLETE;--行状态

-- Who columns
l_trolin_tbl(l_row_cnt).created_by := l_user_id;
l_trolin_tbl(l_row_cnt).creation_date := SYSDATE;
l_trolin_tbl(l_row_cnt).last_updated_by := l_user_id;
l_trolin_tbl(l_row_cnt).last_update_date := SYSDATE;
l_trolin_tbl(l_row_cnt).last_update_login := fnd_global.login_id;

-- call API to create move order header
dbms_output.put_line('=======================================================');
dbms_output.put_line('Calling INV_MOVE_ORDER_PUB.Process_Move_Order API');

inv_move_order_pub.process_move_order(p_api_version_number => l_api_version,
p_init_msg_list      => l_init_msg_list,
p_return_values      => l_return_values,
p_commit             => l_commit,
x_return_status      => x_return_status,
x_msg_count          => x_msg_count,
x_msg_data           => x_msg_data,
p_trohdr_rec         => l_trohdr_rec,
p_trohdr_val_rec     => l_trohdr_val_rec,
p_trolin_tbl         => l_trolin_tbl,
p_trolin_val_tbl     => l_trolin_val_tbl,
x_trohdr_rec         => x_trohdr_rec,
x_trohdr_val_rec     => x_trohdr_val_rec,
x_trolin_tbl         => x_trolin_tbl,
x_trolin_val_tbl     => x_trolin_val_tbl);

dbms_output.put_line('=======================================================');
dbms_output.put_line('Return Status: ' || x_return_status);

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
-- (l_mesg_count - 1) 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;

IF (x_return_status = fnd_api.g_ret_sts_success) THEN
dbms_output.put_line('Move Order Created Successfully for ' || x_trolin_tbl(l_row_cnt).header_id);
END IF;

dbms_output.put_line('=======================================================');

EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Exception Occured :');
dbms_output.put_line(SQLCODE || ':' || SQLERRM);
dbms_output.put_line('=======================================================');
END processmoveorder;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: