RangeTable
CSV形式の範囲テーブルを読み込み、入力をキーとして範囲に対応する値を返します。
範囲テーブルは「最小値,最大値,値」の形式を1行として作成されたテーブルとなります。
■入力/出力
接続数: 1
| 入力 | データ型 | 説明 |
| 入力1 | String | キーとなる文字列 |
| 出力 | データ型 | 説明 |
| 出力1 | String | キーに対応する文字列 |
■プロパティ
| 名前 | プロパティ型 | 説明 |
| テーブルの指定方法 | choice | 使用するテーブルをファイルから読み込むか、直接入力するかを指定します。
| ファイル [File]
| - |
ファイルから読み込んだテーブルを使用します。
|
| 直接入力 [Inline]
| - | テーブルの内容に直接入力したテーブルを使用します。
|
|
| 範囲の形式 | choice | 範囲の形式を選択します。
| 最小値≦X<最大値 [GELT]
| - |
最小値以上、最大値未満をキーに一致させる範囲とします
|
| 最小値≦X≦最大値 [GELE]
| - |
最小値以上、最大値以下をキーに一致させる範囲とします
|
|
| ファイルパスの起点 | pathResolver | テーブルファイルの相対パスの起点を指定します。
- プロジェクトフォルダ [Relative]
- プロジェクトファイルと同じフォルダを起点とします。
- ホームディレクトリ [ProjectOwner]
- ホームディレクトリを起点とします。
- 実行ユーザーのホームディレクトリ [ExecuteUser]
- 実行ユーザーのホームディレクトリを起点とします。
|
| ファイルパス | remoteFile | テーブルの指定方法が「ファイル」の場合に、テーブルファイル名をファイルパスで指定します。 ファイルパスで指定できるのは、ユーザーのホームディレクトリ以下のファイルのみです。
|
| ファイルのエンコーディング | choice | テーブルの指定方法が「ファイル」の場合に、テーブルファイルのエンコーディングを指定します。
| 自動判別 [(AutoDetect)]
| - |
自動判別します
|
| utf-8 [utf-8]
| - |
unicode utf-8
|
| shift_jis [shift_jis]
| - |
シフトJIS
|
| euc-jp [euc-jp]
| - |
EUC-JP
|
| iso-2022-jp [iso-2022-jp]
| - |
ISO-2022-JP
|
| Windows-31J [Windows-31J]
| - |
Windows 日本語
|
| utf-16 [utf-16]
| - |
unicode utf-16
|
|
| テーブルの内容 | string | テーブルの指定方法が「直接入力」の場合に、使用するテーブルを直接入力します。
|
| 最小値列の位置 | int |
範囲の最小値として使用する列を指定します。
列のインデックスは1ベースです。
|
| 最大値列の位置 | int |
範囲の最大値として使用する列を指定します。
列のインデックスは1ベースです。
|
| 値列の位置 | int |
値列(キーに対応して出力する列)として使用する列を指定します。
列のインデックスは1ベースです。
|
| キーが無い場合 | choice | テーブルにキーがない場合の動作を指定します。
| Null [Null]
| - |
nullを出力します。
|
| 入力をそのまま出力 [Key]
| - |
入力キー文字列をそのまま出力します。
|
| 固定値を出力 [DefaultValue]
| - | 固定値の値を出力します。
|
| エラーを発生 [Exception]
| - |
エラーを発生します。
|
|
| 固定値 | string |
「キーが無い場合」が「固定値を出力」の場合の出力値を指定します。
|
■備考
- 検索テーブルの内容について
検索テーブルの範囲に重複する部分がある場合、エラーとなります。「テーブルの指定方法」が「直接入力」の場合、コンパイル時にエラーとなり、「ファイル」の場合、実行時にエラーとなります。
- テーブルファイルの参照されるタイミングについて
指定したテーブルファイルの内容はリクエスト内での最初の関数呼び出し時に読み込まれます。
同じリクエスト内の同一関数ではこのとき読み込まれたものがリクエスト終了まで使用されます。
つまり、ループやサブフローなどで同一リクエスト内で同一関数が複数回呼び出される場合は最初に読み込まれた内容がリクエスト終了まで使用されます。
読み込み時にはテーブルファイルの更新チェックを行いますので、テーブルファイルが更新されなければ次のリクエスト時でも再読み込みは行われません。