DECLARE
l_item_rec inv_item_grp.item_rec_type;
x_item_rec inv_item_grp.item_rec_type;
x_error_tbl inv_item_grp.error_tbl_type;
x_return_status VARCHAR2(1);
l_user_id NUMBER := 1110; --User ID, Sysadmin here
l_cur_mfg_org_id NUMBER := 83; --Current Inv Organization
-- SELECT * FROM ORG_ORGANIZATION_DEFINITIONS
-- SELECT * FROM MTL_SYSTEM_ITEMS_B MSI
BEGIN
--Initialize first, or create_by will be -1
fnd_global.apps_initialize(user_id => 1110,
resp_id => 50597,
resp_appl_id => 20003);
--Item
l_item_rec.item_number := '2010230020';
l_item_rec.inventory_item_status_code := 'Active'; --Active Inactive
--Master Inv Organization first, then Current Inv Organization
l_item_rec.organization_id := l_cur_mfg_org_id;
--API
inv_item_grp.update_item(p_commit => fnd_api.g_false,
p_item_rec => l_item_rec,
x_item_rec => x_item_rec,
x_return_status => x_return_status,
x_error_tbl => x_error_tbl);
--Result
IF x_return_status <> fnd_api.g_ret_sts_success THEN
ROLLBACK;
FOR i IN 1 .. x_error_tbl.COUNT LOOP
dbms_output.put_line('Transaction ID :' || x_error_tbl(i).transaction_id);
dbms_output.put_line('Unique ID :' || x_error_tbl(i).unique_id);
dbms_output.put_line('Message Name :' || x_error_tbl(i).message_name);
dbms_output.put_line('Message Text: :' || x_error_tbl(i).message_text);
dbms_output.put_line('Table Name :' || x_error_tbl(i).table_name);
dbms_output.put_line('Column Name :' || x_error_tbl(i).column_name);
dbms_output.put_line('Organization ID :' || x_error_tbl(i).organization_id);
END LOOP;
IF (x_return_status = fnd_api.g_ret_sts_unexp_error) THEN
RAISE fnd_api.g_exc_unexpected_error;
ELSIF (x_return_status = fnd_api.g_ret_sts_error) THEN
RAISE fnd_api.g_exc_error;
END IF;
ELSE
COMMIT;
dbms_output.put_line(x_item_rec.item_number);
END IF;
END;