SAP Business Processes & ABAP Essentials
Follow an end-to-end procure-to-pay process, distinguish master from transactional data, write your first ABAP queries and CDS view concepts, and compare working in SAP GUI versus modern Fiori applications.
4 sections · ~32 min · 5-question quiz (pass ≥ 70%)
1End-to-End Process: Procure-to-Pay
Procure-to-Pay (P2P) is the classic cross-module workflow connecting MM and FI. Understanding it clarifies why master data quality matters.
Typical P2P steps:
- Purchase Requisition (PR) — internal request to buy goods/services (
ME51N). May require approval workflow. - Purchase Order (PO) — formal commitment to a vendor (
ME21N). References material or G/L account, plant, quantity, price. - Goods Receipt (GR) — physical receipt posted (
MIGO). Inventory increases; GR/IR clearing account updated in FI. - Invoice Verification — vendor invoice matched to PO/GR (
MIRO). Three-way match: PO, GR, invoice quantities and prices. - Payment — outgoing payment clears vendor liability (
F-53/ automatic payment runF110).
PR → PO → GR → Invoice → Payment
MM MM MM+FI FI
Order-to-Cash (O2C) is the sales-side mirror: quotation → sales order → delivery → billing → incoming payment (SD + FI).
Integration points: Each logistics step can generate accounting documents (FI). Errors at GR (wrong plant) propagate to incorrect inventory valuation and mismatched invoices. Process training teaches where to look before jumping into ABAP debug.
2Master Data vs Transactional Data
SAP data falls into two buckets with different lifecycles and ownership.
Master data — long-lived entities referenced by many transactions:
| Object | Module | Examples |
|---|---|---|
| Vendor | MM/FI | Payment terms, bank details, reconciliation account |
| Material | MM/SD | Description, base UoM, valuation class |
| Customer | SD/FI | Credit limit, pricing procedures, partner functions |
| G/L Account | FI | Account type, field status group |
| Cost Center | CO | Controlling area, person responsible |
Transactional data — documents created by business events: purchase orders, sales orders, accounting documents, production orders. They reference master data by key (vendor number 100045, material MAT-001).
Golden rules:
- Fix master data once at the source — changing a vendor's reconciliation account affects all future postings.
- Never delete master records with history; use deletion flags or blocks.
- Number ranges and document types control how transactions are numbered and which fields are required.
" Reading vendor master — table LFA1 (general), LFB1 (company code)
SELECT SINGLE name1, land1
FROM lfa1
INTO @DATA(ls_vendor)
WHERE lifnr = @lv_vendor_id.
Data governance teams often own master data; application consultants configure; end users consume it daily.
3ABAP Essentials: Types, SELECT, and CDS Views
ABAP (Advanced Business Application Programming) is SAP's primary server-side language. Even functional consultants benefit from reading basic ABAP to troubleshoot custom reports and understand Fiori service backends.
Data types and variables:
DATA: lv_count TYPE i,
lv_amount TYPE p DECIMALS 2,
lv_name TYPE string.
" Inline declaration (modern ABAP 7.40+)
DATA(lv_today) = sy-datum.
SELECT — reading from the database:
SELECT bukrs, belnr, gjahr, dmbtr
FROM bkpf
INTO TABLE @DATA(lt_docs)
WHERE bukrs = @p_bukrs
AND budat >= @p_from
ORDER BY budat DESCENDING
UP TO 100 ROWS.
Prefer INTO TABLE @DATA(...) with inline declarations. Use @ escaping for host variables. Avoid SELECT * in production — explicit field lists reduce memory and survive schema changes.
CDS views (Core Data Services) — define data models in the ABAP Dictionary with annotations for Fiori and analytics:
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #CHECK
define view entity ZC_PurchaseOrder
as select from ekko
association [1..*] to ekpo as _Items on $projection.ebeln = _Items.ebeln
{
key ebeln,
lifnr,
bedat,
_Items
}
CDS views replace many old SE11 views; they power OData services via @OData.publish: true and support calculated fields, associations, and authorization checks declaratively.
4SAP GUI vs Fiori: When to Use Which
Most S/4HANA customers run dual UX during migration: Fiori for day-to-day tasks, SAP GUI for niche transactions not yet app-enabled.
| Aspect | SAP GUI | Fiori |
|---|---|---|
| Access | SAP Logon / SAP GUI for Java | Browser or mobile app |
| Navigation | Menu tree + T-codes | Launchpad tiles, search |
| Look & feel | Dense, multi-screen | Task-focused, responsive |
| Custom Z-transactions | Full support | Requires OData service + app registration |
| Power-user features | Multiple sessions, batch input | Simpler; some advanced features delegated to GUI |
SAP GUI essentials:
- Command field — type T-codes directly (
/nME21Nstarts fresh PO creation). - Session management — up to 6 sessions (/o) for parallel work.
- SPRO — IMG configuration tree (consultants, not typical end users).
Fiori essentials:
- Apps identified by Semantic Object + Action (e.g.
PurchaseOrder-display). - Personalization — users pin favorites; theming follows corporate branding.
- Intent-based navigation — one app deep-links to related apps (PO → GR).
Employee guidance: Start in Fiori if your role provides a launchpad. Fall back to GUI T-codes documented in your runbook when no Fiori equivalent exists. Basis teams track Fiori app activation in /UI2/FLPD_CUST and gateway OData registrations (/IWFND/MAINT_SERVICE).