7.59.3 INCLUDEの使用例
多数のファンクションから実行する必要のある共通の一連のコードがある場合、以下のようにします。
FUNCA RDML
SUBROUTINE NAME(SUB1)
*<<common set of code>>
ENDROUTINE
FUNCB RDML
EXECUTE SUBROUTINE(SUB1)
INCLUDE PROCESS(PROCA) FUNCTION(FUNCA)
または、共通コード用のファンクション内に共通コードを配置して必要に応じて呼び出すか、またはそのコードを必要とする各ファンクションにコピーすることもできます。INCLUDEコマンドを使用した方法を取ることをお勧めします。
あるファンクションから別のファンクションを呼び出し、作業リストを渡します。この作業リストは、両方のファンクションでまったく同じように定義されている必要があります。
FUNC1 RDML
DEF_LIST NAME(#WRKLIST) FIELDS(<<fields needed>>) TYPE(*WORKING) ENTRYS(10)
FUNC2 RDML
INCLUDE PROCESS(*DIRECT) FUNCTION(FUNC1)
CALL PROCESS(*DIRECT) FUNCTION(FUNC3) PASS_LST(#WRKLIST)
FUNC3 RDML
FUNCTION OPTIONS(*DIRECT) RCV_LIST(#WRKLIST)
INCLUDE PROCESS(*DIRECT) FUNCTION(FUNC1)
または、一方のファンクションで作業リストを定義してもう一方のファンクションにコピーするか、作業リストを必要とするファンクション内に作業リストを取り込むこともできます。