このページでは、汎用モジュールを単体でテストする方法(テストデータを保存する方法)や、汎用モジュールテスト機能を利用した裏技をご紹介します。
汎用モジュールはプログラムの部品ですので、それ単体で実行するにはSE37: 汎用モジュールビルダを利用する必要があります。このページでは、そのテスト方法をざっくり簡単に解説しつつ、いろいろな使い道・裏技もご紹介します。
汎用モジュールって何?という方も本ページで合わせて解説しておりますので、ご安心ください。
SAPエンジニアを目指す方やABAPerを目指す方であれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。
前提:汎用モジュールとは?
汎用モジュールとは、再利用可能なプログラムの部品です。「部品」ですので、事前にロジックを実装しておき、後から汎用モジュールを「呼び出す」形で利用します。
例えば「特定のファイルを開いてログを記録する」「会社独自の計算方法で支払額を算出する」といったように、同じような処理を何度も必要とする場合に用いることができる仕組みです。
汎用モジュールの作り方・呼び出し方/実装方法については、以下のページで詳しく解説しております。
本記事では、この汎用モジュールが何者であるか?を理解できている方向けの解説ページのため必ず復習してから以降の章を読み進めてください。
汎用モジュールのテスト方法
汎用モジュールのテストはトランザクションコード「SE37(汎用モジュールビルダ)」もしくは「SE80(オブジェクトナビゲータ)」から実行します。
ここでは、SE37からの実行方法で解説しますが、操作手順はSE80でもほぼ同様の手順でテストを行うことが可能です。
トランザクションコードとは、SAPで利用できるショートカットのようなもの。
コマンド項目に入力するだけで、特定の機能を呼び出すことができる便利な機能です。
トランザクションコード:SE37
トランザクションコード:SE37 で対象の画面に遷移し、テスト実行したい「汎用モジュール」名称を入力します。
検索ヘルプを利用して汎用モジュール名を検索することも可能ですので、名称を覚えておく必要はありません。
今回、行いたいのは汎用モジュールの「テスト」なので「照会」ボタンを押下し次の画面に遷移します。
画像にある汎用モジュールはSAP標準の汎用モジュールです。この汎用モジュールは年月日を入力すると、その月の最後の日を返す処理を行ってくれます。
テストデータの入力
「照会」ボタンを押下すると、汎用モジュールのコード画面に移ります。
テストを行うには、該当の画面で「F8(実行)」ボタンを押下するか、メニューの「汎用モジュール ⇒ テスト」で実行できます。
「F8」ボタンを押下した結果がこちらです。
ご覧のように、インポートデータをマニュアルで入力する画面に遷移します。
ここには汎用モジュールに投入するインプットデータの入力項目が自動的に表示されます。本汎用モジュールの場合は「IMPORT」で定義されているのは1つ。
入力をしたら、更に「F8」を押下するか、「Ctrl + F7」を押下して実行します。
「F8」実行パターン
「F8」実行はデバッグせずに、そのまま実行するモードです。実行した結果がすぐに分かるため、バグの調査に利用するのではなく、「どのような動きをするのか?」を知りたい場合に利用することが多いです。
以下のような結果画面が表示されます。
SAP標準の汎用モジュールは、リファレンス資料が少なく、Web上にもあまり詳細情報が載っていないことが普通です。
Aを入力したら、何がでるのか?インプットに対するアウトプットが知りたい場合など、単純な動作確認を行う際には「F8」実行パターンがおすすめです。
「Ctrl + F7」実行パターン
デバッグモードに移行します。こちらは、バグの調査で使われることが普通です。
ロジック不備の調査など、コードを直接読む必要がある場合に用います。
結果の確認
上記2つの実行モードが終了すると、結果画面に遷移します。
EXPORTの結果だけではなく、例外処理が走った場合は「エラーメッセージ」が出力されます。
デバッグ(DEBUG)とは、一言でいえば「プログラムバグを発見する作業の1つ」です。
プログラムを1行1行実行しながら、ロジックの不備を検知していきます。
デバッグとは何か?どのようにデバッグするのか?については以下の記事をご確認ください。
【裏技】テストデータの保存
テスト結果画面で保存ボタンを押せば、テストデータの保存が可能です。
今回の例では、IMPORTは1項目のみでしたが、例えば他システムからのインターフェースで用いられている場合などは項目が数十個~の場合もあります。
そんなとき、テストデータを毎回入力するのは大変ですよね。
保存ボタンを押せば、テストデータに名称を付けたうえで保存が可能です。保存したデータは、実行前画面の「テストデータ一覧」ボタンを押せば呼び出すことができます。
汎用モジュールテスト実行時の注意点
最後に、汎用モジュールテストの注意点です。汎用モジュールテストでは、デバッグ同様、結果は全てコミットされます。易しい言い方をすれば、結果がシステムに反映されてしまいます。
例えば、伝票登録の汎用モジュールをテストした場合、伝票が実際に登録されるということです。
テストという言葉に騙されて「データが実際に登録されることはない。」と誤解している方がたまにいらっしゃるため念のための補足です。
ちなみに登録系の汎用モジュール使い方次第で実は様々な方法で利用可能です。
テストデータ作成時に威力を発揮します。テストのために伝票を100件登録したい場合、画面から1つずつ登録していくのは大変です。
① テストデータの保存
② 必要に応じて値を変えて実行
他システムからのIFを前提とする機能など、データの用意が難しい場合に用いるとよいでしょう。
SAP/ABAPを1から勉強したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!