COBOL タイプが、相互運用するマネージ非 COBOL と互換性がない場合、既存の COBOL を設計し直すか、既存の COBOL と非 COBOL 間のインターフェイスとして機能するプロキシ COBOL クラスを作成できます。
この 2 つのオプションには次の事項が関連します。
タイプを操作して、連絡節で互換性のあるタイプを使用するようにします。EXIT または GOBACK のポイントが複数ある場合は、新しい連絡節にデータを戻すように COBOL の再設計が必要となる場合があります。あるいは、1 つ以上のメソッドを含むオブジェクト指向 COBOL クラスとして COBOL を再設計することもできます。ただし、使用するメソッドが増えるほど、再設計の手間が増えます。
COBOL モジュールを ILにコンパイルします。これにより、モジュールおよびそのエントリ ポイントがインスタンス メソッドとして公開されます。これによりマネージ コードは、MicroFocus.COBOL.RuntimeServices 名前空間 (Micro Focus Runtime (Interop RuntimeServices) アセンブリに含まれている) の Interop クラスの CobLoad メソッドを使用してプログラムのインスタンスを取得し、他のメソッドと同様に COBOL メソッドを直接起動できます。
マネージ COBOL にプロキシ クラスを作成すると、既存の COBOL および非 COBOL マネージ コード間に薄い層が追加されます。このクラスは、標準 COBOL の「 CALL "program" USING...」構文を使用して、オブジェクトやプロパティを使用するマネージ アプリケーションと COBOL との間のインターフェイスとなります。
既存の COBOL を ILに再コンパイルすると、多くの場合 (特に非 UI COBOL サブルーチンの場合)、変更はごくわずかで済みます。
マネージ コードは、プロキシ クラスを起動できるため、元の COBOL も同様に起動します。
COBOL を直接呼び出すメリットは次のとおりです。
プロキシ クラスを使用するメリットは次のとおりです。