![]() |
ABAP(Advanced Business Application Programming, アバップ)とは、R/3やS/4HANAなどのSAPシステム製品の追加開発に用いられる高級言語である。過去の正式名称は「ABAP/4GL」(4GL:4th Generation Language)であり、「ABAP」は「ABAP/4」と同様に略称として使われていた。
SAP SEの製品でのみ用いられるSAP独自のプログラミング言語。もともとは構造化プログラミング言語であったが、後にオブジェクト指向言語として拡張された。
SAPアプリケーション群はABAPを開発言語とし、BASIS(SAP NetWeaver)をアプリケーションサーバに利用することで特定のオペレーティングシステムやデータベース管理システムなどのプラットフォームに依存することなく、開発、運用することができる。また、ABAPをSAPアプリケーション開発に採用することで、Javaや.NET C#などの他のITベンダーが提供するプログラミング言語を利用する場合に比べて言語仕様の変更やランタイムのアップデートの影響を受けることなく、自社でリリースやアップグレードサイクルをコントロールできるメリットがある。
文の終了記号は、"."(ピリオッド)である。IF文の等値判断は"="である。
SAP R/3では「テーブル」といわれるデータベースシステムを用いている。テーブルの種類は「標準テーブル」「アドオンテーブル」の2種類が存在する。標準テーブルはSAP R/3およびS/4HANAに標準実装されているテーブルであり、アドオンテーブルは顧客の独自要件実現などのために、エンジニアやコンサルタントが後から追加(アドオン)して作成するテーブルである。
ABAPでは、テーブルからのデータ取得、テーブルへのデータ(レコード)挿入、テーブルからのデータ削除を行う場合、SQLに類似した「ABAP SQL(旧:OPEN SQL)」および、特定データベースに依存したDB言語である「ネイティブSQL」の使用が可能である。
S/4HANAが主流になり、SAP HANAがプラットフォームとなったことにより、使用可能データベースシステムの限定およびデータベースからの応答時間が短縮した。それに加えABAP SQLが大きく機能拡張していることから、特定データベースに依存した方法でのデータ取得・操作をする事例は減少しているものと思われる。
ABAPでは、それぞれの処理に対して、イベントが用意されている。イベントを用いて、ABAP言語を用いて処理を行う。
なお、レポートプログラムを作成する場合には以下のイベントが存在する。
以下の方法で変数を宣言することができる。
DATA : 変数名 TYPE 型名 [LENGTH 長さ].
以下の方法で定数を宣言することができる。
CONSTANTS : 定数名 TYPE 型名 VALUE {値|IS INITIAL}.
ABAPプログラム内部で、テーブルと同様の2次元配列のデータ構造を持たせたもの。主に、テーブルやローカルファイル・サーバファイル等の外部データを取得した際の格納先として使用される。定義およびデータの格納・利用・変更・削除はABAPプログラムからのみ実行使用可能である。
プライマリテーブルインデックスで内部的に管理され、プライマリテーブルキー(プライマリキー)を一意では持たない内部テーブル。
プライマリテーブルインデックスで内部的に管理され、常にプライマリキーに従ってソートされる内部テーブル。
行がハッシュアルゴリズムに従って内部に格納され、一意のハッシュキー(ハッシュテーブルにおけるプライマリキー)を使用してアクセスできる内部テーブル。
テーブル名 | アクセス方法 | プライマリキーでの アクセス時応答時間 | その他 |
---|---|---|---|
標準テーブル (Standard Table) | ・プライマリテーブルインデックス ・テーブルキー(プライマリ・セカンダリ) | テーブル内エントリ数に比例 (線形検索) | ・プライマリキーが非一意(Non-Unique)のみ |
ソートテーブル (Sorted table) | ・プライマリテーブルインデックス ・テーブルキー(プライマリ・セカンダリ) | テーブル内エントリ数に 対数的に比例 | ・プライマリキーは一意、非一意ともに使用可 ・常にプライマリキーでエントリがソートされる |
ハッシュテーブル (Hashed table) | ・テーブルキー(プライマリ・セカンダリ) ・セカンダリテーブルインデックス | 常に一定 (テーブル内エントリ数に 影響されない) | ・プライマリテーブルインデックスが存在しない ・プライマリテーブルキーは一意のみ ・セカンダリテーブルキーを使用して セカンダリテーブルインデックスを割り当て可能 |
SAPでは、EASY ACCESSやIMG以外に、各処理画面へ移動する方法として、トランザクションコードが存在している。アドオン開発に用いられるトランザクションコードの一部として、以下のものが存在している。
![]() | この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。 |