本ページでは、SAP-FIモジュールで肝となるチェックと代入の仕組みを1から解説します。
チェック(GGB0)と代入(GGB1)は文字通り、会計伝票を登録・変更する際などにSAP標準にはないチェックや代入を行いたい場合に用いられます。SAPの拡張手段の1つです。
本ページでは、チェック・代入とは何か?どのようなときに利用されるのか?そして、どのように実装すればよいか?を1から解説します。
SAPコンサルタントを目指す方であれば知らないと恥ずかしい基本知識ですので、是非最後までご覧ください。
SAP:チェック(GGB0)
チェックは、トランザクションコード:GGB0から実装するSAP拡張機能の1つ。SAP標準には存在しないチェックロジックを追加実装する場合に用いられる機能です。
例えば会計伝票転記時、転記日付のチェックはSAP標準で行われますが(オープンしている会計期間内でしか設定できない)、伝票日付については特にチェックされません。どのような日付でも伝票日付は基本OK。
しかし、ユーザの要件によってはSAP標準にはない伝票日付のチェックを行う必要がある場合が存在します。このようなSAP標準にはないが追加でチェック機能を追加したいときに利用するのが、「GGB0:チェック」です。
と、文字だけで説明されても、概要レベルの理解どまりとなってしまう方もいらっしゃるでしょう。本ページでは、実際の登録画面をお見せしながら、どのようにチェック機能を実装していくのか、より本質的に理解できるよう解説します。
会計伝票には様々な日付情報が保持されています。
SAP初心者の方にとっては、それぞれの日付がどのような意味を持つか理解しづらいのではないでしょうか。下記リンクでいろいろな日付の説明をしていますので合わせてご覧ください。
1.アプリケーションエリアの選択
トランザクションコードGGB0を実行すると、下記のような画面に遷移します。
第1画面の左側に表示されているには、アプリケーションエリアと呼ばれる階層で、チェックロジックを追加することができる機能群が(財務会計・管理会計などの単位)が表示されます。
チェック・代入はあくまでもSAPの拡張機能ですので、ここに表示されている領域以外では機能を追加することはできません。
ここでは、例として「SAP連結会計」の「伝票明細」に対するチェックを追加していきます。
チェックロジックを追加したいアプリケーションエリアでダブルクリックをすることで、実装画面に遷移していきます。
2.メッセージID登録
チェック機能を利用するということは、必ず何かしらのエラーメッセージを出力する設定が必要となります。(〇〇は利用できません~ / 〇〇は■■である必要があります / etc)
チェックの実装画面に遷移する前に必ずメッセージID登録のポップアップ画面が表示されるますので、そこでどのメッセージクラスを利用するかを定義します。
基本的には、ここで指定したメッセージクラス以外を表示することはできません。(後述するExit呼び出しを利用すれば例外的に他のメッセージクラスのメッセージを表示することは可能です。)
3.チェック登録
以下のような画面に遷移します。
ここでは、あくまでもチェックの定義の「箱」を作成するようなイメージでOK。後続で、実際のチェックロジックを複数作成し、この箱に入れていく流れです。
4.ステップ(Step)の登録
続いて、ステップを定義します。先ほど定義した箱の中に、これから1つ1つのチェックロジックを詰め込んでいくようなイメージです。
1つのチェックに対して、複数のステップを登録することができます。
ここでは、例としてステップ「TEST」を作成します。ここは、出来るだけ分かりやすい名前にしておけばOK。
5.前提条件の定義
Stepの登録が完了したら、チェックの前提条件を定義します。
ここからがチェック:GGB0機能の優れたところなのですが、ABAPによるコーティングが完全に不要。
赤枠内に表示されている、項目名や演算子をクリックしていくだけで、下記画像のようにチェックの「式」を定義することができます。
チェック・代入の定義においてABAPの知識は完全不要のため、チェック・代入はFIコンサルタントの方が担うことがメインとなってきます。
尚、ロジックの作成中は日本語(ログオン言語)で式が記載されますが、保存後は以下のようにシステム的に変換された値で表示されるようになります。
6.チェックの定義
チェックの定義も、前提条件の「式」を入力したときと同様の手順で作成することができます。
たったこれだけで手順は完成です。
先に定義したメッセージは、前提条件を満たし、チェックの条件を満たさない場合に出力される仕組みです。
前提条件をあえてブランクで定義することで、いつどのような場合にもチェックする内容を実装することができます。
SAP:代入(GGB1)
代入(GGB1)もその名の通り、特定の条件を満たす場合に特定の項目に決まった値を代入したい場合に用いる機能です。
以下が代入の設定画面です。
代入(GGB1)も、基本的な画面構成はチェック(GGB0)と同様です。上記の例は、「システム日付が2020/12/31であれば、伝票ヘッダTextに "Today is 2020/12/31" と代入する」ロジックを定義しています。
チェック(GGB0)と同様、ABAPの知識は基本的に不要。その他の基本的な操作も基本的には同一ですので、本ページの内容を理解できていれば代入(GGB1)についても一人で実装することができるようになるでしょう。
【発展】Exit呼び出し
チェック・代入は基本的にABAPの知識は不要。
ですが、これまで解説してきた内容だと簡易なロジックでしかチェック・代入を定義することができません。先ほど解説した通り、GGB0/GGB1の画面に出てくる項目以外に対するチェックや代入が不可能です。
ここで、ABAPで作成したプログラム(Exit)を呼び出すことでより複雑なチェック・代入の定義方法をご紹介します。
トランザクションコード:GCX2
トランザクションコード:GCX2を実行すると、以下のような画面が表示されます。
ここで、チェック・代入のそれぞれの機能で呼び出したいプログラムを指定します。下記の例で言えば、チェック(GGB0)には「Y0000001」を、代入(GGB1)には「Y00000002」を指定しています。
ここで指定するプログラムは、実行可能プログラムではなく、モジュールプールプログラムを選択します。
モジュールプールプログラムとは、簡単に説明すると様々な部品(画面定義・サブルーチンなど)から成り立つプログラムです。
指定したモジュールプールプログラムのサブルーチン1つ1つは、チェック・代入機能の中でExitとして取り扱われます。
Exitの呼び出し
トランザクションコード:GCX2で指定したプログラムのサブルーチンはチェック・代入の定義画面「Exitタブ」から選択することが可能になります。
このように定義することで、前提条件を満たす場合に指定したサブルーチンが動作するようになるのです。
チェックと代入のメリット
最後にチェック・代入を利用するメリットについて解説します。
メリット1:コーディング不要
先ほども解説しましたが、簡単なロジックであればコーディング不要でチェックと代入を定義することができます。
したがって、ABAPerがいなくても開発することができるということが大きなメリットです。
また、1からABAPで開発をするよりも単純な開発となるため、その分検証(テスト)にかかる時間も大幅に抑えることが可能になります。
バージョンアップによる影響が極小
SAPを導入した企業は、いつか必ずバージョンアップを行うタイミングが到来します。
アドオンプログラムの場合、SAP標準に変更が入る場合大きな影響を受けるためプログラム改修が必要となる場合が多いのですが、チェックと代入は基本的にSAP標準の変更による影響を受けません。
保守性に優れたシステムを目指すのであれば、チェックと代入をはじめとする拡張機能をうまく活用することが定石となります。
ABAPを1から勉強したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!