Annual Revenue Planning & Tracking in SAP.
An editable SAP ALV planning application that moves annual turnover targets from spreadsheets into SAP — with automatic revenue and USD calculations, product attribute enrichment, F4-assisted data entry, role-based visibility and audit-level change logging per row.
Not a report. A planning application inside SAP.
The Annual Revenue Planning application was developed to let sales teams manage customer and product-group based annual turnover targets directly inside SAP. Users can add new planning rows, update existing entries, delete obsolete ones and save all changes — with the system performing automatic calculations and enforcing data quality through F4 value helps and dynamic field controls.
Unlike a standard view report, this is a data management application. Planning rows contain customer, material group, year, month, currency, unit price, quantity/metre, exchange rate, USD revenue, sales office, product attributes (print/dye group and type, fabric type, model, packaging, label size) and calculated fields like requirement metres. When unit price or quantity changes, revenue recalculates automatically. When size is selected, unit metre and unit m² are fetched and requirement metres computed.
Every save operation writes to ZSD_046_T_YCIRO (main planning table) and simultaneously logs to ZSD_046_T_CIRO_L (log table) with UUID, user, date and time. A row-level log button shows historical changes in a popup ALV. The Z_YCIRO_OP authorization object separates admin users (full visibility) from standard users (own records only). Dirty-check logic warns before navigating away with unsaved changes.
Editable planning grid inside SAP GUI.
Blue cells — editable input fields. Green cells — automatically calculated (revenue, USD conversion). Illustrative data.
Why it was built.
Annual revenue targets lived in Excel and personal files.
Customer and product-group targets were scattered across Excel files and emails. Currency conversions, revenue calculations and requirement metre figures were done manually. Product attributes were tracked separately. There was no audit trail of who changed which target when. User ownership of planning data was unclear, and central visibility was impossible.
A controlled SAP planning application with calculations and logs.
An editable ALV application in SAP GUI with add, delete and save toolbar actions, automatic revenue and USD calculation, F4-assisted product attribute selection, dynamic field control by product type, role-based data visibility via authorization object and row-level audit logging to a custom log table.
Three layers: planning data, auto-calculations, controls.
PLANNING DATA FIELDS
- Customer & customer name
- Material group
- Year & month
- Currency & exchange rate
- Unit price
- Quantity / metre
- Sales office & sales group
- Description
- Crop, lot, contract, agency
AUTO-CALCULATED FIELDS
- Revenue (unit price × qty/m)
- USD revenue (via parity)
- Requirement metres (qty × unit metre)
- Unit m² (from size selection)
- Date (from year + month)
- Product type (from material group)
- Model description (from model code)
PRODUCT ATTRIBUTES (F4)
- Print/dye group & type
- Fabric type
- Model code & description
- Packaging
- Label size
- Unit metre & unit m²
- Dynamic enable/disable by product type
What the application does.
Editable planning, automatic calculations, product enrichment, role-based visibility and audit logging in one SAP screen.
Editable ALV planning grid
CL_GUI_ALV_GRID-based editable application with custom toolbar actions — add row, delete row and save rows — not just a display list.
Automatic revenue calculation
Unit price × quantity/metre triggers automatic revenue recalculation on cell change. Exchange rate and currency drive the USD revenue conversion.
USD conversion
Currency and parity information converts planning revenue to USD — making targets in EUR, TRY and other currencies comparable in a single view.
F4-assisted data entry
F4 help support for print/dye group, fabric type, model, packaging, size, sales office, sales group, currency and month — no free-text errors.
Dynamic field control
Material group-based product type classification — fabric by the metre vs. konfeksiyon. Irrelevant fields are locked for each product type automatically.
Role-based visibility
Z_YCIRO_OP authorization object separates admin users (full dataset) from standard users (own records only) — ownership built into the data access model.
Requirement metre calculation
Size selection fetches unit metre and unit m² data. Combined with quantity, requirement metres are auto-calculated per planning row.
Audit logging & dirty check
Every save writes to ZSD_046_T_CIRO_L log table with UUID, user, timestamp. Row-level log button shows history in a popup ALV. Dirty-check warns on unsaved exit.
From selection to save.
I transformed annual turnover planning from a spreadsheet-style process into a controlled SAP application with editable planning rows, automatic revenue calculations, product attribute enrichment and audit-level change tracking.
— Project summaryWhat I built.
A full SAP planning application end to end — from custom ALV framework through calculations, F4 events, logging and authorization.
- Editable ALV application — CL_GUI_ALV_GRID extended with custom field catalog, refresh behavior and controlled editing framework.
- Custom toolbar actions — add row, delete row and save rows buttons implemented as dedicated toolbar actions.
- Automatic revenue calculation — unit price × quantity triggers revenue recalculation on DATA_CHANGED event.
- USD conversion — currency and parity fields drive automatic USD revenue calculation per planning row.
- Requirement metre — size selection fetches unit metre/m² data; combined with quantity, requirement metres calculated per row.
- Product attribute enrichment — print/dye, fabric, model, packaging, label size linked to each planning row.
- F4 help integration — F4 value helps bound to 10+ fields for controlled input across product, sales and planning dimensions.
- Dynamic field control — material group drives product type; Metre Malı vs. Konfeksiyon fields locked/unlocked accordingly.
- Authorization object — Z_YCIRO_OP separates admin (all records) from standard users (own records only).
- Custom tables — ZSD_046_T_YCIRO (main planning data) and ZSD_046_T_CIRO_L (log table) with UUID, user and timestamp.
- Row-level log popup — historical change viewer as a popup ALV triggered from a per-row log button.
- Dirty-check logic — system warns users before navigating away with unsaved changes to prevent accidental data loss.
The impact.
Annual revenue targets moved from scattered Excel files into a single controlled SAP planning application. Revenue and USD calculations happen automatically — no manual spreadsheet formulas. Product attributes are linked directly to planning rows. F4 helps and dynamic field control prevent invalid data entry. Every save is logged with user, date and UUID — giving full traceability of who planned what and when. Role-based access ensures data ownership is clear. The dirty-check means no changes are lost accidentally.
See the Osman Akça reporting suite.
This planning application is part of the broader Osman Akça commercial development work — alongside the Sales, Delivery, Invoice, Export Logistics and Price-Restricted Invoice reports.