個別にコンパイルされた ILE COBOL プログラム (一連の ILE COBOL ソース・プログラムのプログラムを含む) では、EXTERNAL 文節を使うことによってデータ項目を共用することができます。 この EXTERNAL データは、弱エクスポートとして処理されます。 強エクスポートと弱エクスポートについては、「ILE 概念」を参照してください。
EXTERNAL 文節は、ILE COBOL プログラムの WORKING-STORAGE SECTION の 01 レベルのデータ記述で指定し、次の規則が適用されます。
実行単位内の ILE COBOL プログラムのうち、項目のデータ記述が、その項目を含むプログラムと同じであるものからは、 そのデータ項目にアクセスして処理をすることができます。 たとえば、プログラム A に次のデータ記述がある場合、
01 EXT-ITEM1 PIC 99 EXTERNAL.
プログラム B の WORKING-STORAGE SECTION 内のデータ記述を同じにすることによって、そのデータ項目にアクセスすることができます。
同じ名前付き EXTERNAL データ項目を宣言しているすべてのモジュール・オブジェクトにおいては、 その EXTERNAL データ項目のサイズはすべて同じでなければなりません。 名前が同じでサイズが異なる EXTERNAL データ項目がコンパイル単位の複数の ILE COBOL プログラム内で宣言されている場合、 その中の最長のサイズがそのデータ項目の長さとして使用されます。
さらに、名前が同じでサイズが異なる EXTERNAL データ項目が、 同じ活動化グループで活動化される複数のプログラム・オブジェクトまたはサービス・プログラムで宣言されており、 後から活動化されたプログラム・オブジェクトまたはサービス・プログラム内に、 名前が同じでサイズが大きい EXTERNAL データ項目がある場合、 後から活動化されたプログラム・オブジェクトまたはサービス・プログラムの活動化は失敗します。
複数の ILE COBOL プログラムで宣言された同じ名前のデータ項目におけるタイプの整合性が ILE COBOL コンパイラーによって強制されることはありません。 これらのデータ項目の使用を整合性のあるものにするのは、プログラマーの責任です。
EXTERNAL データ項目にアクセスするどのプログラムも、この項目の値を変更する可能性があることに注意してください。 この文節は、保護しなければならないデータ項目には使用しないでください。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.