SAPエンジニアを目指す方へ アドオン開発基礎知識

フリーコンサルタントの職種

2018年8月29日

専属エージェント

榎本 雅仁

SAPコンサルタントなら、アドオン開発の知識も持ち合わせておきましょう。
ABAPについても、最低限理解しておく必要があります。

SAP案件の中で、人材募集数の多いもののひとつが、アドオン開発に関するものです。アドオン開発とは、SAP標準機能だけでは実現できない顧客要件を、SAP独自言語であるABAPを使用して実現する事を指します。

今回は、ABAPで作成するプログラムの中で、比較的よく使われる「レポートプログラム」と「ダイアログプログラム」の基礎知識を整理していきます。

ベーシックでシンプルな「レポートプログラム」

帳票や画面上に一覧出力する「レポートプログラム」は、比較的シンプルでわかりやすい作りになることが多く、検索条件項目にユーザーが任意の検索値を入力し、実行ボタンを押下することで検索結果が表示されるものです。

顧客要件に応じて、検索条件項目の追加や実行ボタンを押下したあとに表示される検索画面などを細かく制御でき、とても便利です。

このレポートプログラムを、夜間などに業務データを処理するジョブの管理ツールであるJP1に、ジョブとして登録ができ、さらに外部の帳票ソフトへデータを出力し、ユーザーが扱いやすい帳票に変換することも可能になります。

SAPのレポート

動的な画面遷移処理が可能なダイアログプログラム「Dynpro」

ユーザーとの対話を通じて、複数の画面で動的な処理が可能なプログラムは、「Dynpro(ディンプロ)」と呼ばれ、Dynamic programmingの略となります。

レポートプログラムとは違い、複雑な顧客要件を実現する為に使われ、アドオン開発プロジェクトのプログラマーにとっては、必須に近い開発スキルと言えるでしょう。

このDynpro(ディンプロ)は、SAPの強みのひとつとも言える、非常に強力で便利な機能です。

例えば、テーブルコントロールと呼ばれる手法を使って、複数の行や項目をもつ表のような入力画面を作成することができ、これは業務で使用する伝票の明細部分を入力するために良く使われているものです。

入力画面の項目レイアウトや項目テキストはもちろんのこと、画面遷移の順序、実行ボタンを押したときの内部処理、処理結果をどのようにデータとして保存させるかなどを指定することができます。

SAPで職務分掌を実現する「権限」

レポートプログラムとDynpro(ディンプロ)双方に共通する重要な機能として、「権限」があります。

SAPでは標準機能として、職務分掌に応じたさまざま権限を管理することができます。この機能を使う事で、職務権限のある特定ユーザー以外は、特定機能を実行できないという事が可能です。

権限は企業の基幹システムとしてSAPを使用する上で、重要な役割を担っています。これからSAPのアドオン開発に携わるプログラマーであれば、権限の制御についても抑えておきたいところです。
SAPエンジニア

新規開発機能を異なるシステム環境に反映させる「移送」

SAPでは、既存機能の改修も含めてある機能を新規開発したとき、それを「移送」することによって、異なるシステム環境へ適用させることができます。

アドオン開発では、開発環境、テスト環境、本番環境というように、システム環境を段階的に分けて作成しており、開発環境での新規開発機能は、すぐに異なるシステム環境へ適用されるわけではありません。

開発環境で、新規開発機能に紐づく「移送依頼」を取得し、その移送依頼を異なる環境へ適用することにより、はじめてそれが反映されます。

これにより、開発環境の新規開発機能をテスト環境へ、テスト環境で動作の保証がとれた機能を本番環境へ、というような形で異なるシステム環境へその内容が反映されます。

移送は、プログラムの新規開発機能のほかにも、パラメータ設定(カスタマイズ)などにも適用されます。アドオン開発での基礎知識となりますので、「新規開発機能には必ず移送が絡む」ということを念頭に置いておきましょう。

今回は、簡単にSAPエンジニアのアドオン開発に関する基礎知識をご紹介いたしました。
SAPエンジニアを目指す方も、ぜひ参考にしてみて下さい。

フリーランスコンサルタント登録多数。高単価・戦略・PMO案件のご紹介。
プロフェッショナルハブのご登録はこちら。

最新案件情報

まずは無料会員登録

プロフェッショナルの活躍を長期的にサポートします。
「独立前だけど案件を探し始めたい」「まずはよい案件がないか知りたい」
といった方もまずはご登録ください。

プロフェッショナルをお探しの企業様

プロフェッショナルハブでは、様々な分野でのプロフェッショナル人材をご紹介可能です。