Back to projects

SAP Cleanup Cockpit

A dashboard for reviewing 3,596 open SAP scheduling agreement items without managing the work in one spreadsheet.

Screenshot of the SAP Cleanup Cockpit dashboard showing KPI tiles, cleanup decision and review status charts, filters, a grouped detail panel, and the scheduling agreement worklist.
Cleanup KPIs, filters, and the scheduling agreement worklist, all loaded from an SAP-like extract into a local demo database.

Demo

See it in action

A walkthrough of the KPIs, the 3,596-item worklist, and the columns used to suggest, confirm, and track cleanup decisions.

Why I built it

I have done SAP cleanup work through queries, Excel extracts, and a sprawl of formulas. The spreadsheet had to normalize the data, suggest what to do, track ownership, and record what had already been resolved. It worked, but it was slow and fragile, and most of the context lived with the person maintaining the file.

I could not find an off-the-shelf product for this part of SAP migration work. I built a prototype around an SAP-like extract with 3,596 open scheduling agreement items.

This version uses SD scheduling agreements. The same review process could also work for deliveries, sales orders, and other SAP documents.

What I built

I built and tested the MVP myself. It is intended for SAP migration and cleanup teams that would otherwise coordinate this work in a shared spreadsheet.

The source is the CW37 Open SA sheet: about 3,596 rows keyed by scheduling agreement number and item. The app adds KPIs, filters, pagination, and a grouped view of every item under the same agreement.

Each row has a rule-based suggestion and an explanation. A reviewer can change the decision, assign an owner, leave a comment, see the audit history, and export the results to CSV or Excel.

What the prototype showed

The dashboard was straightforward. The difficult part was handling free-text notes, inconsistent ownership, and the difference between “this is still needed” and “someone resolved this but never updated the file.”

The suggested action works better as a visible rule than as a black-box recommendation. Reviewers need to understand it and override it when the source data is wrong or incomplete.

The prototype clearly labels the data as an SAP-like extract. It does not have a live SAP connection yet.

What I’d change

The next step is to pull documents through an OData feed instead of a static Excel extract. After that, I would add deliveries, sales orders, and other document types.

I would also add real owner assignment, notifications, and a shared review state. In the manual process, missed updates caused as much trouble as the data itself.

How I built it

I cleaned the Excel workbook, loaded it into SQLite, and built the review interface on top. The prototype has no live SAP connection.

I used Next.js and React with TypeScript, Tailwind for styling, Recharts for the charts, and ExcelJS and read-excel-file for workbook imports and exports.

Tech stack

  • Next.js and React
  • TypeScript
  • Tailwind CSS
  • SQLite
  • ExcelJS and read-excel-file
  • Recharts
  • Seeded from a cleaned, SAP-like Excel extract (CW37 Open SA)