Customer Balances
Each customer’s balance — the carryforward brought in from last year, this period’s debits and credits, and the closing balance. The old FD10N, built on I_OperationalAcctgDocItem.
Sample build of the Customer Balances report — carryforward, period movement, and closing balance per customer, reconciled to the receivables control account, and rendered tool-neutral so it runs in Power BI, SAC, or Tableau.
| Customer | Carryforward | Debits | Credits | Balance |
|---|---|---|---|---|
| 1400021 · Horizon Retail | 1,900,000 | 1,600,000 | 1,180,000 | 2,320,000 |
| 1400033 · Cedar Foods | 1,500,000 | 980,000 | 650,000 | 1,830,000 |
| 1400015 · Atlas Media | 900,000 | 740,000 | 420,000 | 1,220,000 |
| 1400052 · Brightway Clinics | 120,000 | 80,000 | 360,000 | (160,000) |
Each customer's balance is its carryforward — the Period 0 opening brought in from last year — plus the period's debits minus credits. The total reconciles to the receivables control account on the trial balance.
Customer 1400052 (Brightway Clinics) shows a credit balance of 160K — they've paid more than they owe, or a credit memo is sitting unapplied. Apply or refund it before it ages.
If a balance doesn't match the line-item report, special-G/L items (down payments) are the usual cause — the balance includes them, the standard line-item view may not. Reconcile on account type, reconciliation account, and special G/L.
The report's query logic — it sums the released CDS view I_OperationalAcctgDocItem (customer lines) per customer, taking Period 0 as the carryforward and the period movements as debits and credits. The same SQL becomes a dbt model in your warehouse.
Show / hide SQL
SELECT it.Customer,
SUM(CASE WHEN it.FiscalPeriod = 0
THEN it.AmountInCompanyCodeCurrency ELSE 0 END) AS carryforward,
SUM(CASE WHEN it.FiscalPeriod BETWEEN 1 AND :P_TO_PERIOD
AND it.DebitCreditCode = 'S' -- S = debit
THEN it.AmountInCompanyCodeCurrency ELSE 0 END) AS period_debits,
SUM(CASE WHEN it.FiscalPeriod BETWEEN 1 AND :P_TO_PERIOD
AND it.DebitCreditCode = 'H' -- H = credit
THEN it.AmountInCompanyCodeCurrency ELSE 0 END) AS period_credits,
SUM(CASE WHEN it.FiscalPeriod <= :P_TO_PERIOD
THEN it.AmountInCompanyCodeCurrency ELSE 0 END) AS balance
FROM I_OperationalAcctgDocItem AS it
WHERE it.FinancialAccountType = 'D' -- D = customer (Debitor)
AND it.CompanyCode = :P_COMPANY_CODE
AND it.FiscalYear = :P_FISCAL_YEAR
GROUP BY it.Customer
ORDER BY balance DESC;The data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per customer · period.
| Element | Type | Definition |
|---|---|---|
| dim_customer | dimension | Customer — Business Partner (customer role), name, group |
| dim_company_code | dimension | Company code & ledger context |
| dim_gl_account | dimension | Reconciliation (receivables) account — RACCT |
| dim_date | dimension | Conformed calendar — fiscal year & period |
| carryforward | measure | Period 0 opening brought in from the prior year |
| period_debits | measure | Sum of debit movements in the period range |
| period_credits | measure | Sum of credit movements in the period range |
| balance | measure | Carryforward + credits − debits, cumulative to the period |
Every source object behind this report. Each linked object has its own page — with its fields and its real S/4HANA status, so you build on the right thing.
| Object | Role | Key fields | S/4HANA status |
|---|---|---|---|
| I_OperationalAcctgDocItem | Customer line item, summed per customer — the read object | released | Released CDS view |
| ACDOCA | Universal Journal — movements plus the Period 0 carryforward | 6 PK · 360+ | Transparent table |
| BSEG | Open-item management & payment terms (baseline date, net days) | 4 PK | Transparent table |
| Business Partner | Customer master (customer role) — the dimension | BUT000 | Transparent table |
| KNC1 / LFC1 | Legacy vendor / customer balance tables — reference only, do not extract | — | Compat view → ACDOCA |
| Display Customer Balances | The S/4HANA app (FD10N's successor) this report reconciles to — reference | app | Reconcile target |
- Balance
- What a customer account totals: carryforward plus the period’s debits minus credits.
- Carryforward
- The opening balance brought in from the prior fiscal year.
- Period 0
- How ACDOCA stores the carryforward — a special “period zero” document.
- Special G/L
- Items like down payments shown separately — the usual reconciliation gap.
- Debit / credit
- The two sides of a posting; a customer balance is normally a debit.
- KNC1 / LFC1
- The old customer / vendor balance tables — now compatibility views.
- ACDOCA
- SAP's single table holding every finance posting (the "Universal Journal").
- Reconciliation account
- The single G/L account the customer sub-ledger rolls up into.
- I_OperationalAcctgDocItem
- The released view that gives the customer line with its terms (account type D = customer).
- Business Partner
- The single S/4HANA master for suppliers and customers (table BUT000).
- ODP-RFC
- An older extraction route SAP now bans for non-SAP tools (Note 3255746).