Other ERPsFree referencePDF, Excel, Word exportInfor VISUALAll Infor VISUAL tools

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.

Download:
TYPECLASSMeaningTypical sourceLink columns filledOn-hand effectCounts 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.

Was this tool useful?

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.

ArchRay builder
Design the on-prem AI stack for Infor VISUAL: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

Runs with your ERP

Guides

AI on your ERP

Integrations

Software