ABAP(Advanced Business Application Programming)とは、SAP製品を構成するプログラミング言語のことです。
2025年に向けて、SAPの新規導入やS4/HANAへのリプレイス案件が盛んな今、ABAPスキルを持つ人の単価は右肩上がりで上昇しています。
SAP社のERP製品のこと。企業の業務を統合して一括管理する社内システムです。全世界のERP製品の中で最もポピュラーなERP製品がSAPです。
このページは、初めてABAPを学ぶ人、もう一度ABAPを1から勉強したい人のために、ABAPの知識を1から解説していきます。このページを読み終わるころには、簡単な機能であれば一人で実装できるようになるレベルまで到達できるように解説します。
ABAPerと名乗るためには最低限知っていないと恥ずかしい内容ばかりを網羅的に整理しました。是非最後までご覧ください。(ブックマーク推奨)
3つに厳選しておすすめの参考書をご紹介しています。
ABAPとは?
ABAP(Advanced Business Application Programming)とは、SAPを構成しているプログラミング言語のこと。
読み方は「アバップ」で、ABAPを書くプログラマーを「アバッパー」と呼んだりします。
ABAPはSAP社が開発したプログラミング言語で、SAP製品を拡張したり企業独自の機能を追加したり、SAP標準の機能に新たな機能を追加する場合にはABAPを使って開発を行う必要があります。
Javaなどの有名なプログラミング言語とは異なり、SAP以外の製品で利用されることがないため知名度も圧倒的に低いのが実情ですが、その分ABAPスキルを持っているエンジニアの単価は年々上昇中です。
結論から言うと、SAPエンジニアの年収は人によってかなり差異があって、下は300万円台、上は2000万円台など、個人のスキルに応じて大きく異なります。
今の自分の市場価値がどれぐらいか?今後のSAPエンジニアに未来はある?とお考えの方は以下の記事もご覧になってみてください。
ABAPの特徴
ABAPは、もともとはCOBOLと同じような構造化プログラミング言語でしたが、時代とともに進化しオブジェクト指向を取り入れつつ拡張しています。
参考 プログラミングとは?
基本となる構造化プログラミングの概念だけでなく、オブジェクト指向といった現代のプログラミング言語に共通する基本知識も必要となります。
また、ABAPエンジニアはABAPだけではなくSAP製品そのものへの理解も必須です。1から機能を追加する際も、完全に独立した機能を作ることはめったになく、基本はSAPの機能の一部に依存する形で開発が行われるためです。
したがって、ABAPスキルを使って実際に業務をこなすためには、頭に入れておくべき知識量が他言語と比較して多いのが現実。(何度も言いますが、チャレンジングな分成功すれば高単価が期待できる言語の1つです。)
では、最低限どのような知識を身につける必要があるか?このページでは、ABAPの基本的な必須知識を網羅的に整理しています。
ABAPプログラム開発の前提
ここからは各章ごとに、是非ご覧になっていただきたい解説ページをご紹介いたします。
早速ABAP言語がどのようなものか具体的に1から見ていきましょう。
ABAPプログラムを開発する際に、まずは前提として覚えておきたいSAPの基本操作や、SAPのプログラミング環境を支える仕組みを学んでいきましょう。
- SAPのシステム構成
- ABAPのプログラムの種類(Dynpro/インクルード.etc)
- トランザクションコードとは?
- ABAPプログラム開発時に必要なツール
- ABAPプログラムのデバッグ方法
- RICEF(ライセフ)
- SE11:ABAPディクショナリ
- アドオンテーブル
- データエレメント
- ドメイン
ABAPの基本ルール
この章ではABAPの基本的な書き方について解説します。基本的な書き方を覚えれば、なんとなくABAPをコーディングしていくことのイメージが掴めるようになります。
以下の記事では、ABAPをコーディングしていく上で重要な9つの構文ルールについて解説しています。
↓の記事の内容が、様々なABAP命令を学んでいく上での基礎になります。
ABAPでのデータ定義・構造
ABAPの基本構文を理解した上で、データ定義・構造について学習します。
データ定義の章では、変数/定数の定義方法、内部テーブルや構造といったABAP特有の概念について学んでいきます。データ定義を理解せずにABAPのコーディングをすることは不可能であるため、まずは基本をしっかり押さえる意味で以下の記事を丁寧に確認していきましょう。
- ABAPデータ型の基本
- 【重要!】TYPES命令―データ型の定義
- TYPEオプションとLIKEオプションの使い分け
- 【重要!】DATA命令―変数/構造/内部テーブルの定義
- 変数/構造/内部テーブルとは?
- レンジテーブルの意味と使い方・定義方法
- 定数定義の方法と定数を定義する意味・目的
- テキストシンボル(テキストエレメント)
- フィールドシンボルとは?意味と使い方
計算(算術式/論理式)
この章では、ABAPで用いる基本的な計算方法(算術式)と、論理式について学習します。
どちらも、使用頻度が高く基本的な内容であるため、しっかり理解しておきましょう。
- 算術式(ABAPでの四則演算の方法)
- 論理式(比較演算子について)
プログラムフローの制御
この章では、ABAPのプログラムフロー(処理の流れ)制御について学習します。条件分岐(IF文/CASE文)などの基本知識から、DO/WHILE文まで処理の制御方法を分かりやすく説明します。
- IF文/CASE文(条件分岐)の使い方・書き方
- DO/WHILE(繰り返し)の使い方・書き方
- 繰り返し処理の制御ーEXIT/CONTINUE/CHECK命令
イベント/選択画面
ABAPはイベントドリブン言語に分類されます。
そもそもイベントとは何か?
この章では、イベントの意味から、イベントドリブンの意味、その使い方を1から解説。合わせて選択画面の作り方についても丁寧に解説していきます。
- イベントブロックとは何か?使い方と基本イベントについて
- 選択画面の作り方―SELECTION-SCREEN
- 選択項目の作成方法―①PARAMETERS / ②SELECT-OPTIONS
- 【応用編】PUSHBUTTON(押しボタン)の使い方
- 【応用編】画面の動的制御(LOOP AT SCREEN)
構造化
ABAPにおけるプログラムの構造化について学習します。構造化とは、プログラムのコードを整理されたブロックの組み合わせで構成する方法です。
参考 構造化・モジュール化
ABAPを何となく読んだことがある方や、SAPの現場にいる方であれば、サブルーチンや汎用モジュールといった単語を聞いたことがあるかもしれません。本章では、ABAPにおける構造化手法について解説します。
- サブルーチン(FORM~ENDFORM)の使い方と処理内容
- 汎用モジュール(CALL FUNCTION命令)の使い方の処理内容
- サブルーチンと汎用モジュールの違いについて
- ABAPマクロの使い方
- INCLUDEプログラムとは何か?使い方と実装方法
内部テーブルの操作
ABAPプログラミングで最重要といっても過言ではないのが、内部テーブルの操作方法です。
この章では、ABAPの大きな特徴の一つである内部テーブルの操作方法を解説します。内部テーブルの操作をマスターできると、プログラミングの幅がぐっと広がります。
- 内部テーブルの宣言方法と使い方
- 内部テーブルのテーブルデータ型について
- READ TABLE命令―内部テーブルの読み込み方法
- DESCRIBE TABLE命令―内部テーブルの属性の判別方法
- SORT命令―内部テーブルレコードの並び替え
- APPEND命令―内部テーブルへのレコード追加
- 内部テーブルのLOOP処理
- 値の代入―MOVE命令
- 内部テーブルの初期化―CLEAR命令/REFRESH命令/FREE命令
- 【番外編】TABLES命令の処理内容と使い方
データベース操作
この章では、データベース(DB)操作について学習します。
データベース操作においては、基本的な命令文を学習する前に、ABAPとデータベースの関係性(オープンSQL vs ネイティブSQL)から学習します。
- オープンSQLとネイティブSQLとは?その違いは何か?
- クラスタテーブルとプールテーブル
- ビュー(view)とは何か?
- データ取得―SELECT命令
- 内部結合/外部結合の意味と使い分け方法
- INSERT命令―レコードの挿入
- LUW―データベースの整合性担保の考え方
文字列操作
ABAPにおける文字列操作命令について学習します。
文字列操作は、画面の作成や帳票機能を実装する際の重要知識です。
- WRITE命令
- オフセットの意味と使い方
- CONDENSE命令―文字列のブランク操作
- CONCATENATE命令―文字列の結合操作について
- REPLACE命令―文字列の置換
ファイル操作
非SAPシステムとのインターフェースやログファイルの書き込み処理などで、サーバ上のファイル操作が必要となります。
この章では、ABAPでサーバ上のファイル操作を行う方法を学びます。
その他(Tips)
最後の章では、ABAPプログラミングにおける特殊なテクニックについて学習します。
基礎的な知識を理解いただけた方にとっては、実はこの章が一番重要かも!?
この章の内容を理解できれば、今までに学習した内容との組み合わせで多くの機能のプログラミングが可能になります。
- SAPメモリとは?
- システム項目とは何か?
- AUTHORITY-CHECK命令―権限チェック
- バッチインプット「CALL TRANSACTION命令」の使い方
- MESSAGE命令
- ALV―SAPリストビューアの基本
- オンライン実行とバックグラウンド実行の違い
- バックグラウンド実行のプログラムをデバッグする方法
SAP/ABAPを勉強したいならこちらの参考書がおすすめ
最後に、よりSAP/ABAPを詳しく知るためにお勧めしたい参考書をご紹介します。
ここ最近でSAP・ABAPに関するWebサイトやブログだけでなく、各社から様々なSAP技術書が次々と出版されております。
SAP・ABAPを知る人であれば、会社のデスクに置いておきたい良書3つをセレクトして紹介します。