OITT table in SAP Business One (Bill of Materials (product tree header))

OITT is the SAP Business One product tree (bill of materials) header table: one row per parent item that has a BOM, with the BOM type, the number of units the BOM makes, the price list and the warehouse for the finished product. The components are in ITT1, joined on ITT1.Father = OITT.Code.

OITT key fields

FieldWhat it holds
CodeParent item. Joins to OITM.ItemCode and to ITT1.Father.
NameProduct description.
TreeTypeBOM type: A = assembly, S = sales, P = production, T = template.
QauntityNumber of units the BOM produces (the column name is spelled this way).
PriceListPrice list. Joins to OPLN.ListNum.
ToWHWarehouse for the finished product.
PlAvgSizePlanned average production size.
HideCompY = hide components in printing.
Project / OcrCodeProject code and distribution rule.
CreateDate / UpdateDateCreation and update dates.

How OITT relates to other tables

OITT is the header and ITT1 holds one row per component, joined on ITT1.Father = OITT.Code. The parent item is also in OITM (OITM.TreeType shows which items have a BOM). Production orders for the parent item are in OWOR.

Common joins

  • OITT T0 INNER JOIN ITT1 T1 ON T1.Father = T0.Code (components)
  • OITT T0 INNER JOIN OITM T2 ON T2.ItemCode = T0.Code (parent item)
  • OITT T0 LEFT JOIN OPLN T3 ON T3.ListNum = T0.PriceList (price list)

When you use the OITT table

Use OITT to list all BOMs by type, to find parent items whose BOM has no components, and as the start of component, costing and where-used reports.

Example query: bills of materials with type and number of components

SQL Server

SELECT T0.Code AS ParentItem, T2.ItemName, T0.TreeType, T0.Qauntity AS UnitsMade,
  COUNT(T1.ChildNum) AS Components
FROM OITT T0
INNER JOIN OITM T2 ON T2.ItemCode = T0.Code
LEFT JOIN ITT1 T1 ON T1.Father = T0.Code
GROUP BY T0.Code, T2.ItemName, T0.TreeType, T0.Qauntity
ORDER BY T0.Code

SAP HANA (column names in double quotes)

SELECT T0."Code" AS "ParentItem", T2."ItemName", T0."TreeType", T0."Qauntity" AS "UnitsMade",
  COUNT(T1."ChildNum") AS "Components"
FROM OITT T0
INNER JOIN OITM T2 ON T2."ItemCode" = T0."Code"
LEFT JOIN ITT1 T1 ON T1."Father" = T0."Code"
GROUP BY T0."Code", T2."ItemName", T0."TreeType", T0."Qauntity"
ORDER BY T0."Code"

Paste either version in Tools → Queries → Query Generator. Need the other dialect for your own query? Use the SQL to HANA converter.

Common pitfall: The quantity column is spelled Qauntity

In OITT the number of units is the column Qauntity, not Quantity, so a query with OITT.Quantity fails. ITT1 uses the normal spelling Quantity. Divide component quantities by OITT.Qauntity when the BOM makes more than one unit. See ITT1 table (BOM components).

Questions about the OITT table

Where is the bill of materials stored in SAP Business One?

The header is in OITT (one row per parent item) and the components are in ITT1, joined on ITT1.Father = OITT.Code.

What do the OITT TreeType values mean?

A = assembly, S = sales, P = production, T = template.

Why does OITT.Quantity not exist?

The column is spelled Qauntity in OITT. ITT1 has Quantity.

Related tables

ITT1 (Bill of Materials (components)) · OITM (Items (item master data)) · OWOR (Production Order (header)) · search all SAP Business One tables

Sources: SAP Business One documentation and SDK (DI API database tables reference), SAP Help Portal.

Ready to get started?

Tell us what you need. You get a clear technical answer, a fixed scope and a price, usually within 24 hours.