Friday is awesome

SAPについて個人的なメモをまとめたブログです

MENU

【ABAP Tips】サブルーチンプール(Subroutine pool)とは?

ABAPにおけるサブルーチンプールとは、複数のプログラムから呼び出される共通処理を一つのプログラムに作成しておく手法で、サブルーチンの呼び出し先の処理が書かれます。
 Form サブルーチン名 
  処理内容
 Endform
のように記述して、呼び出し側からはPerformで、サブルーチンプールのサブルーチンを呼び出します。
サブルーチンプールを使用することで、コードの重複を減少させ、保守性を向上させることができます。また、複数のプログラムで同じコード断片を使用する際に、変更が必要な場合も、サブルーチンプール内のコードを修正するだけで済むため、効率的な開発が可能です。
似たようなことは汎用モジュールやIncludeプログラムでも実行できそうですが、そもそもサブルーチンプールは、サブルーチンの集合体で、汎用モジュールやIncludeとは異なります。汎用モジュールはそれ単体で実行でき、RFC接続から実行することもできますが、サブルーチンプールでは、そういうことはできません。
Includeも共通処理を書きますが、値をインプットしてIncludeで処理して値を返すということはできないです。Includeでは、繰り返し処理を記述するのではなく、よりプログラムに依存しない一般的な事項を書いておいて、複数プログラムで呼び出すというイメージでしょうか。また、Includeの使われ方としてはExitから呼び出す際にサブルーチン内には処理を記述しないで、Includeに外出ししておいて、作成するという開発手法も一般的かと思います。
汎用モジュール、Includeに比べてサブルーチンプールを開発するケースは少ないかと思いますが、サブルーチンプールの解説でした。