CreateUiDefinition 論理関数
次の関数は、条件式で使用できます。 一部の関数では、すべての JSON データ型がサポートされていない場合があります。
and
すべてのパラメーターが true
に評価される場合、true
が返されます。 この関数でサポートされる 2 つ以上のパラメーターは、ブール型のみです。
次の例は、 true
を返します。
"[and(equals(0, 0), equals('web', 'web'), less(1, 2))]"
次の例は、 false
を返します。
"[and(equals(0, 0), greater(1, 2))]"
coalesce
最初の null 以外のパラメーターの値が返されます。 この関数は、すべての JSON データ型をサポートしています。
element1
と element2
は未定義であるものとします。 次の例は、 "Contoso"
を返します。
"[coalesce(steps('demoStep').element1, steps('demoStep').element2, 'Contoso')]"
この関数は、ページが読み込まれた後にユーザーのアクションによって発生するオプションの呼び出しのコンテキストで特に役立ちます。 たとえば、UI 内の 1 つのフィールドに設定されている制約が、最初は非表示の別のフィールドの、現在選択されている値に依存している場合です。 この場合、coalesce()
を使用して、ユーザーがフィールドと対話するときに望ましい効果を保持しながら、ページの読み込み時に関数を構文的に有効にすることができます。
ユーザーが複数の異なるデータベースの種類から選択できるようにするこの DropDown
を検討してください。
{
"name": "databaseType",
"type": "Microsoft.Common.DropDown",
"label": "Choose database type",
"toolTip": "Choose database type",
"defaultValue": "Oracle Database",
"visible": "[bool(steps('section_database').connectToDatabase)]""constraints": {
"allowedValues": [
{
"label": "Azure Database for PostgreSQL",
"value": "postgresql"
},
{
"label": "Oracle Database",
"value": "oracle"
},
{
"label": "Azure SQL",
"value": "sqlserver"
}
],
"required": true
},
このフィールドの現在選択されている値に対して別のフィールドのアクションを条件付けするには、次のように coalesce()
を使用します。
"regex": "[concat('^jdbc:', coalesce(steps('section_database').databaseConnectionInfo.databaseType, ''), '.*$')]",
この機能は、 databaseType
が最初は表示されないため、値がないために必要です。そのため、式全体が正しく評価されません。
equals
両方のパラメーターに同じ型と値が指定されている場合、true
が返されます。 この関数は、すべての JSON データ型をサポートしています。
次の例は、 true
を返します。
"[equals(0, 0)]"
次の例は、 true
を返します。
"[equals('web', 'web')]"
次の例は、 false
を返します。
"[equals('abc', ['a', 'b', 'c'])]"
greater
最初のパラメーターが厳密に 2 番目のパラメーターを超える場合、true
が返されます。 この関数は、数値型および文字列型のパラメーターのみをサポートしています。
次の例は、 false
を返します。
"[greater(1, 2)]"
次の例は、 true
を返します。
"[greater('9', '10')]"
greaterOrEquals
最初のパラメーターが 2 番目のパラメーター以上の場合、true
が返されます。 この関数は、数値型および文字列型のパラメーターのみをサポートしています。
次の例は、 true
を返します。
"[greaterOrEquals(2, 2)]"
if
条件が true か false かに基づいて値を返します。 最初のパラメーターは、テストする条件です。 2 番目のパラメーターは、条件が true の場合に返される値です。 3 番目のパラメーターは、条件が false の場合に返される値です。
次の例では、yes
が返されます。
"[if(equals(42, mul(6, 7)), 'yes', 'no')]"
less
最初のパラメーターが厳密に 2 番目のパラメーター未満の場合、true
が返されます。 この関数は、数値型および文字列型のパラメーターのみをサポートしています。
次の例は、 true
を返します。
"[less(1, 2)]"
次の例は、 false
を返します。
"[less('9', '10')]"
lessOrEquals
最初のパラメーターが 2 番目のパラメーター以下の場合、true
が返されます。 この関数は、数値型および文字列型のパラメーターのみをサポートしています。
次の例は、 true
を返します。
"[lessOrEquals(2, 2)]"
not
パラメーターが false
に評価される場合、true
が返されます。 この関数は、ブール型のパラメーターのみをサポートしています。
次の例は、 true
を返します。
"[not(false)]"
次の例は、 false
を返します。
"[not(equals(0, 0))]"
or
少なくとも 1 つのパラメーターが true
に評価される場合、true
が返されます。 この関数は、複数のブール型のパラメーターのみをサポートしています。
次の例は、 true
を返します。
"[or(equals(0, 0), equals('web', 'web'), less(1, 2))]"
次の例は、 true
を返します。
"[or(equals(0, 0), greater(1, 2))]"
次のステップ
- Azure Resource Manager の概要については、「Azure Resource Manager の概要」を参照してください。