セクション 1 / 11

ABAPとは

ABAPが何のための言語か、SAP標準との関係、追加開発の位置づけ、そしてABAPの世代的な変遷を整理します。

目次を開く

ABAP(Advanced Business Application Programming)は、SAPが自社の業務アプリケーションを開発するために作った言語です。1980年代に登場し、以来SAPシステムの実装言語であり続けています。

重要なのは、SAP標準の機能もすべてABAPで書かれているという点です。ユーザーはSE38やSE80から標準プログラムのソースコードを読むことができます。「この処理は内部で何をしているのか」を確認できることは、トラブルシューティングにおいて大きな武器になります。

ABAPが業務向けである意味

一般的なプログラミング言語では外部ライブラリに頼る機能が、ABAPには言語とランタイムに組み込まれています。

組み込まれている業務向け機能
機能内容
Open SQLDBの種類を意識せずにデータベースへアクセスできる
内部テーブルメモリ上の表形式データ構造が言語の基本型
画面(Dynpro)入力画面の定義と制御が標準機能
権限チェックAUTHORITY-CHECK文で権限を検証できる
多言語対応テキスト要素が言語別に管理される
移送開発物が自動的にトランスポートに記録される
ロックロックオブジェクトによる排他制御

追加開発の位置づけ

SAP導入では、標準機能で要件を満たせない部分を追加開発で補います。この追加開発は、性質によって分類されます。

追加開発の分類(RICEFW)
略号内容
R(Report)帳票・レポート独自の集計表、法定帳票
I(Interface)外部システム連携銀行データ取込、EDI
C(Conversion)データ移行旧システムからのマスタ移行
E(Enhancement)標準機能の拡張入力チェックの追加
F(Form)帳票フォーム請求書、発注書のレイアウト
W(Workflow)承認フロー購買承認、経費精算

標準を変更しない拡張の考え方

標準プログラムを直接書き換えること(モディフィケーション)は、原則として避けるべきです。SAPが提供するパッチや新バージョンを適用するたびに、変更が上書きされたり衝突したりするためです。

そのため、SAPは標準を変更せずに機能を追加するための仕組みを用意しています。

拡張技術の変遷
技術世代特徴
ユーザーイグジット古いSAPが用意した空のサブルーチンに実装
カスタマーイグジット古いCMODで有効化。機能グループ単位
BAdI(クラシック)中間オブジェクト指向。複数実装が可能
エンハンスメントフレームワーク新しいソースコードの任意箇所にフックを挿入
新BAdI新しいエンハンスメントスポットに統合

ABAPの世代的変化

ABAPは長い歴史を持つ言語ですが、近年大きく進化しています。

  • 手続き型ABAP:レポートとサブルーチン中心の古典的なスタイル
  • ABAPオブジェクト(1999年〜):クラスとインタフェースによるオブジェクト指向
  • ABAP 7.4以降:インライン宣言、コンストラクタ式、テーブル式など簡潔な記法
  • ABAP Cloud(S/4HANA Cloud):公開APIのみを使う制限された開発モデル

プログラムの種類

種類起動方法用途
実行可能プログラムSE38、Tコードレポート、バッチ処理
モジュールプールTコードのみ対話型の画面プログラム
関数グループ呼び出し再利用可能な機能の集合
クラスプール呼び出しグローバルクラス
インクルード取り込みソースコードの分割
インタフェースプール実装グローバルインタフェース

📖 わからない用語は SAP用語辞典 で調べられます。

理解度チェック

このセクションの内容を確認しましょう。

確認問題 1

ABAPはSAP社が開発した独自のプログラミング言語であり、SAP ERPの大部分はABAPで構築されている。

確認問題 2

ABAPの正式名称は何か。

確認問題 3

ABAPのソースコードはファイルシステム上のファイルとして保存される。

確認問題 4

ABAPの構文が似ているとされるプログラミング言語はどれか。

確認問題 5

画面を持たず、選択画面からデータを取得して一覧表示するABAPプログラムタイプはどれか。

確認問題 6

ABAPプログラムはクライアントPC上で直接実行される。