ABAP
ABAP(Advanced Business Application Programming, アバップ)とは、R/3やS/4HANAなどSAPシステムの製作やアドオン開発に用いられる高級言語である。
言語の特徴
SAP SEの製品でのみ用いられるSAP独自のプログラミング言語。もともとは構造化プログラミング言語であったが、後にオブジェクト指向言語として拡張された。
SAPアプリケーション群はABAPを開発言語とし、BASIS(SAP NetWeaver)をアプリケーションサーバに利用することで特定のオペレーティングシステムやデータベース管理システムなどのプラットフォームに依存することなく、開発、運用することができる。また、ABAPをSAPアプリケーション開発に採用することで、Javaや.NET C#などの他のITベンダーが提供するプログラミング言語を利用する場合に比べて言語仕様の変更やランタイムのアップデートの影響を受けることなく、自社でリリースやアップグレードサイクルをコントロールできるメリットがある。
文法
文の終了記号は、"."(ピリオッド)である。 IF文の等値判断は"="である。
テーブル
SAP R/3では「テーブル」といわれるデータベースシステムを用いている。テーブルの種類は「標準テーブル」「アドオンテーブル」「内部テーブル」の3種類が存在する。標準テーブルはSAP R/3にはじめから実装されているテーブルであり、アドオンテーブルはエンジニアやコンサルタントが後から追加して作成するテーブル、内部テーブルは特定のプログラム内でのみデータを保存するテーブルである。
ABAPでは、これらのテーブルからデータを取得したり、テーブルにデータ(レコード)を挿入したり、テーブルからデータを削除する際、SQLを用いることが可能である。
プログラム上でデータを入れるハコとしての役割を持つものとしては、内部テーブル以外に「作業領域」と「変数」が存在している。
データの宣言
以下の方法で変数を宣言することができる。
DATA : 変数名 TYPE 型名 [LENGTH 長さ].
定数の宣言
以下の方法で定数を宣言することができる。
CONSTANTS : 定数名 TYPE 型名 VALUE {値|IS INITIAL}.
イベント
ABAPでは、それぞれの処理に対して、イベントが用意されている。イベントを用いて、ABAP言語を用いて処理を行う。
なお、レポートプログラムを作成する場合には以下のイベントが存在する。
- INITIALIZATION …… 初期設定を行うイベントを記述する。
- AT SELECTION-SCREEN …… 画面などで入力された結果に対してイベントを記述する。
- START-OF-SELECTION …… 主処理を記述する。
- END-OF-SELECTION …… 処理結果として処理するイベントを記述する。
内部テーブル
標準テーブル、ソートテーブル、ハッシュテーブルの3種類がある。
トランザクションコード
SAPでは、EASY ACCESSやIMG以外に、各処理画面へ移動する方法として、トランザクションコードが存在している。アドオン開発に用いられるトランザクションコードには、以下のものが存在している。
- SE09 移送オーガナイザ
- SE11 テーブルやデータエレメントなどの追加・照会
- SE24 クラスの作成・照会
- SE37 汎用モジュールの作成・照会
- SE38 プログラムの作成
- SE80 オブジェクトナビゲータ
- SE81 アプリケーション階層
- SE84 リポジトリ情報システム
- SE91 メッセージ
- SE93 トランザクションコードの作成・照会