Internal Order Report
Budget versus actual by internal order, with what is still available, built on ACDOCA, where the order's actuals are real-time. The over-budget orders surface first.
Sample build of the Internal Order Report — budget versus actual by internal order, with the over-budget orders surfaced first, rendered tool-neutral so it runs in Power BI, SAC, or Tableau.
| Internal order | Budget | Actual | Available | Used |
|---|---|---|---|---|
| 100100 · Trade show EMEA | 250,000 | 268,000 | −18,000 | 107% |
| 100400 · Sponsorships | 120,000 | 118,000 | 2,000 | 98% |
| 100200 · Product launch | 400,000 | 312,000 | 88,000 | 78% |
| 100300 · Brand campaign | 180,000 | 95,000 | 85,000 | 53% |
Across four orders, 793K spent against 950K budget — 83.5% used, 157K still available. But it is concentrated: one order is already over.
Trade show EMEA (100100) is 7% over budget — 268K against 250K, −18K available. It is the only order in the red, and the year is not done.
Spend crossed budget before the order closed. Route to the order owner for a supplement or a stop. In S/4HANA the order's actuals sit on ACDOCA (field AUFNR), so the overrun is visible in real time — not a month-end surprise.
The report's query logic — generic SQL on ACDOCA. It sums actual cost by internal order for the year, then joins your budget to get what is available. The same SQL becomes a dbt model in your warehouse.
Show / hide SQL
SELECT a.aufnr AS internal_order,
SUM(a.hsl) AS actual_cost,
b.budget AS budget,
b.budget - SUM(a.hsl) AS available
FROM acdoca a
LEFT JOIN order_budget b ON b.aufnr = a.aufnr
WHERE a.rbukrs = :P_COMPANY_CODE
AND a.gjahr = :P_FISCAL_YEAR
AND a.aufnr IN ( :P_ORDER_GROUP )
GROUP BY a.aufnr, b.budget
ORDER BY available ASC;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 cost line on an order (order · cost element · period).
| Element | Type | Definition |
|---|---|---|
| dim_internal_order | dimension | The internal order — type, status, responsible (AUFNR) |
| dim_account | dimension | Cost element / G/L account — the nature of the cost (RACCT) |
| dim_cost_center | dimension | The cost center the order settles to (RCNTR) |
| dim_date | dimension | Conformed calendar — fiscal year & posting period |
| actual_cost | measure | Actual cost posted to the order (HSL) |
| budget | measure | The order budget, from your budgeting |
| available | measure | Budget − actual — what is left to spend |
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 |
|---|---|---|---|
| ACDOCA | Universal Journal — the order actual lines (AUFNR · RACCT · HSL) | 6 PK · amounts | Transparent table |
| AUFK | Internal order master — type, status, responsible, company code | MANDT · AUFNR | Transparent table |
| I_GLAccountLineItem | Released journal-entry line view — order actuals surface here | released | Released CDS view |
| COEP | Classic CO line items — now a compatibility view over ACDOCA (Note 2270404) | compat | Compatibility view |
| SKA1 | G/L account (chart of accounts) — cost element category, GLACCOUNT_TYPE | KTOPL · SAKNR | Transparent table |