COBOL2002 Cosminexus連携機能ガイド


2.3.2 COBOLアクセス用Bean生成ツールでのバイト配列指定

〈この項の構成〉

(1) 「バイト配列データ(byte[])」または「可変長データ(byte[])」を指定する場合

英数字項目で「バイト配列データ(byte[])」または「可変長データ(byte[])」は,「Bean生成ツール」に表示されるデータ属性の項目を変更して指定します。データ属性が「文字列データ(String)」でない場合,データ属性の項目はリスト表示されません。

[図データ]

「可変長データ(byte[])」が指定できないデータの場合は,[次へ(N)]ボタンを押す際にエラーダイアログを表示します。「バイト配列データ(byte[])」,「可変長データ(byte[])」は,次の条件を満たす場合に指定できます。

  1. 「バイト配列データ(byte[])」,「可変長データ(byte[])」が指定できるデータ項目

    • 英数字項目

    • 英字項目

    • 英数字編集項目

    • 数字編集項目

    • 日本語項目

    • 日本語編集項目

    ただし,日本語項目および日本語編集項目は「COBOLアクセス用Bean生成ツール−ステップ1/3」画面で「日本語項目を英数字項目として扱う。」チェックボックスがオンの場合だけ指定できます。

  2. 「可変長データ(byte[])」が指定できるデータ項目

    • レベルフィールドは01または77レベル

    • 指定句フィールドはREDEFINES句未指定

    • COBOL定義領域長は5バイト以上

(2) 「アドレスデータ項目(byte[])」を指定する場合

アドレスデータ項目を指定します。データ属性に「アドレスデータ(byte[])」と表示されます。

[図データ]

「アドレスデータ(byte[])」が指定できないデータの場合は,[次へ(N)]ボタンを押す際にエラーダイアログを表示します。「アドレスデータ(byte[])」は,次の条件を満たす場合に指定できます。

「アドレスデータ(byte[])」が指定できるデータ項目

(3) 「可変長データ(byte[])」および「アドレスデータ(byte[])」のデータ形式について

「可変長データ(byte[])」および「アドレスデータ(byte[])」を再定義することはできません。指定した場合,再定義項目は従属する下位項目も含めて無視されます。そのため,setter/getterも生成されません。

「可変長データ(byte[])」および「アドレスデータ(byte[])」は,ほかのデータ属性のように指定された領域長でデータアクセスをするのではなく,形式が異なります。形式は,下記のように分割されたデータ領域となります。

[図データ]

COBOLプログラムでは,上記形式でデータを扱ってください。

例1)

登録集原文に「01 V_DATA PIC X(100).」と記述されたデータ項目のデータ属性を,「可変長データ(byte[])」と指定した場合,長さを表す4バイトの2進項目と,96バイトのバイト配列データに分割されます。

したがって,バイト配列データがとりうる(最大データ長+4)バイトの領域長で,データ項目を定義する必要があります。「可変長データ(byte[])」でデータを設定(setter)および取得(getter)する方法については,「8 COBOLアクセス用Beanを呼び出すためのAPI」を参照してください。

例2)

登録集原文に「01 V_DATA USAGE ADDRESS.」と記述指定した場合,長さを表す4バイトの2進項目と,setterで指定された長さ分のバイト配列データの領域になります。

「アドレスデータ(byte[])」でデータを設定(setter)および取得(getter)する方法については,「8 COBOLアクセス用Beanを呼び出すためのAPI」を参照してください。