ABAP (Advanced Business Application Programming) è il linguaggio di programmazione principale supportato sulla piattaforma SAP NetWeaver ABAP Application server e le applicazioni che girano su di esso, come SAP ERP (precedentemente R/3), S/4HANA e CRM.

SAP utilizza ABAP per implementare le proprie applicazioni sulla piattaforma NetWeaver ABAP e i clienti SAP utilizzano ABAP per modificare le funzionalità delle applicazioni SAP o crearne di proprie sulla piattaforma NetWeaver ABAP. ABAP è la più antica e, probabilmente, la più utilizzata delle quattro principali piattaforme applicative di SAP, che include anche SAP NetWeaver Java, SAP HANA e SAP Cloud Platform.

L’evoluzione di ABAP

SAP ABAP è iniziata nel 1980 come linguaggio di generazione di report nei prodotti SAP. Ha assunto un ruolo centrale in SAP R/3 come linguaggio di implementazione ed estensione principale del sistema Enterprise Resource Planning (ERP). Nel corso degli anni, ha acquisito nuove funzionalità, in particolare l’introduzione di costrutti orientati agli oggetti, denominati Oggetti ABAP, nel 1999 e l’introduzione di nuovi metodi di accesso al database e una grande quantità di nuova sintassi a partire dal 2010.

Le funzionalità ABAP sono strettamente associate alla versione SAP R/3 o NetWeaver utilizzata. L’unico modo per accedere a nuove funzionalità del linguaggio è l’aggiornamento a una versione più recente del server delle applicazioni ABAP. In molti casi, i programmi scritti utilizzando le funzionalità di una versione più recente di Application Server non verranno eseguiti su sistemi SAP meno recenti.

ABAP development tools

Di gran lunga il più grande sviluppatore di codice ABAP è SAP stesso. Tuttavia, molte migliaia di sviluppatori ABAP lavorano con clienti SAP e società di consulenza per mantenere e modificare i sistemi SAP. ABAP è regolarmente nella top 30 dell’indice Tiobe, che traccia approssimativamente la popolarità dei linguaggi di programmazione.

Gli sviluppatori che lavorano in ABAP di solito lo fanno negli strumenti di sviluppo ABAP (un insieme di plug-in per la piattaforma di sviluppo Java open source Eclipse) o nella transazione ABAP Workbench nell’interfaccia utente grafica SAP (GUI). Entrambi gli ambienti offrono una serie di strumenti per assistere lo sviluppo, dal completamento del codice agli strumenti di test automatici.

Classe ABAP in Eclipse
Una classe ABAP vuota negli strumenti di sviluppo ABAP come visto in Eclipse.

SAP Solution Manager offre anche strumenti per la gestione del ciclo di vita di sviluppo del codice ABAP. C’è poco supporto per gli strumenti di sviluppo al di là di ciò che SAP fornisce, anche se alcuni clienti hanno costruito le proprie integrazioni con integrazione continua di terze parti, controllo di versione e strumenti di tracciamento dei bug.

Caratteristiche speciali e l’infrastruttura ABAP più grande

ABAP non è indipendente ed è altamente integrato con altre funzionalità di SAP NetWeaver ABAP Application server. Tra questi ci sono i seguenti:

  • Connessioni logiche al database, che consentono di astrarre il codice da un database specifico. Le connessioni di database effettive sono configurate al di fuori del codice ABAP, consentendo di utilizzare lo stesso codice in diversi ambienti di database.
  • Open SQL, un’astrazione della sintassi SQL che fa parte del linguaggio ABAP e che l’ambiente di runtime ABAP converte in SQL nativo appropriato per il database utilizzato. Open SQL ha molte somiglianze con il concetto LINQ (Language Integrated Query) di Microsoft. NET.
  • Tabelle interne, che contengono raccolte di oggetti a cui si accede utilizzando parole chiave in linguaggio speciale o Open SQL. Questo concetto ABAP contrasta con il concetto di array tipizzati come in Java o C++.
  • Sicurezza, in cui ABAP è integrato con l’infrastruttura di sicurezza di SAP NetWeaver.
  • Data Dictionary, un dizionario universale delle definizioni della struttura dei dati, spesso inclusa la logica di business, disponibile per tutti i programmi ABAP in un sistema.
  • Change and Transport System (CTS), che tiene traccia delle modifiche agli oggetti di sviluppo e gestisce la promozione degli oggetti di sviluppo negli ambienti di garanzia della qualità e di produzione.
  • Sistema di sviluppo condiviso, che è un aspetto importante di ABAP. ABAP differisce dalla maggior parte dei linguaggi più recenti in quanto lo sviluppo di solito avviene su un sistema condiviso, con tutti gli sviluppatori che lavorano sullo stesso set di oggetti di sviluppo allo stesso tempo.

ABAP e HANA

ABAP continua ad essere una parte importante dello stack tecnologico di SAP.

Sebbene abbia svolto un ruolo ridotto in molti prodotti con l’avvento della piattaforma HANA, è ancora centrale per i prodotti SAP più diffusi, svolge un ruolo importante nella piattaforma ERP S/4HANA di nuova generazione di SAP ed è stato annunciato come runtime per la piattaforma SAP Cloud.