Live reporting
A report you can page, sort and keep
Tables that page, sort and filter inside SAP rather than over an extract. Save one, come back tomorrow, and it is reading today's data.
- Server-side paging: the table is never a download
- Columns are derived from today's catalogue on every read
- Refine it by conversation, then save it
- Sorting and paging cost zero model calls
Open sales orders by value · live report
Open sales orders by value · live report
A table you can filter, sort, page and keep. The sort is pushed down to SAP rather than applied to a downloaded page, so row 1 is the largest open order in the system and not the largest one that happened to be fetched. Every filter above is part of the compiled query, which is why changing one is a new SAP read rather than a re-sort of what is already on screen.
Order items
Nine of the twenty-one fields on the entity. The rest are a column away.
| Sales order | Item | Sold-to party | Material | Plant | Order qty | Net value | Delivery status | Created on |
|---|---|---|---|---|---|---|---|---|
| 0000512884 | 000010 | Al Rajhi Steel | TG-3302 | 1000 | 6,140 EA | 18,402,776.40 SAR | Not delivered | 2026-07-14 |
| 0000512901 | 000020 | Gulf Petrochem | TG-2207 | 1000 | 11,020 EA | 14,118,950.00 SAR | Partially delivered | 2026-07-22 |
| 0000512773 | 000010 | Najd Contracting | TG-1140 | 1200 | 14,690 EA | 11,940,215.75 SAR | Not delivered | 2026-06-30 |
| 0000512818 | 000030 | Red Sea Logistics | TG-0915 | 1000 | 28,400 EA | 9,776,300.10 SAR | Partially delivered | 2026-07-08 |
| 0000512940 | 000010 | Jeddah Cement | TG-3302 | 1400 | 3,210 EA | 9,612,088.00 SAR | Not delivered | 2026-08-03 |
| 0000512655 | 000020 | Eastern Steel | TG-2207 | 1200 | 7,480 EA | 8,904,120.55 SAR | Partially delivered | 2026-06-11 |
| 1–6 of 3,918 | 71,940 EA | 1,821,446,902.18 SAR | sorted in SAP | page 1 |
Grouped totals
Computed in SAP over all 3,918 rows, not over the six on this page.
| Sales org | Open orders | Open value | Average | Oldest open order |
|---|---|---|---|---|
| 1600 · Riyadh | 1,284 | 648,211,440.02 SAR | 504,837.57 SAR | 2026-02-19 |
| 1800 · Jeddah | 1,061 | 512,090,118.66 SAR | 482,648.56 SAR | 2026-03-04 |
| 1400 · Dammam | 918 | 431,772,905.40 SAR | 470,340.86 SAR | 2026-01-28 |
| 1200 · Export | 655 | 229,372,438.10 SAR | 350,186.93 SAR | 2026-04-16 |
| 4 organisations | 3,918 | 1,821,446,902.18 SAR | 464,892.01 SAR | 2026-01-28 |
What the totals say that page 1 does not
- 1.82bn SAR is open across 3,918 orders. The six rows on this page are 4.6% of it, which is why the totals row is computed in SAP rather than summed from what was fetched.
- 1600 Riyadh holds a third of the open value on a third of the orders, so its exposure is proportionate. 1200 Export is not: 17% of the orders and 13% of the value, at an average 25% below the group.
- The oldest open order was raised on 28 January and sits in 1400 Dammam. Nothing in SAP flags it; it is open, not late, because no delivery date on it has passed.
Source: zsd_sales_order / ZA_SalesOrder · net value = TotalNetAmount at item level · $filter on DeliveryStatus and RejectionReason · $orderby NetValue desc · $top 50 · totals computed by $apply over the full result, not over the page
Assumed: open means not fully delivered. Rejected items are excluded; the filter is stated above so a different definition can be asked for. Quantities are summed across units of measure only where the unit matches; mixed-unit lines are counted, never added.
How it works
01
Paging happens in SAP
A page is a read. The table asks for the rows it is showing and no more, so a report over a large entity set opens as fast as a report over a small one, and there is no extract sitting anywhere to go stale or to reconcile at month end.
02
Sort is part of the query, not the presentation
Under paging, sort order decides which rows land on which page, so it belongs in the query. An unsorted paged read is not reproducible: page two can repeat rows from page one and omit others, with nothing about the table looking wrong.
03
Columns are rebuilt from the catalogue on every read
Labels, types and formats come from your current SAP metadata rather than being frozen into the saved report. A money column is typed as money because the field carries a currency companion, which is what stops two currencies being silently added together.
04
Presentation cannot change the data
Title, column order, hidden columns, widths, formats and computed columns are a display layer. None of them can alter which rows are read; hiding a column does not narrow the query, because a checkbox that changes your numbers is a trap.
The extract problem
Most “reporting” over SAP is reporting over a copy of SAP. Something pulls rows out on a schedule, a tool sits on top of them, and for most of the month the two agree.
They stop agreeing at exactly the moment it matters. Close comes, the numbers differ, and the reconciliation lands on the team that built the extract. Meanwhile the copy has become a second source of truth that people quote in meetings, with its own definitions of things your ERP already defines.
A report in AnrilX has no copy. Each page you look at is a read against your system, which is slower than reading a local cache and correct at every moment rather than most of them.
Why sort is not a display setting
This is the part that looks like a detail and is not. When a table pages, the sort order decides the contents of each page. An unsorted paged read gives no ordering guarantee at all, so page two may repeat rows from page one and skip others entirely, and nothing about the rendered table looks wrong.
So sort lives in the query, and where a report has no explicit order the platform injects one and records that it did.
The same reasoning puts filters in the query and everything else (labels, widths, column order, formats) in a presentation layer that provably cannot affect which rows are read.
From a question to a saved report
You describe the table you want, refine it in conversation, and save it. The model is paid for once, at the point the question is asked. Every subsequent open, page, sort and filter is a database read plus an SAP read, with no model in the loop.
Where it stops
What this capability will not do
Where this one stops, said here rather than discovered in a pilot.
-
Computed columns are a fixed set (days between dates, age buckets, ratios, running totals, percent of total), not a formula language.
-
A percentage of a total is refused unless the whole-set total is known. A percentage of one page is a plausible wrong number.
-
Measures cannot be filtered on. “Suppliers with more than ten orders” is a control we do not offer rather than a request that fails.
Questions people ask us
Is the report reading live SAP or a copy?
Live SAP, on every page. There is no extract layer, which means there is no second source of truth to reconcile against your system at close.
What happens when I reopen a saved report?
Its stored query is re-validated against your current SAP catalogue and re-run. If a field it reads has been renamed, the report reports an error rather than showing you a column of wrong values.
How large can a report be?
Pages are bounded by design, and the total row count is shown alongside them. Where the count cannot be exact (a grouped report, for instance), the report says that rather than implying precision it does not have.
Next
Self-building views
Describe the view. It builds itself.
Say what you want to watch and the dashboard assembles. Each panel stores the question rather than the answer, so it runs again against live SAP every time it is opened.
Conversational SAP
Ask it the way you would ask a person
No query language, no entity names, no transaction codes. A question in plain English comes back as figures, with the SAP field and the period they were computed from printed underneath.
It learns your rules
It reports on your basis, not its own
Give it the documents you have already written (reporting standards, close policy, pricing guidelines), and it works out which figures each one governs.
Bring the question your reports cannot answer
Thirty minutes against a live SAP system we provide: no access to yours, nothing to set up. If it cannot answer, you find that out in half an hour rather than three months into a pilot.