エクスポートされたサブプロシージャーがサイクル・モジュールに含まれている場合、予期しない時にサイクル・メイン・プロシージャーの初期化が実行されるシナリオが生じる可能性があります。
これによって、ファイル、データ域のロック、およびグローバル・データに影響を及ぼし、エラーが発生します。
サイクル・メイン・プロシージャーを呼び出す前に、モジュール外のプロシージャーから、エクスポートされたサブプロシージャーを最初に呼び出すことができます。
サイクル・メイン・プロシージャーは、呼び出された時点で初期化されます。
- 呼び出される最初のプロシージャーがサブプロシージャーであるという理由でモジュールの初期化が行なわれ、その後にサイクル・メイン・プロシージャーの初期化が行なわれた場合、ファイルがすでにオープンしていたりあるいはデータ域がすでにロックされていたりすると、エラーが発生する可能性があります。
- サブプロシージャーがサイクル・メイン・プロシージャーを呼び出したときに、前回の呼び出し時におけるメイン・プロシージャーの終了状態によって、今回の呼び出し時にグローバル・データの再初期化が行われる場合と行われない場合とがあります。
サブプロシージャーが何らかのグローバル・データを使用していると、予期しない結果を招くことがあります。
- サイクル・メイン・プロシージャーが最後に呼び出され、終了された後、エクスポートされたサブルーチンがモジュール外から呼び出されたときに、本来ならファイルのオープンとデータ域のロックが求められているにもかかわらず、ファイルが暗黙的にクローズされてデータ域がアンロックされていた場合、エラーが発生する可能性があります。