Get On Hand Quantities through API

This script can be used to get the below quantities. 1. On-hand Quantity 2. Available to Reserve 3. Quantity Reserved 4. Quantity Suggested 5. Available to Transact 6. Available to Reserve You can also get the On-hand quantities from the table mtl_onhand_quantities

DECLARE x_return_status VARCHAR2 (50); x_msg_count VARCHAR2 (50); x_msg_data VARCHAR2 (50); v_item_id NUMBER; v_org_id NUMBER; v_qoh NUMBER; v_rqoh NUMBER; v_atr NUMBER; v_att NUMBER; v_qr NUMBER; v_qs NUMBER; v_lot_control_code BOOLEAN; v_serial_control_code BOOLEAN; BEGIN -- Set the variable values v_item_id := '6566'; v_org_id := 61; v_qoh := NULL; v_rqoh := NULL; v_atr := NULL; v_lot_control_code := FALSE; v_serial_control_code := FALSE; -- Set the org context fnd_client_info.set_org_context (1); -- Call API inv_quantity_tree_pub.query_quantities (p_api_version_number => 1.0, p_init_msg_lst => 'F', x_return_status => x_return_status, x_msg_count => x_msg_count, x_msg_data => x_msg_data, p_organization_id => v_org_id, p_inventory_item_id => v_item_id, p_tree_mode => apps.inv_quantity_tree_pub.g_transaction_mode, -or 3 p_is_revision_control => FALSE, p_is_lot_control => v_lot_control_code, -- is_lot_control,

p_is_serial_control => v_serial_control_code, p_revision => NULL, -- p_revision, p_lot_number => NULL, -- p_lot_number, p_lot_expiration_date => SYSDATE, p_subinventory_code => NULL, -- p_subinventory_code, p_locator_id => NULL, -- p_locator_id, -- p_cost_group_id => NULL, -- cg_id, p_onhand_source => 3, x_qoh => v_qoh, -- Quantity on-hand x_rqoh => v_rqoh, --reservable quantity on-hand x_qr => v_qr, x_qs => v_qs, x_att => v_att, -- available to transact x_atr => v_atr -- available to reserve ); DBMS_OUTPUT.put_line ('On-Hand Quantity: ' || v_qoh); DBMS_OUTPUT.put_line ('Available to reserve: ' || v_atr); DBMS_OUTPUT.put_line ('Quantity Reserved: ' || v_qr); DBMS_OUTPUT.put_line ('Quantity Suggested: ' || v_qs); DBMS_OUTPUT.put_line ('Available to Transact: ' || v_att); DBMS_OUTPUT.put_line ('Available to Reserve: ' || v_atr); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line ('ERROR: ' || SQLERRM); END;