OPLN table in SAP Business One (Price Lists)
OPLN is the SAP Business One price list table: one row per price list with its number, name, base price list, factor, rounding method and currencies. It does not hold item prices; those are in ITM1, joined on ITM1.PriceList = OPLN.ListNum.
OPLN key fields
| Field | What it holds |
|---|---|
ListNum | Price list number, the primary key. Joins to ITM1.PriceList. |
ListName | Price list name, unique. |
BASE_NUM | Base price list. Joins to OPLN.ListNum. |
Factor | Factor applied to the base price list. |
RoundSys | Rounding method: 0 = no rounding, 1 = full decimal amount, 2 = full amount, 3 = full tens amount, 4 = fixed ending, 5 = fixed interval. |
RoundRule | R = round to closest, C = round up, F = round down. |
IsGrossPrc | Y = gross prices, N = net prices. |
ValidFor / ValidFrom / ValidTo | Active flag and active period. |
PrimCurr | Primary default currency. |
AddCurr1 / AddCurr2 | Additional default currencies. |
GroupCode | Price list group number. |
How OPLN relates to other tables
OPLN is master data with no line table. ITM1 holds one row per item and price list and points here through PriceList. A price list can be based on another list: BASE_NUM is the base list and Factor the multiplier, and the item rows in ITM1 carry the same idea in BasePLNum and Factor.
Common joins
OPLN T0 INNER JOIN ITM1 T1 ON T0.ListNum = T1.PriceList (item prices)OPLN T0 LEFT JOIN OPLN T2 ON T0.BASE_NUM = T2.ListNum (base price list)
When you use the OPLN table
Use OPLN to list price lists with their base list and factor, to check rounding and gross or net setup before a price update, and to show the list name next to ITM1 prices.
Example query: price lists with their base list and number of priced items
SQL Server
SELECT T0.ListNum, T0.ListName, T2.ListName AS BaseList, T0.Factor, T0.RoundSys, T0.IsGrossPrc, COUNT(T1.ItemCode) AS PricedItems FROM OPLN T0 LEFT JOIN OPLN T2 ON T0.BASE_NUM = T2.ListNum LEFT JOIN ITM1 T1 ON T0.ListNum = T1.PriceList AND T1.Price <> 0 GROUP BY T0.ListNum, T0.ListName, T2.ListName, T0.Factor, T0.RoundSys, T0.IsGrossPrc ORDER BY T0.ListNum
SAP HANA (column names in double quotes)
SELECT T0."ListNum", T0."ListName", T2."ListName" AS "BaseList", T0."Factor", T0."RoundSys", T0."IsGrossPrc", COUNT(T1."ItemCode") AS "PricedItems" FROM OPLN T0 LEFT JOIN OPLN T2 ON T0."BASE_NUM" = T2."ListNum" LEFT JOIN ITM1 T1 ON T0."ListNum" = T1."PriceList" AND T1."Price" <> 0 GROUP BY T0."ListNum", T0."ListName", T2."ListName", T0."Factor", T0."RoundSys", T0."IsGrossPrc" ORDER BY T0."ListNum"
Paste either version in Tools → Queries → Query Generator. Need the other dialect for your own query? Use the SQL to HANA converter.
Common pitfall: Looking for item prices in OPLN
OPLN has no ItemCode and no Price column. Item prices are in ITM1; OPLN only names and configures the list. Join ITM1.PriceList to OPLN.ListNum, and pass the price list number (ListNum), not its name, to queries that filter ITM1. See Items with no price in a price list.
Ready-made queries that use OPLN
- Items with no price in a price list: Sales items that have a zero price in the chosen price list.
Questions about the OPLN table
Where are item prices stored: OPLN or ITM1?
In ITM1. OPLN holds the price lists (ListNum, ListName, base list, factor, rounding); ITM1 holds the price of each item per list, joined on ITM1.PriceList = OPLN.ListNum.
What do BASE_NUM and Factor mean in OPLN?
BASE_NUM is the base price list (another OPLN.ListNum) and Factor the factor applied to it.
What are the RoundSys values in OPLN?
0 = no rounding, 1 = round to full decimal amount, 2 = full amount, 3 = full tens amount, 4 = fixed ending, 5 = fixed interval. RoundRule sets the direction: R closest, C up, F down.
Related tables
ITM1 (Item Prices (per price list)) · OITM (Items (item master data)) · 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.
