変換テーブル
変換テーブルは、フォームを用いたデータインポートにともなうコード変換で用いられます。変換テーブルの内容は、変換対象のコードと変換先のコードの対応関係を示した表です。どのフォームのインポート処理で、どの変換テーブルを用いるかは、設計者によって、フォームのインポート仕様で指定されます。
変換テーブルは、その名前から推測されるより広く、以下のような用途に用いることもできます:
-
インポートすべきデータの絞り込み
-
インポートデータ中のコードに関する文字列操作(上 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" となります。