# Infor VISUAL INVENTORY_TRANS TYPE and CLASS Reference

> Source: https://netray.co/tools/infor-visual-inventory-trans-type-class-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

What each TYPE and CLASS combination in the VISUAL INVENTORY_TRANS table means, which order columns are filled, and how it moves on hand and usage.

## Category

other-erp

## Erp

Infor VISUAL

## Audience

- VISUAL administrator
- Report writer
- Cost accountant
- Inventory analyst

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### TYPE

**Key:** type

**Type:** text

#### CLASS

**Key:** klass

**Type:** text

#### Meaning

**Key:** meaning

**Type:** text

#### Typical source

**Key:** source

**Type:** text

#### Link columns filled

**Key:** links

**Type:** text

#### On-hand effect

**Key:** onhand

**Type:** text

#### Counts as usage

**Key:** usage

**Type:** text

**Rows:**

**Type:** O

**Klass:** I

**Meaning:** Out, issue

**Source:** Material issued to a work order requirement

**Links:** WORKORDER_TYPE, WORKORDER_BASE_ID, WORKORDER_LOT_ID, WORKORDER_SPLIT_ID, WORKORDER_SUB_ID, OPERATION_SEQ_NO, REQ_PIECE_NO

**Onhand:** Decreases

**Usage:** Yes

**Type:** O

**Klass:** I

**Meaning:** Out, issue

**Source:** Shipment against a customer order line

**Links:** CUST_ORDER_ID, CUST_ORDER_LINE_NO

**Onhand:** Decreases

**Usage:** Yes, as sales usage

**Type:** I

**Klass:** I

**Meaning:** In, issue return

**Source:** Material returned from a work order back to stock

**Links:** Work order link columns

**Onhand:** Increases

**Usage:** Reduces usage

**Type:** I

**Klass:** I

**Meaning:** In, issue return

**Source:** Customer return or shipment reversal against an order line

**Links:** CUST_ORDER_ID, CUST_ORDER_LINE_NO

**Onhand:** Increases

**Usage:** Reduces usage

**Type:** I

**Klass:** R

**Meaning:** In, receipt

**Source:** Purchase receipt

**Links:** PURC_ORDER_ID, PURC_ORDER_LINE_NO

**Onhand:** Increases

**Usage:** No

**Type:** I

**Klass:** R

**Meaning:** In, receipt

**Source:** Work order receipt of finished parts to stock

**Links:** Work order link columns

**Onhand:** Increases

**Usage:** No

**Type:** O

**Klass:** R

**Meaning:** Out, receipt return

**Source:** Return to vendor or reversal of a purchase receipt

**Links:** PURC_ORDER_ID, PURC_ORDER_LINE_NO

**Onhand:** Decreases

**Usage:** No

**Type:** O

**Klass:** R

**Meaning:** Out, receipt return

**Source:** Reversal of a work order receipt

**Links:** Work order link columns

**Onhand:** Decreases

**Usage:** No

**Type:** I

**Klass:** A

**Meaning:** In, adjustment

**Source:** Inventory adjustment in, for example a count gain

**Links:** None of the order links

**Onhand:** Increases

**Usage:** No

**Type:** O

**Klass:** A

**Meaning:** Out, adjustment

**Source:** Inventory adjustment out, for example a count loss or scrap from stock

**Links:** None of the order links

**Onhand:** Decreases

**Usage:** Usually no; treat as shrink

**Type:** (column)

**Klass:** TRANSACTION_ID

**Meaning:** Unique id of the inventory transaction row

**Source:** -

**Links:** -

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** PART_ID

**Meaning:** Part that moved

**Source:** -

**Links:** PART.ID

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** TYPE

**Meaning:** Direction: I in, O out

**Source:** -

**Links:** -

**Onhand:** Sign of the movement

**Usage:** -

**Type:** (column)

**Klass:** CLASS

**Meaning:** Family: I issue, R receipt, A adjustment

**Source:** -

**Links:** -

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** QTY

**Meaning:** Quantity moved in the part stock U/M

**Source:** -

**Links:** -

**Onhand:** Apply direction from TYPE

**Usage:** -

**Type:** (column)

**Klass:** TRANSACTION_DATE

**Meaning:** Date of the movement

**Source:** -

**Links:** -

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** WAREHOUSE_ID

**Meaning:** Warehouse of the movement

**Source:** -

**Links:** WAREHOUSE.ID

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** LOCATION_ID

**Meaning:** Location inside the warehouse

**Source:** -

**Links:** LOCATION.WAREHOUSE_ID + ID

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** WORKORDER_BASE_ID

**Meaning:** Work order base id, with WORKORDER_TYPE, LOT_ID, SPLIT_ID and SUB_ID columns

**Source:** Work order issues and receipts

**Links:** WORK_ORDER on all five key columns

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** OPERATION_SEQ_NO

**Meaning:** Work order operation the material went to

**Source:** Work order issues

**Links:** REQUIREMENT with REQ_PIECE_NO

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** CUST_ORDER_ID

**Meaning:** Customer order, with CUST_ORDER_LINE_NO

**Source:** Shipments and customer returns

**Links:** CUST_ORDER_LINE

**Onhand:** -

**Usage:** -

**Type:** (column)

**Klass:** PURC_ORDER_ID

**Meaning:** Purchase order, with PURC_ORDER_LINE_NO

**Source:** Purchase receipts and returns

**Links:** PURC_ORDER_LINE

**Onhand:** -

**Usage:** -

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to read TYPE and CLASS

**Body:** 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.

**Bullets:**

- TYPE: I in, O out
- CLASS: I issue, R receipt, A adjustment
- Source: whichever order link column is filled

#### Key columns

**Body:** 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

**Body:** 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

**Body:** 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.

**Cta:** 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.

**Faq:**

#### What is Infor VISUAL ERP?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

infor visual erp, infor visual user guide, infor visual erp help, visual manufacturing erp, infor visual inventory_trans, visual inventory transaction type class, visual manufacturing inventory transactions sql, infor visual usage report

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
