Overview of Inventory Movement Requests and SQL Query to get the movement request details

Movement requests are used for the movement of materials within an inventory organization, such as a warehouse or facility. There are three types of movement requests: requisition, replenishment, and shop floor movement requests.

Shop floor movement requests support manufacturing and maintenance work orders by ensuring required components are available. Materials are moved either to WIP supply locations or directly issued to work orders from warehouse stock.

Use the Pick Materials for Work Orders task to pick materials for Work Orders that are in released status. Internally it runs “Pick Materials for Work Orders” ESS Job and generates movement request to move the material from inventory to the WIP Supply Sub-Inventory. Warehouse personnel then pick and confirm the movement of materials to the designated locations.

This process can also be integrated with warehouse management systems, such as Oracle Fusion Cloud Warehouse Management/third party WMS, to streamline material reservation, picking, and movement, ensuring timely availability of components for production.

Here is the SQL Query to get the movement request, including line status. This is very useful for the warehouse team to track open movement requests and ensure timely material availability, thereby improving work order execution and overall production efficiency.

SELECT  iop.organization_code,
        itrl.reference_name,
        itrh.request_number Movement_Request,
        itrh.MOVE_ORDER_TYPE_NAME Movement_Request_Type,
        itrl.line_number,
        CASE WHEN itrl.line_status = 5  THEN    'Closed'
             WHEN itrl.line_status = 7   THEN    'Preapproved'
             WHEN itrl.line_status = 9   THEN    'Canceled by Source'
             ELSE NULL END line_status,
        esib.item_number,
        (SELECT transaction_type_name FROM inv_transaction_types where transaction_type_id = itrl.TRANSACTION_TYPE_ID) Trx_Type,
--       itrl.TRANSACTION_TYPE_NAME,      
        itrl.required_quantity,
        itrl.FROM_SUBINVENTORY_CODE, 
        itrl.to_subinventory_code,
        itrl.ext_system_requested_qty requested_qty,
        itrl.ext_system_allocated_qty Allocated_Qty,
        itrl.quantity_delivered Delivered_Qty,
        itrl.ext_system_allocated_qty + ( itrl.quantity_detailed - itrl.ext_system_requested_qty ) quantity_delivered_for_api,
        itrl.ext_system_cancelled_qty,
        itrl.uom_code,
        (SELECT SUM(imt.transaction_quantity)
          FROM inv_material_txns     imt,
               inv_transaction_types itt
         WHERE imt.organization_id = iop.organization_id
            AND itt.transaction_type_id = imt.transaction_type_id
            AND imt.subinventory_code = itrl.to_subinventory_code
            AND imt.inventory_item_id = esib.inventory_item_id
            AND itt.transaction_type_name = 'Work in Process Pick'
            AND itrl.line_id = imt.move_order_line_id
            AND imt.transaction_source_name = itrl.reference_name)      wms_packed_qty,
    CASE WHEN ( itrl.ext_system_allocated_qty + itrl.ext_system_cancelled_qty >= itrl.ext_system_requested_qty ) AND itrl.line_status NOT IN ( 5, 9 ) THEN 'Y'
         WHEN ( itrl.ext_system_allocated_qty + itrl.ext_system_cancelled_qty >= itrl.ext_system_requested_qty ) AND itrl.line_status IN ( 5, 9 ) THEN   'N/A'
         ELSE 'N'            END                                                                                        eligible_to_close_line
    FROM INV_TXN_REQUEST_HEADERS_V itrh,
         INV_TXN_REQUEST_LINES   itrl,
         inv_org_parameters      iop,
         egp_system_items_b      esib
WHERE itrh.header_id = itrl.header_id
    AND itrh.organization_id = esib.organization_id
    AND itrh.organization_id = iop.organization_id
    AND itrl.inventory_item_id = esib.inventory_item_id
    AND esib.item_number = nvl(:p_item_number, esib.item_number)
    AND iop.organization_code = nvl(:p_organization_code, iop.organization_code)
    AND itrl.reference_name = nvl(:p_work_order_number, itrl.reference_name)
    AND itrh.request_number = nvl(:p_movement_request_header_num, itrh.request_number)

Sample Report Output

Leave a Comment