How to Change Inventory Valuation Method

Modified on Wed, 16 Jul at 8:25 AM

Changing the valuation method (e.g., from Moving Average to Standard Cost) for an item in SAP Business One is subject to several system prerequisites. These steps ensure that there are no stock inconsistencies or open documents that could impact inventory valuation.


Prerequisites Before Changing Valuation Method

1. In-Stock Quantity Must Be Zero in All Warehouses

An item cannot have any stock on hand in any warehouse.

SQL Query:
Replace XXXX with your Item Code:


SELECT "WhsCode", "OnHand" AS "Quantity"
FROM OITW
WHERE "ItemCode" = 'XXXX' AND "OnHand" <> 0;

2. No Open Inventory-Relevant Documents

Ensure there are no open documents referencing the item.

Use the queries below to check for each document type:

-- Goods Receipt PO
SELECT 'GRPO', T2."DocNum"
FROM PDN1 T1
INNER JOIN OPDN T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."TargetType" <> '21' AND T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O';
-- Goods Return
SELECT 'Goods Return', T2."DocNum"
FROM RPD1 T1
INNER JOIN ORPD T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."TrgetEntry" IS NULL AND T1."BaseType" <> '20' AND T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O';
-- A/P Invoice
SELECT 'A/P Invoice', T2."DocNum"
FROM PCH1 T1
INNER JOIN OPCH T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O' AND T1."BaseEntry" IS NULL;
-- A/P Credit Memo
SELECT 'A/P Credit Memo', T2."DocNum"
FROM RPC1 T1
INNER JOIN ORPC T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O';
-- Sales Delivery
SELECT 'Sales Delivery', T2."DocNum"
FROM DLN1 T1
INNER JOIN ODLN T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."TargetType" <> '16' AND T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O';
-- Sales Return
SELECT 'Sales Return', T2."DocNum"
FROM RDN1 T1
INNER JOIN ORDN T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."TrgetEntry" IS NULL AND T1."BaseType" <> '15' AND T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O';
-- A/R Invoice
SELECT 'A/R Invoice', T2."DocNum"
FROM INV1 T1
INNER JOIN OINV T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O' AND T2."DocStatus" = 'O' AND T1."BaseEntry" IS NULL;
-- A/R Credit Memo
SELECT 'A/R Credit Memo', T2."DocNum"
FROM RIN1 T1
INNER JOIN ORIN T2 ON T1."DocEntry" = T2."DocEntry"
WHERE T1."ItemCode" = 'XXXX' AND T1."LineStatus" = 'O' AND T2."DocStatus" = 'O';

3. No Open Production Orders Received to Stock

Ensure no open production orders have had partial or full stock receipts.

SQL Query:

SELECT *
FROM OWOR T0
INNER JOIN IGN1 T1 ON T1."BaseEntry" = T0."DocEntry" AND T1."BaseType" = 202
WHERE T0."ItemCode" = 'XXXX' AND T0."Status" = 'R';



4. No Quantity Inconsistencies in Goods Receipt PO

Check for inconsistencies in closed GRPO lines.

SQL Query:

SELECT *
FROM PDN1
WHERE "ItemCode" = 'XXXX' AND "OpenCreQty" <> 0 AND "LineStatus" = 'C';


How to Change the Valuation Method

Once all checks are complete and no blocking conditions exist:

Navigation:

Main Menu → Inventory Management → Item Management → Inventory Valuation Method

Or via:
Item Master Data → Inventory Data tab → Valuation Method field


Additional Help

If you’ve completed all the above steps and are still unable to change the valuation method, please log a support ticket and reference:

SAP Note 1250867 - Inconsistency of Items Managed by Batches or Serial Numbers

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article