1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

データ変換ツールDTRの最新バージョン5R22Vが2026年3月23日にリリースされました。DTRは、文字コード(UTF-8/Shift-JIS等)やファイル形式・レイアウト差異(CSV/固定長/可変長/DB)を吸収し、システム間データ連携を安定・効率的に実現するデータ変換ツールです。個別実装や属人化しがちな変換処理をパッケージ・ソフトウェアで共通化し、開発・保守負荷の軽減に貢献します。1

今回の5R22Vは、以下のプラットフォーム向けに提供されています。
・DTRII 5R22V(Windows用)
・DTR/Linux 5R22V(Red Hat Enterprise Linux, Amazon Linux用)

この記事では5R22Vの新機能を紹介します。

バージョン呼称

DTRのバージョン表記は「<数字>R<数字><アルファベット>」の形式です。

最初の数字はメジャーバージョンです。メジャーバージョンは製品コンセプトが大きく変わる場合に変更されます。メジャーバージョン4から5の変更時にWindows版DTRは製品名がDTR/NTからDTRIIに改称され、GUI機能が追加されました。2

次のRはReleaseの頭文字です。何故わざわざ「R」を入れているか。理由は二つあります。
第一に人間が見て一瞬で区切りが分かることです。
第二に会話で読み上げやすいことです。「5の22V」よりも「5アール22V」の方が伝わりやすいためです。

後半の数字とアルファベットはマイナーバージョンです。DTRはマイナーバージョンを1A, 2B, 3C, 4D, 5Eという形で進めます。数字とアルファベットを一緒にインクリメントします。数字とアルファベットをセットにすることで、マイナーバージョンの相違が一目でわかります。

新機能

5R22Vでは以下の新機能が加わっています。

  • CSVファイルで改行を含む項目の変換に対応
  • 環境設定ファイルや実行結果の表示機能追加
  • cm compatible対応
  • テキスト最大行サイズの自動拡大
  • ヘルプファイルの更新
  • GUIグラフ表示機能強化(DTRIIのみ)
  • f/v型項目のDB対応(DTRIIのみ)

CSVファイルで改行を含む項目の変換に対応

CSVファイルで、ダブルクォーテーション(“)で囲まれた項目の中に存在する改行コード(「0d0a」「0a」)を、項目の一部として処理できるようになりました。

CSVファイルはシンプルなフォーマットですが、RFC 4180で仕様が定義されています。改行はレコードの区切りとすることが原則ですが、ダブルクォーテーションで囲まれた中にある改行はデータとして扱います。

5R22Vでは、この仕様に対応しました。問い合わせ内容や備考欄、自由記述フィールドのように人間が入力する項目では改行が入ることは自然です。フォーム入力などから吐き出されるCSVを、前処理なしで安全に取り込めます。

環境設定ファイルや実行結果の表示機能追加

実行オプションに-pを付すと、環境設定ファイル(dtrconf)のパスと内容、実行結果(dtrmsg)の内容をコマンドラインに表示します。これにより、デバッグや設定確認が容易になります。

以下はDTRIIでの実行結果の例です。

コマンドプロンプト
C:\a>C:\dtr\dtrnt.exe '{c10 m30 v20,v20}' -V -A -S user.csv -V -A -S user-hash.csv -p
c:\dtr\dtrconf
rn 1 1


BIPROGY データ変換プログラム
データ変換終了(5R22V)

入力ファイル名--user.csv
入力レコード数:         1
出力ファイル名--user-hash.csv
出力レコード数:         1

「C:\dtr」はDTRのデフォルトの導入ディレクトリです。
「c:\dtr\dtrconf」がdtrconf のパスです。
「rn 1 1」がdtrconfの内容です。「rn」は変換データへ順序番号を挿入する場合の設定です。最初の1が初期値、次の1が増分値です。
「BIPROGY データ変換プログラム」以下が実行結果(dtrmsg)の内容です。

cm compatible対応

シフトコードを含む cc 変換、mm 変換で5R19S までの変換と同等にするオプション cm compatible が追加されました。このオプションは環境設定ファイル(dtrconf)に指定します。

シフトコードは1バイトコード(狭義の文字コード)と2バイトコード(漢字コード)が混在するレコードで各々を区別するために、EBCDIC系コードセットで使用される制御文字です。2バイトコードが始まる前にシフトアウトを設定し、2バイトコードが終わった後にシフトインを設定します。

エフティーアドニャンのシフトイン・シフトアウト説明

この画像はシフトコードを説明するイメージ図です。自作キャラクター「エフティーアドニャン」を元に生成AIで作成しました。

cm compatibleの指定有無によってシフトコードを項目の長さに含めるか否かの差が生じます。

  • デフォルト(指定なし):5R20T からの変換方法に従い、シフトコードは項目の長さに含まれません。
  • cm compatible:5R19Sまでの変換方法に従い、シフトコードは項目の長さに含まれます。

テキスト最大行サイズの自動拡大

テキスト変換で変換指示を指定しない場合、1行100000バイトまでという制限がなくなり、無制限となりました。この改善によって「長すぎる1行」という理由だけで処理が止まることがなくなりました。

エンタープライズのデータ連携では入力データはしばしば以下の状況に直面します。

  • 自分たちで作っていない
  • 仕様書より現物が優先

行サイズ制限が実質なくなることで、想定外のデータや「たまたま長くなった1行」もツールが処理してくれます。

ヘルプファイルの更新

DTRコマンドのヘルプオプション「-?c」を指定したときに表示される内容に、f型項目(先頭符号付き10進数、3桁カンマ区切り)とv型項目(ハッシュ値)が追加されました。

以下はDTRIIでの実行結果です。

コマンドプロンプト
C:\dtr>dtrnt -?c

        b       バイナリ
        c       文字
        d       符号付き10進数(末尾)(COBOLのS9タイプ)
        e       符号付き10進数(先頭)(COBOLのS9 SIGN LEADINGタイプ)
        h       日付時刻
        k       漢字(長さはバイト数で指定します。1文字=2バイト)
        m       ANK漢字混合項目
        n       型なし(無変換項目)
        p       パック形式(符号桁は0xCまたは0xD)
        q       符号なしパック形式(符号桁は0xF)
        s       先頭符号付き10進数
        f       先頭符号付き10 進数(3 桁カンマ区切り)
        t       2進数表現(“0”と“1”)
        u       符号なしバイナリ(長さは最大8バイトまで)
        v       ハッシュ値
        x       16進数表現(“0”~“9”と“A”~“F”)
        i       符号なしビット数値項目(UHMDEファイルにのみ指定可能)
        j       符号付きビット数値項目(UHMDEファイルにのみ指定可能)
        z       出力スキップ(出力せずに入力項目位置を進める)

GUIグラフ表示機能強化(DTRIIのみ)

GUI画面のグラフ表示機能では簡易画面と詳細画面を選択できます。従来は詳細画面のみでしたが、新たに簡易画面を選択できるようになりました。簡易画面は一画面で変換の全体像を把握でき、便利です。

例えばGUIで以下の項目を定義します。

DTR項目定義
{c8,11c8 k10,1k10 s8,33s8 c2,"AB"}

これは以下の変換を意味します。

  • 入力レコード11バイト目からの文字8バイトを設定
  • 入力レコード1バイト目からの漢字10バイトを設定
  • 入力レコード33バイト目からの先頭符号10進数8バイトを設定
  • 固定文字列"AB"を設定

GUI画面は以下になります。
DTR GUI画面

GUIの「グラフ表示」ボタンを押すと簡易画面が表示されます。
DTRグラフ簡易画面

詳細画面にチェックを入れると詳細画面が表示されます。
DTRグラフ詳細画面

詳細画面では1マスが1バイトになっています。今回のような40バイトほどのレコードでも横スクロールしなければ全体を確認できません。
DTRグラフ詳細画面スクロール

過去バージョンでは詳細画面に相当する表示のみでした。簡易画面によってスクロールしなくても全体像を把握できるようになりました。

f/v型項目のDB対応(DTRIIのみ)

DB連携でf型項目(先頭符号付き10進数、3桁カンマ区切り)とv型項目(ハッシュ値)が利用できるようになりました。

f型項目(先頭符号付き10進数、3桁カンマ区切り)は、「+1,234,567」や「-98,765」のような帳票・業務データでおなじみの数値表現です。カンマで桁が読みやすく、人間には優しいですが、DB的には「いや、そのままじゃ数値じゃないよね?」と門前払いされる危険があるものです。5R22Vでは一旦カンマを除去して数値化のような前処理をしなくても処理できるようになりました。

v型項目(ハッシュ値)はDB入力(DBからのデータ取得)をサポートします。DBテーブルに格納されているパスワードなどの機密情報や生年月日などの個人情報をハッシュ値にして出力できます。

EOS情報

DTRのサポート期限はマイナーバージョンのレベルで定められます。ルールは新バージョンのリリースから5年後の月末です。

5R22Vのリリースにより、前バージョン5R21UのEOS: End of Supportが確定しました。2031年3月31日になります。

5R22Vは次のバージョンがリリースされるまでサポート停止日は未定です。過去の実績では毎年3月または4月に新バージョンがリリースされています。

まとめ

5R22Vは実運用で遭遇しやすいデータのばらつき(改行を含むCSV、長大行、カンマ区切り数値など)を考慮した機能強化がなされています。前処理や個別実装に頼らない安定したデータ変換がより行いやすくなりました。机上のデータではなく、現実のデータと向き合うエンジニア向けのアップデートになっています。

We Are Hiring!

  1. データ変換DTR
    https://www.biprogy.com/solution/service/dtr.html

  2. DTRとデータ変換の歴史
    https://qiita.com/rhaya/items/6ac6496a0178c99fcc94

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?