ABAP & SAP Startpagina
Startpagina

ABAP & SAP

Alles om ABAP-code te lezen, begrijpen en schrijven: van datatypes en interne tabellen tot BAPI's, objectoriëntatie, ALV, enhancements en S/4HANA. Kies hieronder een onderwerp of gebruik de zoekbalk in het menu.

Op deze pagina

01Wat is wat: SAP, ABAP & S/4HANA

De drie termen die overal terugkomen, en hoe ze zich tot elkaar verhouden.

SAP is een ERP-systeem (Enterprise Resource Planning): één softwarepakket waarin bedrijfsprocessen samenkomen — inkoop, verkoop, voorraad, financiën, productie, onderhoud, HR. Alles hangt samen in één centrale database, zodat een wijziging op de ene plek direct consequenties heeft op andere plekken: een goederenontvangst in het magazijn verhoogt de voorraad (logistiek) én boekt een bedrag op een grootboekrekening (financieel), in dezelfde transactie.

ABAP (Advanced Business Application Programming) is de programmeertaal waarin SAP zelf grotendeels is gebouwd, en waarin klanten hun eigen aanpassingen ("custom code") schrijven. De taal is sterk getypeerd, draait uitsluitend binnen de SAP-applicatieserver, en heeft een eigen syntaxis die op ouder Engels-achtig COBOL lijkt maar sinds versie 7.40 ook veel moderne, expressie-gebaseerde constructies kent — zie moderne syntax.

S/4HANA is de nieuwste generatie van SAP's ERP, de opvolger van het oudere ECC (ERP Central Component, ook wel R/3-lijn genoemd). Het draait verplicht op SAP's eigen in-memory database HANA, wat grote gevolgen heeft voor hoe je performante code schrijft — zie code pushdown.

ECC (klassiek)

  • Database-onafhankelijk (Oracle, DB2, MS SQL…), veelal schijf-gebaseerd
  • BAPI's/RFC's als integratiestandaard
  • SAP GUI (dynpro-schermen) als interface
  • Aparte totalen- en indextabellen (BSIS, BSAS, GLT0…)
  • Materiaalnummer max. 18 tekens

S/4HANA (nieuw)

  • Verplicht op HANA (in-memory, kolomgeoriënteerd)
  • OData-services & CDS-views als integratie- en modelleerstandaard
  • SAP Fiori (webgebaseerd, tegels) als interface — SAP GUI blijft bestaan
  • Universele journaaltabel ACDOCA vervangt vele FI/CO-tabellen
  • Materiaalnummer tot 40 tekens
Migratie — bestaande BAPI's en het overgrote deel van de ABAP-taal blijven in S/4HANA gewoon werken. Bij een migratietraject wordt custom code gecontroleerd via een Custom Code Check / SAP Readiness Check, die o.a. kijkt naar directe SELECT's op vervallen tabellen, velden die van lengte veranderd zijn (materiaalnummer!) en verwijderde transacties. Zie ook ATC.

Deployment-varianten

VariantWat het is
S/4HANA on-premiseKlassiek: het systeem draait in het eigen datacenter (of eigen cloud-tenant). Volledige vrijheid voor custom code en modificaties.
S/4HANA Private Cloud (RISE)Functioneel gelijk aan on-premise, maar gehost en beheerd door SAP. Custom code grotendeels zoals vanouds.
S/4HANA Public CloudSaaS-model met vaste release-cadans. Uitbreiden mag alleen via vrijgegeven API's en ABAP Cloud-regels ("clean core").
BTP / ABAP Environment"Steampunk": een losstaande ABAP-omgeving op het SAP Business Technology Platform, alleen voor ABAP-Cloud-ontwikkeling, losgekoppeld van het ERP.

Waar draait ABAP eigenlijk?

ABAP-code draait op de applicatieserver (de "AS ABAP"), tussen de gebruiker en de database in. Broncode wordt bij activering gecompileerd tot een tussenvorm ("load") die de ABAP-runtime uitvoert. Elke gebruikersessie krijgt een werkproces toegewezen; het systeem verdeelt werk over dialoog-, achtergrond- (batchjobs), update- en enqueue-werkprocessen. Dit verklaart een aantal typische ABAP-eigenaardigheden, zoals de SAP LUW en het aparte lock-mechanisme.

02Hoe je dit naslagwerk gebruikt

De site is opgedeeld in thematische pagina's, van fundament naar verdieping.

Codevoorbeelden — alle voorbeelden gebruiken de gangbare prefix-conventies (lv_, ls_, lt_…) zodat je went aan hoe echte code eruitziet. Grijze tekst achter een " is commentaar.

03Alle onderwerpen

De volledige site in één oogopslag.

Fundament

Data & tekst

Modularisatie & OO

SAP-platform

Modules & naslag

04Een beetje historie & versies

Handig om oude code en documentatie te kunnen plaatsen.

MijlpaalBetekenis voor de taal
R/2 (jaren '80)Mainframe-tijdperk; ABAP ontstaat als rapportagetaal ("Allgemeiner Berichtsaufbereitungsprozessor").
R/3 (1992)Client-server; ABAP/4 wordt de volwaardige applicatietaal; dynpro's, reports en functiemodules zoals we ze kennen.
ABAP Objects (~4.6/6.10)Objectoriëntatie: classes, interfaces, en later class-based exceptions.
NetWeaver 7.0xECC 6.0-tijdperk; Web Dynpro; brede adoptie van OO in nieuwe code.
7.40 / 7.50 (2013+)Grote taalvernieuwing: inline-declaraties en constructor expressions, moderne SQL-syntax, CDS, AMDP.
S/4HANA / ≥7.5x, 2020+RAP, ABAP Cloud, jaarlijkse taalreleases in de cloud.

In vacatures en documentatie kom je daarom drie "dialecten" tegen: klassiek procedureel ABAP (reports, FORM's, functiemodules), OO-ABAP en modern/cloud-ABAP (CDS, RAP). In de praktijk leef je in alle drie tegelijk: bestaande systemen bevatten decennia aan code.