【SAP ABAP】ABAPで何ができる?アドオン設計者が知っておくべき開発知識を徹底解説!

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退し、SAPの後進育成と啓蒙活動に従事中!

この記事を読むメリット

  • SAPのアドオン設計者が知っておくべき、最低限のABAPを用いた開発知識を習得することができます。
レイナ

アドオン設計を担当することになったんだけど、そもそもABAPで何ができるのかあまり知らないわ…。

ABAPにはさまざまな機能がありますが、ABAPでのアドオン開発知識が乏しいとアドオン設計するにも実現可能性が分からないまま設計を行ってしまい精度の低い設計になってしまいがちです。

ここではアドオン設計者が知っておくべき最低限のABAP知識をABAPプログラムを用いずに解説します!

SAPフリーランスバンク SAPフリーランスバンク

新着のSAPフリーランス案件

【CO】

【FI】

製造業様SAP S/4 HANA導入検討支援(コンサルリード)

要スキル:
・会計領域におけるプロジェクト管理の実施 ・10名以上のメンバー管理の経験をお持ちであること ・エンドユーザとの調整を含めたマネジメントスキル ・SAP導入プロジェクトの経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP新規導入における、プロジェクト管理支援 ・会計・生産領域(FI/CO/PS/PP/QM)におけるプロジェクト管理支援 ・ファシリテート ・領域タスク推進/進捗管理 ・個別課題整理・解決

【CO】

【FI】

【MM】

【PP】

【SD】

【その他】

建設コンサルタント企業向けSAP保守支援(チームリード)

要スキル:
・SAP関連のプロジェクトで複数モジュールでの経験があること 【尚可】 ・ロジから会計に連動するところの知見
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
複数モジュールにまたがった保守チームの管理を行っていただきます。 問い合わせや障害等のタスク管理や優先順位付けなどを顧客とやり取りしながら差配していくのが中心となります。

【CO】

【FI】

【MM】

【SD】

製造業会社向けSAP保守支援(会計もしくはロジ)

要スキル:
・会計もしくはロジ領域でのSAPプロジェクトの業務経験 ・ABAPでの開発経験
月額単価:
~950,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
問い合わせ対応や調査等の保守作業(会計/ロジ)

【MM】

【SD】

複数社に対するSAP運用保守とS/4へのVerUp対応支援

要スキル:
SAPロジ領域での保守や導入のプロジェクト経験
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
20社前後に対するSAPの保守業務を担当頂きます。 (不具合調査、障害対応、機能追加・改修、法改正対応など) またS/4へのバージョンアップを控えているため、そちらも対応頂きます。

【CO】

【FI】

【MM】

【PP】

【SD】

光学機器製造会社向けSAP導入プロト支援

要スキル:
・SAPの構想策定フェーズからプロジェクトに参画したことがある経験 ・プロト機の設定などをおこなってきた経験
月額単価:
~1,800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
・業務フローの整理と作成 ・プロト機の準備

【FI】

製造業会社向けS/4導入検討支援(会計リード)

要スキル:
・SAP導入プロジェクトの経験 ・会計領域におけるリード経験(10名以上目安) ・顧客折衝の経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
海外テンプレート構築検討を進めており、会計チームでのリードを担当頂きます。 ・顧客に対する進捗報告 ・顧客からの相談窓口 ・チーム全体の、品質、進捗、コストの管理 ・領域横断課題の検討(チケット起票単位の整理等)

【SD】

SAP導入コンサル支援(SD)

要スキル:
・SAPプロジェクトにて要件定義経験5年以上 ・要件定義からカスタマイズの設定 ・SAP(SDモジュール)経験5年以上 ・コミュニケーション能力 【尚可】 ・リモート環境での作業経験
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
SAP導入コンサルポジションとして要件定義より参画予定となります。 ・要件定義の確認と課題対応 ・残課題の背景・内容を定義 ・SAPソリューションの検討・討議

【FI】

製造業向けS/4新規導入支援(FI-AP/AR)

要スキル:
SAP導入プロジェクトにおいてFI(AP/AR)コンサルタントとしての業務経験
月額単価:
~2,000,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4新規導入PJのFIメ(AP/AR)メンバーとして参画頂きAP/AR領域について以下を担当頂きます。  -業務フロー作成  -プロトシナリオ作成  -プロト用パラメータ設定、プロト実施  -課題対応(SAP標準を使ったソリューション検討)  -議事録作成など

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義
この記事のポイント

アドオンプログラムで達成可能なこと

アドオンプログラムの目的は様々ですが、アドオンプログラムで達成できることとして大きく分けて以下のような事項が挙げられます。

アドオンプログラムは手動実行・JOB実行(バックグラウンドでの実行)をすることができます。

アドオンテーブル更新

アドオンテーブルレコードの登録・更新・削除が可能で、ABAPプログラムでSQLを用いてテーブル更新を行います。
様々な用途が考えられますが、移行用にcsvをアップロードして一括登録することが可能です。

他システムへの連携

SAPに登録されているデータを取得・整形し、他システムへの連携ファイルを出力するような機能を作成することもできます。

マスタの更新や伝票の作成

マスタの更新や伝票の作成を行うことが可能です。
標準テーブルのレコードはアドオンテーブルと違い、直接変更しないことが推奨されいるためSQLでの更新は行いません。

バッチインプットと呼ばれるプログラム内でトランザクションを実行する方法や、BAPIと呼ばれる汎用モジュールを用いた方法でマスタ更新や伝票の作成を行います。

一覧データの出力

取得したデータや計算結果などを一覧で表示することが可能です。

表示形式としてはALV(Excelのようなセル形式)や帳票のような形式で表示させることや、JOB実行(バックグラウンドで実行)して帳票をスプールに出力することも可能です。

ALVのイメージ

帳票のイメージ

別プログラムの呼び出し

処理した結果を用いて他のプログラムを呼び出すということが可能です。

標準機能の途中で書ける”穴”にコーディング

EXITやBAdIといった機能を用いれば、標準機能の途中でプログラムを書くことが可能な”穴”にコードを記述することができます。
例えば伝票作成時の”穴”にある項目の値を編集するようなロジックを記述できたりします。

プログラム設計する際に知っておくこと

処理の順序

基本的にABAPプログラムでは、主に以下の処理の順序で処理を記述します。

  • 初期処理(イベントブロック:INITIALIZATION)
    プログラム起動時に走る処理。選択画面の初期設定などで使われることが多いです。
  • 選択画面(イベントブロックではなく、最初に変数定義で記載するのが一般的)
    選択画面の項目を定義。
  • 選択画面チェック(イベントブロック:AT SELECTION-SCREEN)
    選択画面で入力し実行した際に値のチェックをする処理。
  • 主処理(イベントブロック:START-OF-SELECTION)
    メインとなる処理。
  • 結果画面(イベントブロック:START-OF-SELECTIONもしくはEND-OF-SELECTION)
    処理が終わった際にユーザが見える画面。ALVの画面・帳票といったものから、処理したログを出力します。
    省略も可能ですが基本的に処理結果はログとして出力する必要があるのが一般的なので、どういった内容を出力するかは重要です。
博士

イベントブロックについては別記事で解説予定じゃ!

システム項目

標準で準備されているシステム項目を用いることができます。
例えばユーザIDやシステム日付などの固定値や、プログラム内で処理した結果が反映される項目などが準備されています。詳しくは以下を参照ください!

メッセージ

SAPではメッセージを登録させておくことができ、共通メッセージをそれぞれの機能から呼び出すことが可能です。

メッセージはT-CODE:SE91にて管理されています。
機能毎に表現がバラバラにならないようチームメンバーと擦り合わせて設定することが必要となります。

選択画面定義

選択画面では処理する条件などを選択項目として定義することができます。
選択項目は単一選択と範囲選択の定義が可能となります。

以下は単一選択と範囲選択の定義の表示例です。

内部テーブルの処理

ABAPプログラムでは一般的なDBテーブル同様、複数の項目を持った横並びのレコードを複数行持つデータ持つことができ、それを内部テーブルと呼びます

内部テーブルのイメージ

内部テーブルに対して以下のような処理をすることができます。

並び替え処理

内部テーブルを、ある項目で昇順もしくは降順にすることができます。

繰り返し処理

内部テーブルを1行ずつ読み込み、処理をすることができます。

読み込む際に条件を指定することも可能です。例えば、上図の内部テーブルの例だと数量が11以上のレコードのみ読み込んでいくと2,4行目のみが順番に読み込まれます。

読み込み処理

内部テーブルから特定のレコードを読み込むことで、特定のレコードに対して処理をすることができます。内部テーブルからの読み込みパターンは以下の2つです。

  • 行数を指定して読み込み
  • 条件を指定して読み込み

行数の取得

内部テーブルの行数を読み込むことができます。

内部テーブルデータの追加・更新・削除

内部テーブルのレコードを更新することができます。更新パターンは主に以下の2つです。

  • 繰り返し処理の中で順番にレコードを読み込み項目を更新
  • 条件指定をして一括で内部テーブルレコードの項目を更新

RANGEテーブル

RANGEテーブルを用いることで意図したテーブルのレコードを取得したり、意図したデータを条件指定して処理をすることができます。

博士

RANGEテーブルについては別記事を準備予定じゃ!

繰り返し処理(内部テーブル不要)

繰り返し処理は内部テーブルを用いなくとも利用可能です。
どういう条件を満たした場合に繰り返し処理を終了するかも指定する必要があります。

条件分岐

「この項目の値が〇〇の時に××の処理をする」といった条件分岐をすることができます。

汎用モジュール

機能をまたいで共通の処理が必要になることがあります。
そんな時は汎用モジュールを作成し、共通部品として利用することが可能です。

汎用モジュールはどういう仕様(IMPORT/EXPORTパラメータや処理の内容)にすればよいか、チームとしっかり調整することが必要です。

アドオンテーブルレコードの登録・更新・削除

ABAPプログラムの中でSQLを用いてアドオンテーブルのレコードを登録・更新・削除をすることができます。

更新できなかった場合にどういったログを残すのかも設計の範疇です。

マスタ更新や伝票作成

標準のマスタの更新や伝票の作成をすることができます。

標準のテーブルは直接SQLで更新することは推奨されていないため、バッチインプットやBAPIを使用する必要があります。
実行が終わった際にエラーが発生したレコードのリカバリ方法をどうするかが設計のポイントとなります。

バッチインプット

SAPのトランザクションコードを直接実行して登録していくような動作をABAPプログラムで再現して実行することでマスタ更新や伝票の作成をすることができます。

デメリットとしてはBAPIより処理速度が遅いことや、バージョンアップをした際にプログラム名や項目名が変わる可能性もあるので注意。(バージョンアップする際は要テスト)

BAPI

BAPIとは標準で準備されている汎用モジュールの一種で、標準データの取得や更新をすることができます。BAPIは汎用モジュールなのでT-CODE:SE37で確認することができ、汎用モジュール名は”BAPI_”から始まります。

ちなみに、BAPIにはデータ更新だけではなくデータ取得するだけのものも準備されています。

ボタン配置と固有の処理

処理実行の画面上でボタンを配置し、そのボタンが押下されたら他の処理を実施するということも可能です。

例えば、
選択画面で条件指定→ALVで一覧を表示→ALVで選択したレコードに対して処理を実施
といったことも可能となります。

最後に

レイナ

ABAPでできることのイメージが湧きました!
まだ自信は無いですが、いくつか機能を設計すれば慣れそうな気がします!

博士

よりABAPのことを知りたければ、以下を参照するのじゃ。
今後もABAPのノウハウを更新していくぞい!

新着のSAPフリーランス案件

【CO】

【FI】

製造業様SAP S/4 HANA導入検討支援(コンサルリード)

要スキル:
・会計領域におけるプロジェクト管理の実施 ・10名以上のメンバー管理の経験をお持ちであること ・エンドユーザとの調整を含めたマネジメントスキル ・SAP導入プロジェクトの経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP新規導入における、プロジェクト管理支援 ・会計・生産領域(FI/CO/PS/PP/QM)におけるプロジェクト管理支援 ・ファシリテート ・領域タスク推進/進捗管理 ・個別課題整理・解決

【CO】

【FI】

【MM】

【PP】

【SD】

【その他】

建設コンサルタント企業向けSAP保守支援(チームリード)

要スキル:
・SAP関連のプロジェクトで複数モジュールでの経験があること 【尚可】 ・ロジから会計に連動するところの知見
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
複数モジュールにまたがった保守チームの管理を行っていただきます。 問い合わせや障害等のタスク管理や優先順位付けなどを顧客とやり取りしながら差配していくのが中心となります。

【CO】

【FI】

【MM】

【SD】

製造業会社向けSAP保守支援(会計もしくはロジ)

要スキル:
・会計もしくはロジ領域でのSAPプロジェクトの業務経験 ・ABAPでの開発経験
月額単価:
~950,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
問い合わせ対応や調査等の保守作業(会計/ロジ)

【MM】

【SD】

複数社に対するSAP運用保守とS/4へのVerUp対応支援

要スキル:
SAPロジ領域での保守や導入のプロジェクト経験
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
20社前後に対するSAPの保守業務を担当頂きます。 (不具合調査、障害対応、機能追加・改修、法改正対応など) またS/4へのバージョンアップを控えているため、そちらも対応頂きます。

【CO】

【FI】

【MM】

【PP】

【SD】

光学機器製造会社向けSAP導入プロト支援

要スキル:
・SAPの構想策定フェーズからプロジェクトに参画したことがある経験 ・プロト機の設定などをおこなってきた経験
月額単価:
~1,800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
・業務フローの整理と作成 ・プロト機の準備

【FI】

製造業会社向けS/4導入検討支援(会計リード)

要スキル:
・SAP導入プロジェクトの経験 ・会計領域におけるリード経験(10名以上目安) ・顧客折衝の経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
海外テンプレート構築検討を進めており、会計チームでのリードを担当頂きます。 ・顧客に対する進捗報告 ・顧客からの相談窓口 ・チーム全体の、品質、進捗、コストの管理 ・領域横断課題の検討(チケット起票単位の整理等)

【SD】

SAP導入コンサル支援(SD)

要スキル:
・SAPプロジェクトにて要件定義経験5年以上 ・要件定義からカスタマイズの設定 ・SAP(SDモジュール)経験5年以上 ・コミュニケーション能力 【尚可】 ・リモート環境での作業経験
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
SAP導入コンサルポジションとして要件定義より参画予定となります。 ・要件定義の確認と課題対応 ・残課題の背景・内容を定義 ・SAPソリューションの検討・討議

【FI】

製造業向けS/4新規導入支援(FI-AP/AR)

要スキル:
SAP導入プロジェクトにおいてFI(AP/AR)コンサルタントとしての業務経験
月額単価:
~2,000,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4新規導入PJのFIメ(AP/AR)メンバーとして参画頂きAP/AR領域について以下を担当頂きます。  -業務フロー作成  -プロトシナリオ作成  -プロト用パラメータ設定、プロト実施  -課題対応(SAP標準を使ったソリューション検討)  -議事録作成など

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社Luxy(https://luxy-inc.com/company_info/)と株式会社アガルートITパートナーズ(https://agaroot-itp.com/about/)の代表取締役。

新卒でSAPエンジニアとして働き始める。副業で事業を開始したのち、2015年に独立しシステム開発会社を設立。SAPの案件に従事しつつシステム開発事業を成長させ、2021年に会社をバイアウト。その後も創業会社とグループ会社で代表を兼任。
SAPエンジニア・コンサルタント歴は10年以上。

一緒に「SAPラボ」を盛り上げてくれる副業ライター(SAP経験者)を募集してますので、お問い合わせよりお願いします!

この記事のポイント