SAP S/4HANA · Accounts Receivable · Legacy → ACDOCA
BSID & BSAD in S/4HANA
Compatibility viewFI-AR
Short answer
In S/4HANA, BSID and BSAD are compatibility views, not tables. Customer line items live in ACDOCA — but open-item status and payment terms stay in BSEG. Read the released CDS view I_OperationalAcctgDocItem (FinancialAccountType = 'D'): it surfaces the customer, payment terms, and due date in one place. Don't extract from BSID/BSAD.
BSID · openBSAD · cleared────▶ACDOCAamountsBSEGopen items + termsI_OperationalAcctgDocItem
What they were
In ECC, Accounts Receivable kept secondary index tables for customer (Debitor, the “D”) line items: BSID held open items, BSAD held cleared ones. When an invoice was paid, the record moved from BSID to BSAD.
What changed in S/4HANA
The names remain as compatibility views. The accounting line item resolves to ACDOCA; the open item and its payment terms stay in BSEG.
| Object | Was | Now in S/4HANA |
|---|---|---|
| BSID | Customer open-item index (table) | Compat view → ACDOCA |
| BSAD | Customer cleared-item index (table) | Compat view → ACDOCA |
| ACDOCA | — | Transparent table — the accounting line item (amounts, account) |
| BSEG | — | Transparent table — open-item management + payment terms |
In S/4HANA, BSEG didn’t disappear — it changed role. It is now the financial-operations line item (open items, payment terms, baseline date); ACDOCA is the financial-accounting line item. Customer aging and dunning need both.
Where the fields went — BSID to ACDOCA / BSEG
| BSID / BSAD field | Lives now in | Field |
|---|---|---|
| BUKRS | ACDOCA | RBUKRS |
| KUNNR | ACDOCA · CDS | KUNNR · Customer |
| HKONT (recon acct) | ACDOCA | RACCT |
| GJAHR | ACDOCA | GJAHR |
| BELNR | ACDOCA | BELNR |
| BUZEI | ACDOCA | DOCLN |
| DMBTR / WRBTR | ACDOCA | HSL / TSL |
| SHKZG | ACDOCA | DRCRK |
| AUGBL | ACDOCA | AUGBL |
| ZTERM (payment terms) | BSEG | CDS: PaymentTerms |
| ZFBDT / ZBD1T (baseline / days) | BSEG | CDS: DocumentItemDate / NetPaymentDays |
The last two rows are the AR gotcha: payment terms and the baseline date are not in ACDOCA. That is why customer aging and dunning read the CDS view (which joins BSEG), not raw ACDOCA.
How to query it now
SELECT je.CompanyCode,
it.Customer,
je.AccountingDocument,
je.FiscalYear,
it.AmountInTransactionCurrency AS amount,
it.PaymentTerms,
it.NetPaymentDays,
ADD_DAYS( it.DocumentItemDate,
TO_INTEGER(it.NetPaymentDays) ) AS net_due_date
FROM I_JournalEntry AS je
JOIN I_OperationalAcctgDocItem AS it
ON je.CompanyCode = it.CompanyCode
AND je.AccountingDocument = it.AccountingDocument
AND je.FiscalYear = it.FiscalYear
WHERE it.FinancialAccountType = 'D' -- D = customer (Debitor)
AND je.CompanyCode = :company_code;
Open vs cleared: BSID held only open items. In S/4HANA, open-item status is managed in BSEG — a cleared item carries its clearing document / clearing date. Filter on that for open items, or take the status from BSEG; ACDOCA alone won’t give a clean open/cleared split.
Standard line-item report: FBL5N → S/4HANA Fiori app Manage Customer Line Items.
Extract it compliantly
| Method | Use when |
|---|---|
| Released CDS view + SLT | Bulk to a warehouse — the owned-layer path (I_OperationalAcctgDocItem) |
| Table / Table-CDC | Direct ACDOCA + BSEG replication with delta |
| ODP-OData | SAP-sanctioned API, lower volume |
| SAP BDC / Datasphere Replication Flow | SAP-native pass-through (Delta Sharing) |
Not ODP-RFC. SAP Note 3255746 prohibits third-party ODP-RFC extraction, and a June 2026 security patch blocks it.
Related
ACDOCA — the Universal Journal hub · BSIK / BSAK → ACDOCA — the vendor (AP) side · Extraction pattern
Moving AR aging off BSID/BSAD?
We ship the CDS / SLT config, the due-date SQL, and dbt models — reconciled to the AR sub-ledger, and you own the code.