Compartilhar via


Funções lógicas CreateUiDefinition

Essas funções podem ser usadas em expressões condicionais. Algumas funções podem não dar suporte a todos os tipos de dados JSON.

e

Retorna true se todos os parâmetros são avaliados como true. Essa função dá suporte apenas a dois ou mais parâmetros do tipo booliano.

O exemplo a seguir retorna true:

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

O exemplo a seguir retorna false:

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

coalesce

Retorna o valor do primeiro parâmetro não nulo. Essa função dá suporte a todos os tipos de dados JSON.

Suponha que element1 e element2 são indefinidos. O exemplo a seguir retorna "Contoso":

"[coalesce(steps('demoStep').element1, steps('demoStep').element2, 'Contoso')]"

Essa função é especialmente útil na invocação opcional que ocorre devido à ação do usuário após o carregamento da página. Um exemplo é se as restrições colocadas em um campo na interface do usuário dependem do valor selecionado no momento de outro campo, inicialmente não visível. Nesse caso, coalesce() pode ser usado para permitir que a função seja sintaticamente válida no tempo de carregamento da página enquanto tem o efeito desejado quando o usuário interage com o campo.

Considere este DropDown, que permite que o usuário escolha entre vários tipos de banco de dados diferentes:

{
  "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
  },

Para condicionar a ação de outro campo no valor escolhido atual desse campo, use coalesce(), conforme mostrado aqui:

"regex": "[concat('^jdbc:', coalesce(steps('section_database').databaseConnectionInfo.databaseType, ''), '.*$')]",

Essa funcionalidade é necessária porque o databaseType inicialmente não está visível e, portanto, não tem um valor, o que faz com que toda a expressão não seja avaliada corretamente.

equals

Retorna true se ambos os parâmetros têm o mesmo tipo e valor. Essa função dá suporte a todos os tipos de dados JSON.

O exemplo a seguir retorna true:

"[equals(0, 0)]"

O exemplo a seguir retorna true:

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

O exemplo a seguir retorna false:

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

greater

Retorna true se o primeiro parâmetro é estritamente maior que o segundo parâmetro. Essa função dá suporte apenas a parâmetros dos tipos número e cadeia de caracteres.

O exemplo a seguir retorna false:

"[greater(1, 2)]"

O exemplo a seguir retorna true:

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

greaterOrEquals

Retorna true se o primeiro parâmetro é maior ou igual ao segundo parâmetro. Essa função dá suporte apenas a parâmetros dos tipos número e cadeia de caracteres.

O exemplo a seguir retorna true:

"[greaterOrEquals(2, 2)]"

if

Retorna um valor com base em se uma condição é verdadeira ou falsa. O primeiro parâmetro é a condição a ser testada. O segundo parâmetro será o valor a ser retornado se a condição for true. O terceiro parâmetro será o valor a ser retornado se a condição for false.

A amostra a seguir retorna yes.

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

less

Retorna true se o primeiro parâmetro é estritamente menor que o segundo parâmetro. Essa função dá suporte apenas a parâmetros dos tipos número e cadeia de caracteres.

O exemplo a seguir retorna true:

"[less(1, 2)]"

O exemplo a seguir retorna false:

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

lessOrEquals

Retorna true se o primeiro parâmetro é menor ou igual ao segundo parâmetro. Essa função dá suporte apenas a parâmetros dos tipos número e cadeia de caracteres.

O exemplo a seguir retorna true:

"[lessOrEquals(2, 2)]"

not

Retorna true se o parâmetro é avaliado como false. Essa função dá suporte apenas a parâmetros do tipo booliano.

O exemplo a seguir retorna true:

"[not(false)]"

O exemplo a seguir retorna false:

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

ou

Retorna true se, pelo menos, um dos parâmetros é avaliado como true. Essa função dá suporte apenas a dois ou mais parâmetros do tipo booliano.

O exemplo a seguir retorna true:

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

O exemplo a seguir retorna true:

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

Próximas etapas