Sales Document Status Migration: VBUP/VBUK Removal in S/4HANA
How SAP S/4HANA removes the status tables VBUP and VBUK, redistributes status fields to VBAP, VBAK, LIPS, and LIKP, and what CDS Views to use.
What Changed?
In SAP ECC, sales document statuses were stored in dedicated status tables: VBUP (Item Status) and VBUK (Header Status). These tables held fields like delivery status (LFSTA), billing status (FKSAA), and overall status (GBSTA) for sales orders, deliveries, and billing documents.
SAP S/4HANA removes VBUP and VBUK and redistributes the status fields to the existing item and header tables where they logically belong.
Status Field Redistribution
VBUP (Item Status) Fields Moved To:
| VBUP Field | Description | Moved To |
|---|---|---|
| LFSTA | Delivery Status | VBAP (Sales Order Item) |
| FKSAA | Billing Status (Order) | VBAP |
| FKSTA | Billing Status (Delivery) | LIPS (Delivery Item) |
| WBSTA | Goods Movement Status | LIPS |
| COSTA | Confirmation Status | VBAP |
| DCSTA | Delay Status | VBAP |
| RRSTA | Revenue Recognition Status | VBAP |
VBUK (Header Status) Fields Moved To:
| VBUK Field | Description | Moved To |
|---|---|---|
| LFSTK | Overall Delivery Status | VBAK (Sales Order Header) |
| FKSAK | Overall Billing Status | VBAK |
| GBSTK | Overall Status | VBAK |
| COSTA | Overall Confirmation Status | VBAK |
| ABSTK | Rejection Status | VBAK |
| WBSTK | Overall Goods Movement Status | LIKP (Delivery Header) |
KONV to PRCD_ELEMENTS
A related SD change: the pricing conditions table KONV is replaced by PRCD_ELEMENTS in S/4HANA. PRCD_ELEMENTS uses a GUID-based key instead of KONV's document number-based key and supports both header and item conditions in one table.
CDS Views for Sales Documents
The recommended CDS Views for accessing sales document data including statuses:
- I_SalesDocument — Sales Document Header (includes header statuses)
- I_SalesDocumentItem — Sales Document Items (includes item statuses)
- I_SalesOrder — Sales Order (header-level with statuses)
- I_SalesOrderItem — Sales Order Items (with delivery/billing statuses)
- I_DeliveryDocument — Delivery Header (replaces LIKP reads)
- I_DeliveryDocumentItem — Delivery Items (replaces LIPS reads)
- I_BillingDocument — Billing Document Header
- I_BillingDocumentItem — Billing Document Items
ABAP Code Migration Example
Before (ECC — reading VBUP for item status):
SELECT vbeln posnr lfsta fksaa gbsta
FROM vbup
INTO TABLE @DATA(lt_status)
WHERE vbeln = '0000012345'.
After (S/4HANA — reading status from VBAP directly):
SELECT vbeln posnr lfsta fksaa
FROM vbap
INTO TABLE @DATA(lt_status)
WHERE vbeln = '0000012345'.
Better (S/4HANA — using CDS View):
SELECT SalesDocument, SalesDocumentItem,
OverallDeliveryStatus, OverallBillingStatus
FROM I_SalesDocumentItem
WHERE SalesDocument = '0000012345'
INTO TABLE @DATA(lt_status).
Impact on Custom Code
- SELECT FROM VBUP / VBUK — Must be replaced with reads from VBAP/VBAK/LIPS/LIKP or CDS Views
- Joins with VBUP/VBUK — Simplify by reading status fields directly from the item/header tables
- SELECT FROM KONV — Replace with reads from PRCD_ELEMENTS or CDS Views
- Custom Code Check — Use transaction SYCM to identify all references to VBUP, VBUK, and KONV