マッピング

マッピングは、COBOL エントリ・ポイントなどのアプリケーション・フィールドとインターフェイス・フィールドの間の関係を指定します。ドラッグ・アンド・ドロップによってインターフェイス・フィールドを作成した場合に行われるマッピングでは、ドラッグ・アンド・ドロップしたフィールドにインターフェイス・フィールドが割り当てられます。配列のフィールドでは (OCCURS 句がある)、すべてのオカレンスはデフォルトで自動的にマップされます。

インターフェイス・フィールドを手動で定義する場合は、マッピング (複数可) も手動で定義する必要があります。各インターフェイス・フィールドには複数のマッピングを定義できます。入力フィールドの場合、これはマッピングの実行中に、フィールドが受けたデータがフィールドのマッピング先となるすべてのデータ項目に移動することを意味します。出力フィールドの場合は、インターフェイス・フィールドに Occurs プロパティがある場合を除いて意味を持ちません (複数の COBOL フィールドからのデータが順番に 1 つのインターフェイス・フィールドに移動し、各値が前の値と入れ替わります)。この場合、下付き文字の異なる値を異なるマッピングに指定できます。基本の (グループ化されていない) インターフェイス・フィールドと COBOL フィールドのみをマッピングできます。

マッピングするフィールドが配列または配列の一部の場合は、アスタリスク (*) を使用してそのフィールドのすべてのオカレンスがマッピングされる (デフォルト) ことを示すか、または下付き文字で定義して特定のオカレンスを指定します。例:

fieldname(*)

または

fieldname(4)

通常は、[Mapping] ダイアログ・ボックスからフィールド名を変更できません。これは、マッピング機能の目的が特定のインターフェイス・フィールドのマッピングを指定するためだからです。ただし、インターフェイス・フィールドに Occurs プロパティがある場合は、フィールド名を変更し下付き文字を指定できます。下付き文字以外を変更すると、エラーが発生します。

Occurs プロパティを持つ項目の場合は、デフォルトで各オカレンスは COBOL データ項目の対応するオカレンスにマッピングされます。Occurs 列の数値が発生元のデータ項目の OCCURS 句と一致しない場合は、[Mappings] ダイアログ・ボックスが開く前に警告メッセージが表示されます。この場合、[Mappings] ダイアログ・ボックスでオカレンスごとにマッピングを指定します。

Web サービス・タイプのサービス・インターフェイスを作成する場合は、文字列として定義された出力インターフェイス・フィールドを COBOL 英数文字フィールドにマッピングしないように注意してください。COBOL 英数文字フィールドには、SOAP 文字列では無効な文字の値を含む場合があります。無効な文字の値は、x"09"、x"10"、および x"13" 以外の x"20" より小さい値です。このようなマッピングを作成すると、クライアント・プログラムに「458 Illegal character in SOAP string (SOAP 文字列に不正な文字があります)」というメッセージが表示されます。