単純なアクセスに加えて、構成を使用して、ワークフロー マークアップのさまざまなバージョンを生成できます。たとえば、複数のテキスト入力でループを使用してマークアップを生成したり、チェックボックス入力に応じて条件付きでマークアップを生成したりできます。
ヘルパー関数は、多くの場合、この目的に最適です。次のセクションでは、使用可能なヘルパーとその使用方法について説明します。
以下は、キーワードとその説明のリストとコード例です。
{#assign "myval"} これは変数 {/assign}です
+
、/
-
*
) %
を実行できるようにします。{数学myNum"+"5}
@index
アクセスでき、現在のキー名には から @key
アクセスできます。また @first
、 と @lastを使用して、イテレーションの最初/最後のステップにいるかどうかを確認することもできます{#each myObj} {@index} {/それぞれ}
==
,>
,,<
,>=
と演算子 <=
として使用できます。ハッシュ パラメーターを使用して、カウンターをインクリメントまたはデクリメントできます。{#for 5 ">" 0 after="-2"} {これ} {/for}
==
、 !=
、 <
、 <=
は演算子 equalsIgnoreCase
として使用できます。{comapre myStr "==" "ハロー}
{#switch タイプ} {#case "記事"} これは記事 です{/case} {#case "resource"} これはリソース です{/case}
isCar=false
と hasLicense=true
:{#if (または (and isCar hasPlate) (and (not isCar) hasLicense)))} 運転が許可されています。 {その他} 運転は許可されていません。
trueVar=true
"This is text" を出力として提供するコード例:{trueVar でなければ} これはテキスト {/unless}です
TRUE
コード FALSE
例:{と isCar hasPlate}
TRUE
コード FALSE
例:{または isCar hasPlate}
isCar=false
出力として返すTRUE
コード例:{isCarではない}
size
、 is_not_singleton
、および演算子 is_singleton
として使用できます。
{コレクションmyColl "サイズ"}
{#each バー} {ルックアップ../foo@index} {/each}
{#with myVal} {#ech myObj} {/それぞれ} {/with}
以下は、キーワードとその説明のリストとコード例です。
"lowercase"
、、 "lowercase_underscore"
または "lowercase_hyphen"
) に特定の書式を適用できます。{caseFormat myStr "lowercase_underscore"}
{capitalize最初の値}
{カット値 " "}
FALSE
に使用する代替値を定義できます。それ以外の場合は、元の値が使用されます。{defaultIfEmpty 値 "nothing"}
{join "a", "b", "c" " // " prefix="" suffix=""}
{中心の値 size=19 pad=" "}
{ljust値20パッド= ""}
{rjust 値 20 pad=" "}
{部分文字列値 3} {部分文字列値 0 3}
{低い値}
{上限値}
{スラッグ化値}
value="Hello %s"
param1="TeamViewer"
として提供するコード例:{stringFormat 値 param1}
{stripTags 値}
{値を完全に大文字にする=false}
{値の省略形 6}
{wordWrap 値 5}
{値を置き換える "..." "岩"}
FALSE
、および(オプションで)NULL
の値をTRUE
、「yes」、「no」、「maybe」などの値を持つ文字列にマップできます。{yesno value yes="yes" no="no" maybe="maybe"}
"full"
をクリックして、「Tuesday, June 19, 2012」 などの形式で日付を表示します。"medium"
をクリックして、"Jun 19, 2012" などの形式で日付を表示します。"short"
日付を "6/19/12" などの形式で表示するには"pattern"
をクリックして、日付をカスタムパターンで表示します。{dateFormat date ["フォーマット"] [format="フォーマット"] [tz=timeZone|timeZoneId]}
groupingUsed
を使用して、グループ化をフォーマットで使用するかどうかを定義します。maximumFractionDigits
小数部分で許容される最大桁数を定義するにはmaximumIntegerDigits
整数部分の最大桁数を定義するにはminimumFractionDigits
小数部分の最小桁数を定義するにはminimumIntegerDigits
整数部分の最小桁数を定義するにはparseIntegerOnly
数値を整数のみとして解析するかどうかを定義するにはroundingMode
数値の四捨五入方法を定義するには ( UP
、 、 、 HALF_EVEN
UNNECESSARY
FLOOR
HALF_DOWN
HALF_UP
DOWN
CEILING
{numberFormat number ["format"] [locale=default]}
以下は実際の例です。
"General": { "use_camera": { "title": "スマートグラスのカメラを使用する", "inputType": "checkbox-input", "value": "true" } } }< onresume> <rule id="auto"> <expression>1</expression>< actions> §{#if General.use_camera.value}§ <action ref="start_cam"/> §{/if}§ </actions> </rule>< /onresume>
ご覧のとおり、ここでの if キーワードを使用すると、対応する構成パラメーターがtrueに設定されている場合にのみアクションを実行できます。すべてのキーワードは、最初にハッシュタグ(#)を書き込むことによってスコープ内で使用されることに注意することが重要です。
each キーワードを使用した別の例を次に示します。
{ "構成": { "buttons": { "title": "ファンクションキー", "inputType": "multiple-dropdown-input", "elements": [ { "name": "TAB", "content": "ANDRRES_key_tab", "type": "TEXT", "translatable": true }, { "name": "DELETE", "content": "ANDRRES_key_delete", "type": "TEXT", "translatable": true }, { "name": "BACKSPACE", "content": "ANDRRES_key_backspace", "type": "TEXT", "translatable": true }, { "name": "F1", "content": "F1", "speech_cmd": "F 1", "type": "TEXT" }, { "name": "F2", "content": "F2", "speech_cmd": "F 2", "type": "TEXT" } ], "value": [ { "name": "TAB", "content": "ANDRRES_key_tab", "type": "TEXT", "translatable": true }, { "name": "DELETE", "content": "ANDRRES_key_delete", "type": "TEXT", "translatable": true } ] } } }<ui_update id="show_key_input_footer"> <widget_params> <ui_element name="FOOTER_L2"> <param name="VISIBILITY">INVISIBLE</param>< /ui_element> <ui_element name="RETURN_L1">< param name="menu_id" descriptor="">0</param> </ui_element> §{#each Configuration.buttons.value}§ <ui_element name="§{name}§"> <param name="menu_id" descriptor="">§{math @index "+" 1}§</param>< /ui_element> §{#if@last}§ §{#if Configuration.enable_camera.value}§ <ui_element name="CAMERA"> <param name="MENU_ID">§{math @../index "+" 2}§</param>< /ui_element> <ui_element name="ENTER"> <param name="MENU_ID">§{math @../index "+" 3}§</param>< /ui_element> §{else}§ <ui_element name="ENTER"> <param name="MENU_ID">§{math @../index "+" 2}§</param> </ui_element> §{/if}§ §{/if}§ §{/each}§ </widget_params> </ui_update>
この例では、複数レベルのドロップダウン メニューを使用して、ユーザー インターフェイスに表示されるいくつかのボタンを構成します。最後の 2 つのボタンについては、チェックボックス入力が設定されているかどうかに応じてバーコードスキャンが行われ、別のデフォルトボタンもあります。両方のボタンは、インターフェイスの右端に表示されます。ここでわかるように、このような高度に構成可能なコンポーネントを作成することもできます。