ここでは、機能追加、および仕様変更に関連した互換情報について記載します。
変更内容
以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、「キーフィールドが存在しないレコードが入力されました.」というエラーメッセージを出力して終了していました。
テキストファイル浮動フィールド指定である。かつ、
キーフィールドが存在しないレコードが入力された。
PowerSORT V6.0.0では、テキストファイル固定フィールド指定の場合と同様に、キーフィールドの値を0x00として処理するように変更しました。
対処方法
ありません。
変更内容
以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、エラーメッセージを出力して終了していました。
先入力先出力(FIFO)機能を指定している。かつ、
同時にコピー機能、レコード集約機能、またはサプレス機能を指定している。
PowerSORT V6.0.0では、先入力先出力(FIFO)機能の指定を無視して動作するように変更しました。
対処方法
ありません。
変更内容
以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、同一なキーフィールドを持つレコードをレコード入力順に並べていました。
マージ機能を指定している。かつ、
同時に先入力先出力(FIFO)機能を指定している。
PowerSORT V6.0.0では、先入力先出力(FIFO)機能の指定を無視して動作するように変更しました。同一なキーフィールドを持つレコードは、入力ファイルの指定順(同一ファイル内のレコードは、ファイル内の順)に出力されます。
また、以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、同一なキーフィールドを持つレコードの中から、レコード入力順の最初、または最後のレコードを出力していました。
bsortexコマンドを使用している。かつ、
マージ機能を指定している。かつ、
レコード集約機能、またはサプレス機能を指定している。かつ、
firstオペランド、またはlastオペランドを指定している。
PowerSORT V6.0.0では、同一なキーフィールドを持つレコードの中から、入力ファイルの指定順(同一ファイル内のレコードは、そのファイル内の順)の最初、または最後のレコードを出力するように変更しました。
対処方法
ありません。
参考
マージ機能では、各入力ファイルから1レコードずつ入力し、指定されたキーフィールドの順に出力ファイルへ出力していきます。また、次のレコード入力は、出力されたレコードが属していた入力ファイルから行われます。このため、レコードの入力順は、各入力ファイル内のレコードによって変わります。この結果、PowerSORT V5.0L10、およびV5.0L20でマージ機能に先入力先出力(FIFO)機能を組み合わせて指定した場合、またはマージ機能にレコード集約機能、またはサプレス機能を組み合わせて指定し、firstオペランド、またはlastオペランドで出力するレコードを指定した場合、処理する入力ファイルによって結果が異なっていました。
変更内容
以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、富士通COBOLファイルシステムによって、指定した最大レコード長を超える部分が切り捨てられることがありました。
入力ファイルシステムが、富士通COBOLファイルシステム(順ファイル)、富士通COBOLファイルシステム(BSAM対応順ファイル)、または富士通COBOLファイルシステム(索引ファイル)である。かつ、
レコード形式が可変長レコード形式である。かつ、
指定した最大レコード長より長いレコードが存在する。
PowerSORT V6.0.0では、「ファイル(※ファイル名)からのレコード入力中にエラー(miss match record-length)が発生しました.」というエラーメッセージを出力して終了するように変更しました。
対処方法
ありません。
富士通COBOLファイルシステム(順ファイル)、富士通COBOLファイルシステム(BSAM対応順ファイル)、または富士通COBOLファイルシステム(索引ファイル)の可変長レコード形式のファイルを処理する場合、レコード長には、実際の最大レコード長以上を指定してください。
変更内容
PowerSORT V5.0L10、およびV5.0L20では、「+0」と「-0」を表現できるデータ形式において、「+0」と「-0」は異なる値として処理(ソート機能、マージ機能、およびレコード選択機能)していました。
PowerSORT V6.0.0では、同値として処理するように変更しました。
対処方法
PowerSORT V6.0.0で、PowerSORT V5.0L10、およびV5.0L20と同様に「+0」と「-0」を異なる値として処理する場合は、環境変数BSORT_SIGNEDZEROにEFFECTを指定してください。
参考
「+0」と「-0」を表現できるデータ形式を以下に示します。
内部10進数
外部10進数
前置別符号付数字
後置別符号付数字
前置オーバパンチ符号付数字
後置オーバパンチ符号付数字
テキストファイルのとき、キーフィールド、および選択フィールドの操作としてn(BSOPT_NUMERIC)を指定した場合、またはキーフィールドの操作としてN(BSOPT_CHARNUM)を指定した場合
変更内容
PowerSORT V5.0L10、およびV5.0L20では、メッセージはメッセージ本文だけを出力していました。
PowerSORT V6.0.0では、メッセージは、メッセージ種別、日時、メッセージ番号、およびメッセージ本文を出力するように変更しました。
対処方法
PowerSORT V6.0.0で、PowerSORT V5.0L10、およびV5.0L20と同様にメッセージ本文だけを出力したい場合は、環境変数BSORT_MSGSTYLEに1を指定してください。
変更内容
以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、「一時ファイルの容量が足りません.」というエラーメッセージを出力して終了していました。
ソート機能を指定している。かつ、
一時ファイルの容量不足を検出した。
PowerSORT V6.0.0では、「一時ファイルの容量が足りません.」というエラーメッセージに続いて、「一時フォルダ(※フォルダ名)を使用しました.」(注1)、または「一時ファイル(※ファイル名)を使用しました.」(注2)というエラーメッセージを出力するように変更しました。
注1) 一時ファイルを作成するフォルダ名を指定した場合に出力されます。
注2) 一時ファイルのファイルパス名を指定した場合に出力されます。
対処方法
ありません。
変更内容
以下の条件のとき、PowerSORT V5.0L10、およびV5.0L20では、環境変数BSORT_MSGLEVELの指定に関わらず、「メッセージを何も出力しない」という設定で動作していました。
bsortコマンドを使用している。かつ、
処理定義ファイルオプション(-P)を指定している。
PowerSORT V6.0.0では、環境変数BSORT_MSGLEVELの指定に従うよう変更しました。
対処方法
PowerSORT V6.0.0で、PowerSORT V5.0L10、およびV5.0L20と同様に「メッセージを何も出力しない」という設定で動作させる場合は、環境変数BSORT_MSGLEVELにNを指定してください。
変更内容
PowerSORT V5.0L10、およびV5.0L20では、環境変数BSORT_EVENTLOGにYESを指定した場合にアプリケーションログへ出力されるメッセージは、以下の表のとおりでした。また、イベントIDとしてBSORT関数のエラー詳細コード(errdetail)を設定していました。
イベントID | メッセージ |
---|---|
52 | PowerSORTの動作に必要なメモリを確保できませんでした。 |
200 | ファイルからレコードの読込み中にエラーが発生しました。 |
201 | ファイルへのレコード書込み中にエラーが発生しました。 |
224 | 一時ファイルへの書込み中にエラーが発生しました。 |
225 | 一時ファイルからの読込み中にエラーが発生しました。 |
231 | COBOLのファイルシステムのエラーが発生しました。 |
243 | COBOL索引ファイルシステムでエラーを検出しました。 |
250 | PowerSORTの処理に誤りがあります。 |
PowerSORT V6.0.0では、8.1.4 アプリケーションログへの出力メッセージに記載されているメッセージを出力するよう変更しました。また、イベントIDとしてメッセージ番号を設定するように変更しました。
対処方法
ありません。
変更内容
PowerSORT V6.0.0では、BSORT関数における各構造体のメンバーに設定可能な定義値を以下のように変更しました。
構造体 | メンバー | V5.0L20以前の定義値 | V6.0.0の定義値 |
---|---|---|---|
BSRTPRIM | keyoption | BS_BLANK | BSOPT_BLANK |
BS_DICTIONARY | BSOPT_DICTIONARY | ||
BS_IGNORE | BSOPT_IGNORE | ||
BS_JUNBO | BSOPT_JUMBO | ||
BS_NUMERIC | BSOPT_NUMERIC | ||
BS_CHARNUM | BSOPT_CHARNUM | ||
keyoption2 | BS_WCHR | BSOPT2_WCHR | |
BSKEY | key_option | BSOPT_B | BSOPT_BLANK |
BSOPT_D | BSOPT_DICTIONARY | ||
BSOPT_I | BSOPT_IGNORE | ||
BSOPT_J | BSOPT_JUMBO | ||
BSOPT_N | BSOPT_NUMERIC | ||
BSOPT_LN | BSOPT_CHARNUM | ||
key_option2 | BSOPT2_W | BSOPT2_WCHR | |
BSSELE | sele_option | BSOPT_B | BSOPT_BLANK |
BSOPT_D | BSOPT_DICTIONARY | ||
BSOPT_I | BSOPT_IGNORE | ||
BSOPT_J | BSOPT_JUMBO | ||
BSOPT_N | BSOPT_NUMERIC | ||
sele_option2 | BSOPT2_W | BSOPT2_WCHR |
対処方法
以前のバージョンとの互換のため、V5.0L20以前の定義値もV6.0.0で使用可能です。このため、以前のバージョンで作成したソースを修正する必要はありません。