変換テーブル

設計者 管理者

変換テーブルは、フォームを用いたデータインポートにともなうコード変換で用いられます。変換テーブルの内容は、変換対象のコードと変換先のコードの対応関係を示した表です。どのフォームのインポート処理で、どの変換テーブルを用いるかは、設計者によって、フォームのインポート仕様で指定されます。

変換テーブルは、その名前から推測されるより広く、以下のような用途に用いることもできます:

  • インポートすべきデータの絞り込み

  • インポートデータ中のコードに関する文字列操作(上 x 桁の切り出し、下 x 桁の切り出し、等)

アプリケーションで使用する変換テーブルの種類は設計者が決めます。ひとつのアプリケーション内で、変換テーブルはいくつでも設けることができます。個々の変換テーブルの内容である具体的な変換ルール(変換対象/変換先コード対応表)は、管理者ないし業務実行担当者がメンテナンスします(デフォルト表は管理者、カスタム表は業務実行担当者― 下記参照)。

カスタム表とデフォルト表

設計者は、変換テーブルごとに、「カスタム表」の作成を許すか許さないかを指定できます。カスタム表とは、各業務責任単位が、自分の責任で内容をメンテナンスすることができる表です(各業務責任単位の業務実行権限をもつユーザがメンテナンスできます)。カスタム表の内容は業務責任単位ごとに保持されます。

カスタム表の作成を許す場合でも、管理者はすべての業務責任単位に共通な「デフォルト表」を提供することができます。各業務責任単位は、デフォルト表を使うか、自分のカスタム表を作成するかを選択できます。

カスタム表の作成を許さない場合は、デフォルト表を管理者がメンテナンスし、すべての業務責任単位に一律に適用します。

大文字と小文字の区別及び変換対象コード値の正規化

コード変換処理では、英字の大文字と小文字は区別されません。変換テーブルの変換対象及び変換先のコードパターンはいずれも大文字で登録されます。

インポートデータ上の変換対象コードは以下のように整形されてから変換テーブルを適用されます:

  • 前後の空白は削除されます。

  • 英小文字は英大文字に変換されます。

ワイルドカード

デフォルト表、カスタム表、いずれも内容は、変換対象コードと変換先コードの対応表です。変換対象コードおよび変換先コードの欄で、ワイルドカードとして ? と * を使うことができます。

変換対象コード欄でのワイルドカードの使用

変換対象コード欄でワイルドカードが用いられた場合、? は任意の一文字にマッチし、* は任意の長さの文字列(空文字列を含む)にマッチします。

変換先コード欄でのワイルドカードの使用

変換先コード欄でワイルドカードが用いられた場合、変換対象コード欄での ? および * にマッチした文字または文字列に置換されて変換結果コードが作られます。
変換対象コード欄、変換先コード欄で ? と * が複数用いられた場合、変換対象コード欄の ? は 変換先コード欄の ? と、変換対象コード欄の * は 変換先コード欄の * と、それぞれ前から順に対応付けられます。

ワイルドカードを使用できることの帰結として、ひとつの変換対象コードが、対応表の複数の行(変換ルール)にマッチすることがあり得ます。この場合、表の先頭にもっとも近い行が適用されます。

対象データの絞り込み(読み飛ばし)

変換先コード欄に #IGNORE というキーワードを設定しておくと、その行に合致するデータは、読みとばされます。これをもちいて、インポートするデータを絞り込むことができます。

下記「変換ルールの指定例」の例 2 も合わせてご覧ください。

変換ルールの指定例

ワイルドカードを用いた変換ルールの指定例をご紹介します:

(例 1)接頭語の付加
変換対象コード 変換先コード

*

PL*

コード "1234" は上記の変換対象コードに合致し、変換結果は "PL1234" となります(* = 1234 となるため)。

コード "12345" も上記の変換対象コードに合致し、変換結果は "PL12345" となります(* = 12345 となるため)。

(例 2)上 x 桁を条件とした絞り込み
変換対象コード 変換先コード

12????

12????

*

#IGNORE

コード "123456" は 1 行目の変換対象コードに合致し、変換結果は "123456" となります(最初の ? = 3, 2 番目の ? = 4 …​.. となるため) 。

コード "223456" は 1 行目の変換対象コードに合致せず、2 行目の "*" に合致するため、(#IGNORE により)このコードを含むデータは読み飛ばされます。

コード "12345" も読み飛ばし対象です(1 行目の変換対象コードは、"12" に続いて 4 つの文字があることを要求しているため)。

(例 3)上 x 桁の切り出し
変換対象コード 変換先コード

????*

????

コード "123456" は上記の変換対象コードに合致し、変換結果は "1234" となります。

コード "12345678" も上記の変換対象コードに合致し、変換結果は "1234" となります。

(例 4)下 x 桁の切り出し
変換対象コード 変換先コード

*??

??

コード "123456" は上記の変換対象コードに合致し、変換結果は "56" となります 。

コード "12345678" も上記の変換対象コードに合致し、変換結果は "78" となります 。

(例 5)下 x 桁の除去
変換対象コード 変換先コード

*??

*

コード "123456" は上記の変換対象コードに合致し、変換結果は "1234" となります。

コード "12345678" も上記の変換対象コードに合致し、変換結果は "123456" となります。