Infor VISUAL INVENTORY_TRANS TYPE and CLASS Reference
Every stock movement in Infor VISUAL Manufacturing writes a row to INVENTORY_TRANS, and the TYPE and CLASS pair tells you what kind of movement it was. This reference decodes each pair, the order columns it fills and how it affects on hand and usage, for report writers on VISUAL SQL Server databases.
| TYPE | CLASS | Meaning | Typical source | Link columns filled | On-hand effect | Counts as usage |
|---|---|---|---|---|---|---|
O | I | Out, issue | Material issued to a work order requirement | WORKORDER_TYPE, WORKORDER_BASE_ID, WORKORDER_LOT_ID, WORKORDER_SPLIT_ID, WORKORDER_SUB_ID, OPERATION_SEQ_NO, REQ_PIECE_NO | Decreases | Yes |
O | I | Out, issue | Shipment against a customer order line | CUST_ORDER_ID, CUST_ORDER_LINE_NO | Decreases | Yes, as sales usage |
I | I | In, issue return | Material returned from a work order back to stock | Work order link columns | Increases | Reduces usage |
I | I | In, issue return | Customer return or shipment reversal against an order line | CUST_ORDER_ID, CUST_ORDER_LINE_NO | Increases | Reduces usage |
I | R | In, receipt | Purchase receipt | PURC_ORDER_ID, PURC_ORDER_LINE_NO | Increases | No |
I | R | In, receipt | Work order receipt of finished parts to stock | Work order link columns | Increases | No |
O | R | Out, receipt return | Return to vendor or reversal of a purchase receipt | PURC_ORDER_ID, PURC_ORDER_LINE_NO | Decreases | No |
O | R | Out, receipt return | Reversal of a work order receipt | Work order link columns | Decreases | No |
I | A | In, adjustment | Inventory adjustment in, for example a count gain | None of the order links | Increases | No |
O | A | Out, adjustment | Inventory adjustment out, for example a count loss or scrap from stock | None of the order links | Decreases | Usually no; treat as shrink |
(column) | TRANSACTION_ID | Unique id of the inventory transaction row | - | - | - | - |
(column) | PART_ID | Part that moved | - | PART.ID | - | - |
(column) | TYPE | Direction: I in, O out | - | - | Sign of the movement | - |
(column) | CLASS | Family: I issue, R receipt, A adjustment | - | - | - | - |
(column) | QTY | Quantity moved in the part stock U/M | - | - | Apply direction from TYPE | - |
(column) | TRANSACTION_DATE | Date of the movement | - | - | - | - |
(column) | WAREHOUSE_ID | Warehouse of the movement | - | WAREHOUSE.ID | - | - |
(column) | LOCATION_ID | Location inside the warehouse | - | LOCATION.WAREHOUSE_ID + ID | - | - |
(column) | WORKORDER_BASE_ID | Work order base id, with WORKORDER_TYPE, LOT_ID, SPLIT_ID and SUB_ID columns | Work order issues and receipts | WORK_ORDER on all five key columns | - | - |
(column) | OPERATION_SEQ_NO | Work order operation the material went to | Work order issues | REQUIREMENT with REQ_PIECE_NO | - | - |
(column) | CUST_ORDER_ID | Customer order, with CUST_ORDER_LINE_NO | Shipments and customer returns | CUST_ORDER_LINE | - | - |
(column) | PURC_ORDER_ID | Purchase order, with PURC_ORDER_LINE_NO | Purchase receipts and returns | PURC_ORDER_LINE | - | - |
For VISUAL Manufacturing on SQL Server. TYPE gives direction (I in, O out) and CLASS gives the kind of movement (I issue, R receipt, A adjustment). Confirm the combinations your database actually holds before building a report: SELECT TYPE, CLASS, COUNT(*) AS ROWS_ FROM INVENTORY_TRANS GROUP BY TYPE, CLASS ORDER BY TYPE, CLASS; then check which link columns are filled per combination with COUNT(CUST_ORDER_ID), COUNT(PURC_ORDER_ID) and COUNT(WORKORDER_BASE_ID) in the same GROUP BY. Check the sign of QTY with SELECT MIN(QTY) FROM INVENTORY_TRANS: when it is not negative, direction comes only from TYPE.
Get your usage query checked
Send us your VISUAL usage or inventory movement query and we will check the TYPE and CLASS logic and work order joins against your database version.
Optional. The tool and every export work without this. No spam.
How to read TYPE and CLASS
Read the two columns together. TYPE is the direction: I moves stock in, O moves it out. CLASS is the family: I is an issue, R a receipt, A an adjustment. So O plus I is a normal issue out of stock, and I plus I is the reverse, an issue returned. I plus R is a receipt into stock and O plus R reverses one. The source document is not in TYPE or CLASS: you find it by which link columns are filled. A row with WORKORDER_BASE_ID belongs to a work order, a row with CUST_ORDER_ID to a customer order shipment, and a row with PURC_ORDER_ID to a purchase receipt.
- TYPE: I in, O out
- CLASS: I issue, R receipt, A adjustment
- Source: whichever order link column is filled
Key columns
TRANSACTION_ID identifies the row. PART_ID, WAREHOUSE_ID and LOCATION_ID say what moved and where. QTY is the quantity in the part stock unit of measure and TRANSACTION_DATE is when it happened. Work order rows carry the full work order key, WORKORDER_TYPE, WORKORDER_BASE_ID, WORKORDER_LOT_ID, WORKORDER_SPLIT_ID and WORKORDER_SUB_ID, plus OPERATION_SEQ_NO and REQ_PIECE_NO for the requirement the material was issued to. Customer order rows carry CUST_ORDER_ID and CUST_ORDER_LINE_NO, and purchase rows PURC_ORDER_ID and PURC_ORDER_LINE_NO. Join on every key column of the work order, or quantities multiply across splits.
Worked example: monthly usage by part
Usage is what left stock to be consumed: issues to work orders and shipments, less returns. Sum QTY for TYPE 'O' and CLASS 'I', subtract QTY for TYPE 'I' and CLASS 'I', and group by PART_ID and month of TRANSACTION_DATE. Leave receipts and adjustments out, because they are supply and corrections, not demand. If you want work order consumption only, add WORKORDER_BASE_ID IS NOT NULL; for sales usage only, CUST_ORDER_ID IS NOT NULL. Compare the result to the part's planning usage before you change reorder points from it.
Gotchas
Do not sum QTY across all rows to get on hand: receipts, returns and adjustments need signs from TYPE, and on hand is better read from PART_LOCATION or the part's quantity columns. Do not treat adjustments out as usage, or scrap and count losses inflate demand. Reversals appear as the opposite TYPE with the same CLASS, so a report that sums only TYPE 'O' rows without subtracting the matching TYPE 'I' returns overstates usage, and one that filters on TYPE without CLASS mixes receipt returns and adjustments into issues. Finally, sites, versions and customisations differ, so run the decode query in the notes on your own database first and drop any combination it does not return.
Frequently Asked Questions
What is Infor VISUAL ERP?
Infor VISUAL is an ERP for job shop, make-to-order and mixed-mode manufacturers, typically run on SQL Server on-prem. It covers estimating, customer orders, work orders and scheduling, purchasing, inventory and financials. Its tables, such as WORK_ORDER and INVENTORY_TRANS, are commonly queried directly for reports.
Where are inventory transactions stored in VISUAL?
In the INVENTORY_TRANS table, one row per movement. TYPE and CLASS describe the movement, PART_ID, WAREHOUSE_ID and LOCATION_ID what and where, and the work order, customer order or purchase order link columns tie it to its source document.
How do I find work order issues in VISUAL with SQL?
Select from INVENTORY_TRANS where TYPE = 'O' and CLASS = 'I' and WORKORDER_BASE_ID is not null. Join to WORK_ORDER on all five work order key columns, and to REQUIREMENT with OPERATION_SEQ_NO and REQ_PIECE_NO if you need the requirement line. Subtract issue returns, TYPE 'I' and CLASS 'I', for net issues.
Is there an Infor VISUAL user guide for the database?
Infor ships documentation and a data dictionary with VISUAL to licensed customers, but the schema is not published openly. Treat any public reference, including this one, as a map and confirm column names and codes against your own database with a read-only login.
If your planners want to ask VISUAL about part usage and stock movements in plain English on your own servers, we can add a read-only AI layer over INVENTORY_TRANS and related tables.
Related Tools
Infor VISUAL Sales and Purchasing Columns Reference
Searchable column list for VISUAL customer orders, shippers, purchase orders and receivers, with the joins and unit of measure rules Crystal and SSRS reports need.
Other ERPsInfor VISUAL Database Table Reference
A searchable lookup of the main VISUAL Manufacturing tables, what each holds and the usual join keys, for report writers and analysts.
Developer ToolsInfor VISUAL SQL Query Generator for Work Orders
Build a SQL Server query for open or late VISUAL work orders by filling a few fields, then copy it into your query tool.
Costing & FinanceVISUAL Work Order Material Usage Variance Calculator
Enter order quantity, quantity per, scrap allowance and actual issue to get usage variance, cost variance and yield.
Costing & FinanceVISUAL Month-End Inventory Reconciliation Checklist
A grouped checklist to tie the inventory subledger to the general ledger before closing the month.
More Other ERPs tools
See all- Infor VISUAL Private AI Layer Blueprint Generator
- Infor VISUAL AI Assistant Sizing and Value Calculator
- Infor VISUAL Open Customer Order Backlog Query Generator
- Infor VISUAL SQL Server Memory Sizing Calculator
- Infor VISUAL Upgrade Cutover Window Calculator
- Infor VISUAL Work Order Status and Structure Reference
- Infor VISUAL Manufacturing Scheduling Checklist
- Infor XA (MAPICS) Period End Close Checklist
- Infor XA (MAPICS) Application Module Reference
Keep exploring
Free tools
- Infor VISUAL Database Table ReferenceA searchable lookup of the main VISUAL Manufacturing tables, what each holds and the usual join keys, for report writers and analysts.
- Infor VISUAL Work Order Status and Structure ReferenceA searchable lookup of VISUAL work order statuses, the work order ID structure and the records that hang off a work order, with what each means on the floor.
- Infor VISUAL AI Assistant Sizing and Value CalculatorSize the GPUs and estimate the monthly value and payback of a private, on-prem AI assistant for Infor VISUAL.
ERP fixes and how-tos
- Private AI Layer for Infor VISUAL On-Prem: Reference ArchitectureReference architecture to add a private AI assistant to Infor VISUAL on-prem: data access paths, retrieval, permissions, sizing and rollout, no cloud needed.
- Infor VISUAL report builder: build a custom work order reportHow to build and customise reports for Infor VISUAL using Crystal Reports and SQL, with a worked work order report example and the common tables involved.
- Infor VISUAL query tool and shop resource maintenanceHow to query Infor VISUAL data safely with SQL or the built-in query options, and how shop resources are defined and maintained for scheduling and costing.
Runs with your ERP
- 1 EDI Source EDI Integration with Infor VISUALHow 1 EDI Source connects Infor VISUAL to trading partners for EDI orders, invoices and ship notices via ION or direct API: setup, pitfalls and private AI.
- Infor VISUAL Shop Floor Mobile for Labor TrackingHow Infor VISUAL Shop Floor Mobile captures clock-ins and labor data from shop-floor devices directly into VISUAL: data flow, setup, pitfalls and private AI.
- VISUAL Time & Attendance and Infor VISUAL: labor, job costing and payrollHow VISUAL Time & Attendance captures clock-ins and job labor, feeds VISUAL job costing and exports earnings to payroll, with setup, pitfalls and AI ideas.
Integrations
- How to use ChatGPT with Infor VISUALHow to use ChatGPT with Infor VISUAL data: exports, custom GPT actions over a small API, enterprise data controls, and when a private model is the better fit.
- How to use Claude with Infor VISUALHow to use Claude with Infor VISUAL: connect through an MCP server, choose between the Anthropic API, Bedrock or Vertex, and see what changes for on-prem plants.