Поделиться через


Логические функции CreateUiDefinition

Эти функции можно использовать в условных выражениях. Некоторые функции не поддерживают все типы данных JSON.

и

Возвращает true, если все параметры имеют значение true. Данная функция поддерживает два или более параметров исключительно логического типа.

В следующем примере возвращается 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')]"

Эта функция особенно полезна в контексте необязательного вызова, который происходит в связи с действием пользователя после загрузки страницы. Например, если ограничения, накладываемые на одно поле в пользовательском интерфейсе, зависят от текущего выбранного значения другого, изначально невидимого. В этом случае 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 изначально не является видимым и, следовательно, не имеет значения. Это приведет к неправильной оценке всего выражения.

равно

Возвращает true, если оба параметра имеют один и тот же тип и значение. Эта функция поддерживает все типы данных JSON.

В следующем примере возвращается true.

"[equals(0, 0)]"

В следующем примере возвращается true.

"[equals('web', 'web')]"

В следующем примере возвращается false.

"[equals('abc', ['a', 'b', 'c'])]"

greater

Возвращает true, если первый параметр строго больше значения второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".

В следующем примере возвращается false.

"[greater(1, 2)]"

В следующем примере возвращается true.

"[greater('9', '10')]"

greaterOrEquals

Возвращает true, если первый параметр больше или равен значению второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".

В следующем примере возвращается true.

"[greaterOrEquals(2, 2)]"

if

Возвращает значение в зависимости от того, выполняется ли условие. Первый параметр — это проверяемое условие. Второй параметр — это значение, возвращаемое, если условие имеет значение "истина". Третий параметр — это значение, возвращаемое, если условие имеет значение "ложь".

В приведенном ниже примере возвращается yes.

"[if(equals(42, mul(6, 7)), 'yes', 'no')]"

less

Возвращает true, если первый параметр строго меньше значения второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".

В следующем примере возвращается true.

"[less(1, 2)]"

В следующем примере возвращается false.

"[less('9', '10')]"

lessOrEquals

Возвращает true, если первый параметр меньше или равен значению второго параметра. Эта функция поддерживает только параметры типа "число" и "строка".

В следующем примере возвращается true.

"[lessOrEquals(2, 2)]"

not

Возвращает true, если параметр имеет значение false. Эта функция поддерживает только параметры логического типа.

В следующем примере возвращается true.

"[not(false)]"

В следующем примере возвращается false.

"[not(equals(0, 0))]"

or

Возвращает true, если хотя бы один из параметров имеет значение true. Эта функция поддерживает два или более параметров только логического типа.

В следующем примере возвращается true.

"[or(equals(0, 0), equals('web', 'web'), less(1, 2))]"

В следующем примере возвращается true.

"[or(equals(0, 0), greater(1, 2))]"

Следующие шаги