Hitachi

TP1/COBOL adapter for Cosminexus ユーザーズガイド


8.2.1 COBOLの各データ項目の設定方法と設定値について

Javaのデータと受け渡しするCOBOLの各データ項目のsetter/getter規則を以下にまとめます。

表8‒6  各データ項目に対応する表示文字列

COBOLデータ項目

setter変換規則

getter変換規則

Javaデータ属性

英字項目

英数字項目

英数字編集項目

数字編集項目

日本語項目

日本語編集項目※6

  1. String文字列をencodeオプション※1に従って変換したバイト配列にする。

  2. 1.の値の長さがCOBOLデータ項目長よりも長い場合は切り捨てられ,短い場合は半角空白が埋められる。

COBOLのデータ値をencodeオプション※1に従って変換したStringオブジェクトを作成する。

文字列データ(String)

日本語項目

日本語編集項目※7

  1. String文字列をencodeオプション※1に従って変換したバイト配列にする。

  2. 1.の値の長さがCOBOLデータ項目長よりも長い場合は切り捨てられ,短い場合はjapaneseオプション※5の指定により,全角空白または半角空白が埋められる。

  3. codeconvオプション※3およびdccm3オプション※4の指定があると,コード変換した文字列前後の機能キャラクタを削除して設定する。

  1. COBOLのデータ値をencodeオプション※1に従って変換したStringオブジェクトを作成する。

  2. codeconvオプション※3およびdccm3オプション※4の指定があると,文字列前後に機能キャラクタを付加してコード変換したStringオブジェクトを作成する。

日本語データ(String)

英字項目

英数字項目

英数字編集項目

数字編集項目

日本語項目

日本語編集項目※6※8

集団項目※10

COBOLのデータ領域にbyte配列の値を無変換で設定する。Byte配列の長さが長い場合は切り捨てられ,短い場合はnull(0x00)が埋められる。

COBOLのデータ領域を無変換でbyte配列にする。

バイト配列データ(byte[])

単精度内部浮動項目

endianオプション※2に従ってデータの並び順を変更する。

endianオプション※2に従ってデータの並び順を変更する。

単精度データ(Float)

倍精度内部浮動項目

倍精度データ(Double)

1〜4けたの小数を含まない2進項目

endianオプション※2またはcomp5オプション※9に従ってデータの並び順を変更する。

endianオプション※2またはcomp5オプション※9に従ってデータの並び順を変更する。

Shortデータ(Short)

5〜9けたの小数を含まない2進項目

Integerデータ(Integer)

10〜18けたの小数を含まない2進項目

Longデータ(Long)

小数を含む2進項目

  • 小数点位置を合わせた2進データを作成する。

  • endianオプション※2に従ってデータの並び順を変更する。

  • 小数点位置を合わせた数字データを作成する。

  • endianオプション※2に従ってデータの並び順を変更する。

10進データ(BigDecimal)

外部10進

  • 符号を除いて,小数点位置を合わせた,数字データを作成する。

  • 独立符号であれば,空白/+/−のどれかを文字データに付加する。そうでなければ,符号付きで負の値の場合は,符号を含むバイト位置の先頭4ビットを0x’7X’とする。

    (*)数値のけた数が項目のけた数よりも大きい場合,けた落ちが発生する。整数けたでは左端の数値から,小数けたでは右端の数値からけた落ちが発生する。

  • 独立符号であれば,空白/+/−のどれかから符号を決定する。そうでなければ,符号を含むバイト位置の先頭4ビットが0x3Xであれば正符号と,0x7Xであれば負符号とし,4ビットを0x’3X’とする。

  • 符号も含めて,小数点位置を合わせた,数字データを作成する。

10進データ(BigDecimal)

内部10進

符号を除いて,小数点位置を合わせた,内部10進項目の形式のデータを作成する。

(*)数値のけた数が項目のけた数よりも大きい場合,けた落ちが発生する。整数けたでは左端の数値から,小数けたでは右端の数値からけた落ちが発生する。

(*)内部10進項目は,1バイトで数字2けたを表現します。各けたは0〜9の数字で,最右端の4ビットで符号を表現する。

確保される領域長は,けた数から算出できる。

領域長=( 桁数 / 2 ) + 1

(小数点以下は切り捨て)

偶数けた数の場合は,先頭の4ビットは0となる。

(*)符号は以下で表現する。

・正符号:0xC (ビット値=1100)

・負符号:0xD (ビット値=1101)

・符号無:0xF (ビット値=1111)

符号なし内部10進項目に負の値を設定しようとすると,エラーになる。

  • 符号部分を取り出し,符号を決定する。符号付き内部10進項目の場合は,符号部分が‘+’/‘−’以外の場合はすべて‘+’とし,符号なし内部10進項目の場合は,常に‘+’とする。

  • 符号以外の数値を数字データにし,符号を付加する。

    (*)偶数けた数の場合は,先頭の4ビットは使用しない。

    (*)数字部分の値が0〜9以外の場合,値は保証できない。

10進データ(BigDecimal)

注※1

encodeオプションについては「5.3.7 encodeオプション」をご覧ください。

注※2

endianオプションについては「5.3.8 endianオプション」をご覧ください。

注※3

codeconvオプションについては「5.3.2 codeconvオプション(Windows/HP-UX/AIX 版だけ)」をご覧ください。

注※4

dccm3オプションについては「5.3.5 dccm3オプション」をご覧ください。

注※5

japaneseオプションについては「5.3.9 japaneseオプション」をご覧ください。

注※6

Bean生成ウィザードまたはBean生成ツール1/3画面で「日本語項目を英数字項目として扱う」チェックボックスをオンにしてTP1/COBOLアクセス用Beanを生成した場合,日本語項目および日本語編集項目は英数字項目と同じ扱いとなります。

注※7

Bean生成ウィザードまたはBean生成ツール1/3画面で「日本語項目を英数字項目として扱う」チェックボックスをオフにしてTP1/COBOLアクセス用Beanを生成した場合,日本語項目および日本語編集項目は日本語項目として扱います。

注※8

Bean生成ウィザードまたはBean生成ツール2/3画面でデータ属性フィールドを「バイト配列データ(byte[])」に変更した場合,バイト配列データとして扱います。

注※9

TP1/COBOLアクセス用Bean生成時にCOMP-5として扱うことを指定した2進項目の場合,comp5オプションに従います。comp5オプションについては,「5.3.4 comp5オプション」をご覧ください。

注※10

COBOLアクセス用Bean生成時に「集団項目のバイト配列アクセスを使用する。」チェックボックスをオンにした場合,バイト配列データとして扱います。