Sap-abap-function-modules

提供:Dev Guides
移動先:案内検索

SAP ABAP-汎用モジュール

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

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

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

汎用モジュールの作成

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

新しいプログラムを作成する

  • ステップ1 *-トランザクションSE38に移動して、Z_SPELLAMOUNTという新しいプログラムを作成します。
  • ステップ2 *-値を入力して汎用モジュールに渡すことができる場所にパラメーターを設定できるように、コードを入力します。 ここのテキスト要素text-001は、「値を入力してください」と表示されます。
  • ステップ3 *-このためのコードを書くには、CTRL + F6を使用します。 この後、「CALL FUNCTION」がリストの最初のオプションであるウィンドウが表示されます。 テキストボックスに「spell_amount」と入力し、[続行]ボタンをクリックします。

スペル量プログラム

  • ステップ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.
  • ステップ5 *-汎用モジュールが返す変数は、IN_WORDSと呼ばれます。 「result」というプログラムで対応する変数を設定します。 LIKEステートメントを使用して、SPELLと呼ばれる構造を参照することにより、IN_WORDSを定義します。
  • ステップ6 *-プログラムを保存、アクティブ化、実行します。 次のスクリーンショットに示すように値を入力し、F8を押します。

スペル量

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

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