SAPABAP-汎用モジュール

汎用モジュールはSAPシステムの主要部分を構成します。これは、SAPが長年にわたって汎用モジュールを使用してコードをモジュール化し、コードの再利用を自分自身、開発者、および顧客が可能にしているためです。

汎用モジュールは、パラメータのインポートおよびエクスポートを伴う再利用可能なステートメントのセットを含むサブプログラムです。インクルードプログラムとは異なり、汎用モジュールは独立して実行することができます。SAPシステムには、任意のABAPプログラムから呼び出すことができるいくつかの定義済み汎用モジュールが含まれています。汎用グループは、論理的に一緒に属する多数の汎用モジュールの一種のコンテナとして機能します。たとえば、人事給与システムの汎用モジュールは、汎用グループにまとめられます。

汎用モジュールの作成方法を確認するには、汎用ビルダーを調べる必要があります。トランザクションコードSE37の関数ビルダーを見つけることができます。汎用モジュール名の一部をワイルドカード文字で入力するだけで、汎用モジュールを検索する方法を示すことができます。* amount *と入力し、F4キーを押します。

検索結果は新しいウィンドウに表示されます。汎用モジュールは背景が青色の行に表示され、それらの汎用グループはピンク色の線で表示されます。オブジェクトナビゲータ画面(トランザクションSE80)を使用して、汎用グループISOCをさらに調べることができます。汎用モジュールの一覧と、汎用グループに保持されているその他のオブジェクトを表示することができます。汎用モジュールSPELL_AMOUNTについて考えてみましょう。この汎用モジュールは、数値を単語に変換します。

新しいプログラムの作成

Step 1 −トランザクションSE38に移動し、Z_SPELLAMOUNTという新しいプログラムを登録します。

Step 2−値を入力して汎用モジュールに渡すことができるパラメータを設定できるように、コードを入力します。ここでのテキスト要素text-001は、「値の入力」と表示されます。

Step 3−このためのコードを書くには、CTRL + F6を使用します。この後、「CALLFUNCTION」がリストの最初のオプションであるウィンドウが表示されます。テキストボックスに「spell_amount」と入力し、[続行]ボタンをクリックします。

Step 4−一部のコードは自動的に生成されます。ただし、IFステートメントを拡張して、「関数モジュールがsy-subrcの値を返しました」というメッセージを画面に書き込むコードを含め、関数が正しい結果を書き出すようにELSEステートメントを追加する必要があります。モジュールは成功しました。ここでは、汎用モジュールから返された値を保持するために新しい変数を設定する必要があります。これを「結果」と呼びましょう。

以下はコードです-

REPORT Z_SPELLAMOUNT. 
data result like SPELL. 

selection-screen begin of line. 
selection-screen comment 1(15) text-001. 

parameter num_1 Type I. 
selection-screen end of line. 
CALL FUNCTION 'SPELL_AMOUNT' 
EXPORTING 
AMOUNT = num_1 
IMPORTING 
IN_WORDS = result. 

IF SY-SUBRC <> 0. 
   Write: 'Value returned is:', SY-SUBRC. 
else. 
   Write: 'Amount in words is:', result-word. 
ENDIF.

Step 5−汎用モジュールが返す変数はIN_WORDSと呼ばれます。'result'というプログラムで対応する変数を設定します。LIKEステートメントを使用してIN_WORDSを定義し、SPELLと呼ばれる構造を参照します。

Step 6−プログラムを保存、アクティブ化、および実行します。次のスクリーンショットに示すように値を入力し、F8キーを押します。

上記のコードは次の出力を生成します-

Spelling the Amount 
Amount in words is: 
FIVE THOUSAND SIX HUNDRED EIGHTY