次の方法で共有


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 データ型をサポートしています。

element1element2 は未定義であるものとします。 次の例は、 "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))]"

次のステップ