**ABAP** (Advanced Business Application Programming, alun perin *Allgemeiner Berichts-Aufbereitungs-Prozessor, saksaksi "yleinen raportin valmisteluprosessi"*) on korkean tason ohjelmointikieli, jonka on luonut saksalainen ohjelmistoyritys SAP SE. Se on tällä hetkellä sijoitettu Javan rinnalle SAP NetWeaver Application Server:n ohjelmointikieleksi, joka on osa SAP NetWeaver -alustaa yrityssovellusten rakentamista varten.

ABAP/4| Paradigma | Olio, strukturoitu, imperatiivinen |
| --- | --- |
| Luonut | SAP SE |
| Julkaistu | 1983 |
| Julkaisuelinkaari | 7.57 / 12. lokakuu 2022 |
| Tyyppijärjestelmä | Staattinen, vahva, turvallinen,
nominaalinen |
| Käyttöjärjestelmä | Alustariippumattomuus |
| Verkkosivut |  |
| Merkittävät sovellukset | SAP R/2, SAP R/3, SAP S/4HANA |
| Vaikutteet | Objective-C, COBOL, SQL |

Esittely
--------

ABAP on yksi monista sovelluskohtaisista neljännen sukupolven kielistä (4GL:t), jotka kehitettiin ensimmäisen kerran 1980-luvulla. Se oli alun perin raporttikieli alustalle SAP R/2. SAP R/2:n avulla suuret yritykset pystyivät rakentamaan suurtietokone liiketoimintasovelluksia materiaalinhallintaan sekä talous- ja hallintolaskentaan.

Tämän jälkeen ohjelmistokehittäjät käyttivät ABAP-kieltä SAP R/3 -alustan kehittämiseen. Se oli tarkoitettu myös SAP-asiakkaiden käytettäväksi parantamaan SAP-sovelluksia – asiakkaat voivat kehittää mukautettuja raportteja ja käyttöliittymiä ABAP-ohjelmointia käyttäen. Ohjelmointikieli oli suunnattu teknisemmille asiakkaille, joilla oli ohjelmointikokemusta.

ABAP jäi käyttöön ohjelmointikieleksi, kun SAP julkaisi uuden asiakaspalvelinen SAP R/3 järjestelmän vuonna 1992. Kun tietokonelaitteistot kehittyivät 1990-luvulla, yhä useammat SAP:n sovellukset ja järjestelmät kirjoitettiin ABAP:lla. Vuoteen 2001 mennessä kaikki perustoiminnot kirjoitettiin ABAP:lla. Vuonna 1999 SAP julkaisi ABAP:lle oliopohjaisen laajennuksen nimeltä ABAP Objects sekä R/3-julkaisun version 4.6. SAP:n nykyinen kehitysalusta NetWeaver tukee sekä ABAP:a että Javaa.

ABAP:ssa on erottelu liiketoimintasovellusten, käyttöjärjestelmän ja tietokannan välillä. Tämä varmistaa, että sovellukset eivät ole suoraan riippuvaisia ​​tietystä palvelimesta tai tietokanta-alustasta ja ne voidaan helposti siirtää alustasta toiseen.

ABAP Objects
------------

ABAP tukee olio-ohjelmointia "ABAP-Objects" ominaisuuden kautta. Tämä auttaa yksinkertaistamaan sovelluksia ja tekemään niistä paremmin hallittavia.

ABAP Objects on täysin yhteensopiva olemassa olevan ohjelmointikielen kanssa, joten olemassa olevia käskyjä ja modulointiyksiköitä voidaan käyttää ohjelmissa, jotka käyttävät ABAP Objects -toimintoa. ABAP-objekteja voidaan käyttää myös olemassa olevissa ABAP-ohjelmissa. Syntaksin tarkistus on vahvempi ABAP Objects -ohjelmissa, ja jotkin tiettyjen lauseiden syntaktiset muodot (yleensä vanhemmat) eivät ole sallittuja.

Oliot muodostavat kapselin, joka yhdistää merkin sitä vastaavaan merkitykseen. Olioiden tulisi antaa ohjelmoijille mahdollisuus kartoittaa todellinen ongelma ja sen ehdottama ohjelmistoratkaisu yksitellen. Tyypillisiä kohteita liiketoimintaympäristössä ovat esimerkiksi "Asiakas", "Tilaus" tai "Lasku". Julkaisusta 3.1 eteenpäin Business Object Repository (BOR) on sisältänyt esimerkkejä tällaisista olioista. BOR-oliomalli integroidaan ABAP Objects:iin seuraavassa julkaisussa siirtämällä BOR-oliotyypit ABAP-luokkakirjastoon. Tämä dokumentaatio esittelee joukon termejä, joita käytetään yleisesti olio suuntautuneessa ohjelmoinnissa ja joita esiintyy myös ABAP Objects:ssa. Seuraavassa osassa käsitellään tarkemmin, kuinka näitä termejä käytetään ABAP Objects:ssa.

* *Oliot* ovat luokkien esiintymiä. Ne sisältävät tietoja ja tarjoavat palveluita. Tiedot muodostavat kohteen attribuutit. Palvelut tunnetaan metodeina (tunnetaan myös nimellä operaatiot tai funktiot). Tyypillisesti metodit toimivat yksityisillä tiedoilla (olioiden attribuutit tai tilat), jotka näkyvät vain olion metodeina. Sen takia käyttäjät ei voi muuttaa olioiden attribuutteja suoraan, vaan ainoastaan ​​olioiden metodien kautta.
* *Luokat* kuvaavat olioita. Teknisestä näkökulmasta oliot ovat luokan ajonaikaisia ​​esiintymiä. Teoriassa voidaan luoda mikä tahansa määrä yhteen luokkaan perustuvia olioita. Jokaisella luokan esiintymällä (oliolla) on uniikki identiteetti ja omat arvot sen attribuuteille.