Guide

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 FieldDescriptionMoved To
LFSTADelivery StatusVBAP (Sales Order Item)
FKSAABilling Status (Order)VBAP
FKSTABilling Status (Delivery)LIPS (Delivery Item)
WBSTAGoods Movement StatusLIPS
COSTAConfirmation StatusVBAP
DCSTADelay StatusVBAP
RRSTARevenue Recognition StatusVBAP

VBUK (Header Status) Fields Moved To:

VBUK FieldDescriptionMoved To
LFSTKOverall Delivery StatusVBAK (Sales Order Header)
FKSAKOverall Billing StatusVBAK
GBSTKOverall StatusVBAK
COSTAOverall Confirmation StatusVBAK
ABSTKRejection StatusVBAK
WBSTKOverall Goods Movement StatusLIKP (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:

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

Related Resources