ここではテンプレートセットの文法や書式など、具体的な記述方法について説明します。
テンプレートセットを利用してサービスアダプタのコンフィグを作成するためには以下の手順が必要です。
まず初めに任意の名前を付けて「テンプレートセット」を作成します。
モジュール ID を指定して「テンプレートコンフィグ」を作成します。 複数のモジュール ID についてテンプレートコンフィグを作成することも可能です。 なお、テンプレートセットは対象のモジュールがコマンドライン形式の場合のみ使用することができます。
作成後、サービスアダプタに適用するコンフィグの元となる内容を後述の「テンプレート変数」や「マクロコマンド」を交えて記述します。
テンプレートセットに所属するサービスアダプタを割り当てます。 サービスアダプタはいずれか 1 つのテンプレートセットにのみ割り当てることが可能です。
テンプレートセットの展開時に置き換えられる「テンプレート変数」を作成します。
テンプレート変数の内容を変更します。
「設定変更」、「入力フォーマット変更」、「SA変数変更」のボタンによって値の設定ができます。
変数ラベル
デフォルト値
高度な設定
高度な設定を押下した場合
警告
高度な設定の注意事項
高度な設定はエンドユーザによる変数の変更およびコンフィグ反映を許可する項目になります。
画面については「 簡易操作用画面 」を参照してください。
許可しない変数に対して設定はしないように注意してください。
エンドユーザへの権限追加が必要になります。
権限については「 エンドユーザアカウント 」を参照してください。
入力フォーマット
選択項目追加(選択式のみ)
注釈
選択式について
選択式はSA変数に対して、プルダウンの選択ができるようになります。
最大10個の項目が追加可能です。
決められた値でかつ更新頻度が高い変数に対して設定すると変更が安易にできます。
各SAの変数変更
注釈
選択式の入力について
変数に何も設定されていない場合は「(デフォルト値)」が表示されます。
入力フォーマットに入力された「選択項目名」がプルダウンとして表示されます。
「自由入力」と「選択式」の切り替えは入力欄下のリンクを押下することで可能になります。
テンプレートセットの内容をサービスアダプタに適用するには「コンフィグの反映」操作を行います。 サービスアダプタがテンプレートセットに所属していればテンプレートセットを展開した内容が、所属していなければサービスアダプタ個別の作業コンフィグの内容がそれぞれ反映されます。
テンプレートコンフィグの中には「マクロコマンド」を記述することができます。 マクロコマンドの文法は以下の通りです。
特定の条件に従い、出力する文字列を変更できます。
#if (【評価式1】)
strings 1
#elseif (【評価式2】)
strings 2
#else
strings 3
#end
評価式ではテンプレート変数の値を比較します。 比較条件には「一致 (==)」または「不一致 (!=)」が使用できます。 例えばテンプレート変数 ${var_1} の値が文字列 value_1 と一致するかどうか比較する場合は「#if (${var_1} == "value_1")」と記述します。
#elseif 及び #else は省略することができます。 また、#elseif は複数行記述することもできます。
テンプレートセットに所属しているすべてのサービスアダプタについてループ処理を行い、テンプレート変数の値を順に抽出できます。
#foreach(${【ループ変数名】} in ${【テンプレートセット名】})
strings 1 ${【ループ変数名】.【テンプレート変数名1】}
strings 2 ${【ループ変数名】.【テンプレート変数名2】}
strings 3 ${【ループ変数名】.【テンプレート変数名3】}
#end
「ループ変数」は該当の foreach 文の中でのみ参照される変数です。ループ変数名には任意の変数名を記述することができます。
テンプレートセット名には自身の名前のほか、別のテンプレートセットの名前を指定することも可能です。
foreach 文は 2 段階までネストすることができます。
テンプレートコンフィグ中に任意のコメントを記述できます。
## this line is comment
コメントはコンフィグの反映時に出力されません。 特定の行のコンフィグを一時的に無効としたい場合にも利用できます。
コメントは行末に記述することもできます。
this is config ## this is comment
また、複数行に渡るコメントを記述することも可能です。
#* this line is comment
and this line is comment too *#
「テンプレート変数」はテンプレートコンフィグの文中で参照される変数です。 変数名を文中に記述すると、コンフィグの反映時に自動的に変数値が展開されて出力されます。
テンプレート変数の記述は以下の形式で行います。
${【テンプレート変数名】}
テンプレート変数は「デフォルト値」とサービスアダプタごとの「個別値」を持ちます。 テンプレートセットの展開時にサービスアダプタごとの個別値が存在する場合は優先して読み出され、存在しない場合はデフォルト値が読み出されます。
テンプレートセットには通常のテンプレート変数に加えて「システム定義変数」があらかじめ定義されています。 システム定義変数の種別は以下の通りです。
${loopCount}
マクロコマンド「foreach」内でのみ使用できます。 ループ処理が行われる毎にインクリメントされます。 初期値は「0」から開始されます。
${system.sa_code}
対象のサービスアダプタの「SAコード」が出力されます。 ユニークな識別子として利用することができます。 マクロコマンド「foreach」内で使用する場合は以下のように記述します。
${【ループ変数名】.system.sa_code}
${sa_working_config_【モジュールID】}
対象のサービスアダプタに設定された「作業コンフィグ」が出力されます。 末尾の「モジュールID」で指定したIDを持つモジュールの「作業コンフィグ」が読み出されます。 例えばモジュール ID が 0 の作業コンフィグを読み出す場合は「${sa_working_config_0}」と記述します。 コマンドライン形式のモジュールのみ対応しています。
${system.sharp}
「#」文字が出力されます。 テンプレートコンフィグ中に「コメント」マクロコマンドと一致する文字列を記述する場合に利用することができます。
テンプレートコンフィグ内において、定義済のテンプレート変数やマクロコマンドと一致する文字列を出力する必要がある場合、先頭に「\」を記述します。 但しコメントに関してはエスケープ処理を適用できません。 テンプレートコンフィグ中に「##」や「#*」を含む文字列を記述する必要がある場合は、システム定義変数「${system.sharp}」を使用してください。
this is config and parameter is \${var}
this is config and parameter is \#if
テンプレートセットの各設定値のうち、「テンプレート変数」と「テンプレート所属 SA」の設定値は CSV ファイルによるインポート/エクスポートに対応しています。 エクスポートした CSV ファイルは Excel やテキストエディタなどのアプリケーションを使って編集できます。 編集した CSV ファイルをインポートすると、「テンプレート変数」と「変数ラベル」、「入力フォーマット」、「エンドユーザによる変更操作の権限」、「テンプレート所属 SA」の設定値が上書きされます。
CSV ファイルのフォーマットは以下の通りです。 テンプレート変数名の順序は記述された順に保持されます。
インポート時には [sa_label] 列の値は無視されます。また列ごと省略することも可能です。
[name] ,[sa_label],variableA ,variableB ,variableC , ...
[label] , ,変数A ,変数B ,変数C , ...
[edit_format] , , , , , ...
[edit_enabled] , ,false ,false ,false , ...
[default] , ,defaultValue,defaultValue,defaultValue, ...
SA-code1 ,SA-label1 ,value ,value ,value , ...
SA-code2 ,SA-label2 ,value ,value ,value , ...
SA-code3 ,SA-label3 ,value ,value ,value , ...
:
:
エクスポート時、マルチバイト文字は Shift-JIS 形式で出力されます。
インポート時にマルチバイト文字を含む場合は同様に Shift-JIS 形式のみをサポートしています。
CSV エクスポート直後の状態の例です。 次の例ではこの状態を元に変更を加える方法について説明しています。
[name],[sa_label],var_A,var_B,var_C
[label],,変数A,変数B,変数C
[edit_format],,,,
[edit_enabled],,false,false,false
[default],,default_A,,default_C
tssXXXXXXX1,拠点1,A-1,B-1,C-1
tssXXXXXXX2,拠点2,A-2,B-2,
tssXXXXXXX3,拠点3,,B-3,
tssXXXXXXX4,拠点4,,B-4,
tssXXXXXXX5,拠点5,A-5,B-5,C-5
CSV ファイル内の各変数値の値を書き換えることで変更が適用されます。
次の例では変数値 A-1 を A-1-modified に変更しています。
[name],[sa_label],var_A,var_B,var_C
[label],,変数A,変数B,変数C
[edit_format],,,,
[edit_enabled],,false,false,false
[default],,default_A,,default_C
tssXXXXXXX1,拠点1,A-1-modified,B-1,C-1
tssXXXXXXX2,拠点2,A-2,B-2,
tssXXXXXXX3,拠点3,,B-3,
tssXXXXXXX4,拠点4,,B-4,
tssXXXXXXX5,拠点5,A-5,B-5,C-5
さらにテンプレート変数 var_C の tssXXXXXXX3 の個別値 C-3 を新しく設定します。
[name],[sa_label],var_A,var_B,var_C
[label],,変数A,変数B,変数C
[edit_format],,,,
[edit_enabled],,false,false,false
[default],,default_A,,default_C
tssXXXXXXX1,拠点1,A-1-modified,B-1,C-1
tssXXXXXXX2,拠点2,A-2,B-2,
tssXXXXXXX3,拠点3,,B-3,C-3
tssXXXXXXX4,拠点4,,B-4,
tssXXXXXXX5,拠点5,A-5,B-5,C-5
[name] 行に変数名列を追加することで変数定義を追加することができます。 列を追加/削除した場合はすべての行で要素数を一致させる必要があります。
次の例では変数 var_D を新しく追加し、デフォルト値と個別値を設定しています。
[name],[sa_label],var_A,var_B,var_C,var_D
[label],,変数A,変数B,変数C
[edit_format],,,,
[edit_enabled],,false,false,false
[default],,default_A,,default_C,default_D
tssXXXXXXX1,拠点1,A-1,B-1,C-1,D-1
tssXXXXXXX2,拠点2,A-2,B-2,,D-2
tssXXXXXXX3,拠点3,,B-3,,D-3
tssXXXXXXX4,拠点4,,B-4,,
tssXXXXXXX5,拠点5,A-5,B-5,C-5,
SA コード行を追加/削除することでテンプレート所属 SA の設定を変更することができます。
次の例では tssXXXXXXX3 の割り当てを解除し、さらに新しく tssXXXXXXX6 の割り当てを追加しています。
[name],[sa_label],var_A,var_B,var_C
[label],,変数A,変数B,変数C
[edit_format],,,,
[edit_enabled],,false,false,false
[default],,default_A,,default_C
tssXXXXXXX1,拠点1,A-1,B-1,C-1
tssXXXXXXX2,拠点2,A-2,B-2,
tssXXXXXXX4,拠点4,,B-4,
tssXXXXXXX5,拠点5,A-5,B-5,C-5
tssXXXXXXX6,拠点6,A-6,B-6,C-6
テンプレートセットを使用する際の設定例を記載します。
例としてテンプレートセット「template_set_1」を作成します。
ここではモジュール 0 及びモジュール 1 についてサービスアダプタのコンフィグを設定するものと仮定します。 それぞれのモジュールについて以下のようにテンプレートコンフィグを作成します。
モジュール 0
command_1 this is an example
#if (${param_pattern} == "name_only")
command_2 ${name}
#elseif (${param_pattern} == "name_and_address")
command_2 ${name} ${address}
#end
#foreach (${l} in ${template_set_1})
command_3 ${l.name}_${loopCount} ${l.address}
#end
モジュール 1
#if (${use_module_1} == "true")
<sample>
<param_1>value_1</param_1>
<param_2>value_2</param_2>
<param_3>value_3</param_3>
</sample>
#end
以下の 3 台のサービスアダプタを template_set_1 に割り当てます。
SA コード |
Distribution ID |
---|---|
tssXXXXXXX1 |
0001-0000-0000-0000-0000-0000-0000-0001 |
tssXXXXXXX2 |
0001-0000-0000-0000-0000-0000-0000-0002 |
tssXXXXXXX3 |
0001-0000-0000-0000-0000-0000-0000-0003 |
以下のテンプレート変数を作成し、デフォルト値、個別値をそれぞれ設定します。
- |
address |
name |
param_pattern |
use_module_1 |
---|---|---|---|---|
デフォルト値 |
name_only |
true |
||
tssXXXXXXX1 |
10.0.0.1 |
SA1 |
name_and_address |
|
tssXXXXXXX2 |
10.0.0.2 |
SA2 |
||
tssXXXXXXX3 |
10.0.0.3 |
SA3 |
false |
コンフィグの反映を行うとテンプレートセットの展開が行われ、以下のコンフィグがそれぞれのサービスアダプタに適用されます。
tssXXXXXXX1
モジュール 0
command_1 this is an example
command_2 SA1 10.0.0.1
command_3 SA1_0 10.0.0.1
command_3 SA2_1 10.0.0.2
command_3 SA3_2 10.0.0.3
モジュール 1
<sample>
<param_1>value_1</param_1>
<param_2>value_2</param_2>
<param_3>value_3</param_3>
</sample>
tssXXXXXXX2
モジュール 0
command_1 this is an example
command_2 SA2
command_3 SA1_0 10.0.0.1
command_3 SA2_1 10.0.0.2
command_3 SA3_2 10.0.0.3
モジュール 1
<sample>
<param_1>value_1</param_1>
<param_2>value_2</param_2>
<param_3>value_3</param_3>
</sample>
tssXXXXXXX3
モジュール 0
command_1 this is an example
command_2 SA3
command_3 SA1_0 10.0.0.1
command_3 SA2_1 10.0.0.2
command_3 SA3_2 10.0.0.3
モジュール 1
(N/A)
ここまでがテンプレートセットを使用する上での基本的な操作の流れになります。 以降、サービスアダプタの割り当てやテンプレート変数値の変更を行いコンフィグの反映を行う度に、自動的にその内容に応じたコンフィグが出力されます。