RPG

172. バインド・プロシージャーが重複してしまったら !?

サービス・プログラム同士で、うっかりプロシージャー名が重なってしまった !!

つまり例えば、SET_PROC という名前のプロシージャーは サービス・プログラム : SVR001 でも
サービス・プログラム : SVR002 でも EXPORT されている。
このとき上位のプログラムで、これらの2つのサービス・プログラムをバインドしようとするとプロシージャー名の
重複エラーとなって CRTPGM は失敗する。
多くのプロシージャーをサービス・プログラムで開発していると、偶然にも同じ名前が重なってしまうことがある。
しかも、どちらのプロシージャーの名前も変更することができない。

このようなプロシージャーの重複を一時的にでも避けて *PGM を作成することができる方法がある。
それはプログラム作成( CRTPGM )コマンドにおいて

作成オプション .............................. *DUPPROC

を指定することである。
*DUPPROC を指定すると最初に見つかったプロシージャーだけが採用されてプログラムが生成される。
もちろん根本的にはプロシージャー名の重複を避けることが望ましい。