Suporte a expressões no fluxo

A expressão pode ser usada para acessar as propriedades durante a execução da instância do fluxo.

Visão geral

Depois que o fluxo é acionado por meio do " URL de execução", um conjunto de propriedades padrão ou integradas é preenchido na instância do fluxo. Além disso, algumas propriedades são preenchidas pelas tarefas utilizadas no fluxo.

O documento apresenta um conjunto de diferentes funções ou operadores condicionais utilizados em expressões.

O usuário precisa seguir uma sintaxe específica para declarar uma expressão nas tarefas e nos pontos de decisão de um determinado fluxo. A expressão deve começar com @context e terminar com @. Por exemplo, @context.__tenantid@.

Observação: a descrição das propriedades e o exemplo utilizados neste documento podem ser consultados aqui.

Acessando as propriedades da instância do fluxo

Cada propriedade de uma instância de fluxo tem seu próprio tipo. Portanto, o acesso ao valor da propriedade é influenciado pelo tipo da propriedade. Os tipos de propriedade suportados são 'String', 'Number', 'Boolean', 'JSON' e 'Array'. Consulte as informações adicionais fornecidas para entender como cada um desses diferentes tipos de propriedade pode ser utilizado.

  • É possível acessar uma string, um valor booleano ou um número como @context.propertyName@. Por exemplo,
    • status - @context.status@
    • __tenantid - @context.__tenantid@
    • __locale - @context.__locale@
  • []. É possível acessar uma propriedade JSON aninhada usando os delimitadores '' ou colchetes. Por exemplo,
    • userName da propriedade do usuário - @context.user.id@
    • messageId da propriedade de erro - @context.error.messageId@
    • ID da propriedade do usuário - @context.user['id']@
    Nota:
    • Os [] colchetes devem ser usados apenas para acessar propriedades secundárias.
    • .As propriedades aninhadas que contêm delimitadores '' devem ser colocadas entre [] parênteses.
  • É possível acessar uma propriedade de matriz utilizando o índice desejado entre [] colchetes. Por exemplo,
    • e-mail da propriedade do usuário - @context.user.emails[0].value@ ou @context.user['emails'][0].value@
    • nome do atributo personalizado a partir da propriedade do usuário - @context.user['urn:ietf:params:scim:schemas:extension:ibm:2.0:User'].customAttributes[0].name@

Uso de expressões nos parâmetros de entrada

A expressão pode ser usada para acessar propriedades de instância nos parâmetros de entrada das tarefas. Os parâmetros de entrada também aceitam expressões, juntamente com operadores. Os operadores binários e ternários podem ser usados em conjunto com expressões nos parâmetros de entrada. Consulte os exemplos a seguir

  • Acesso à propriedade - @context.themeId@
  • Usando o operador binário - @context.user.userName@ == "Jessica Hill"
  • Usando o operador ternário - @context.user['urn:ietf:params:scim:schemas:extension:ibm:2.0:User'].userCategory@ == "regular" ? @context.basicLdapUrl@ : @context.federatedUrl@
Observação: O parâmetro de entrada de sinal não aceita expressões. Qualquer conteúdo fornecido é tratado como uma sequência de caracteres.

Construtor de condição

O caminho de decisão do ponto de condição é criado no criador de condições. O construtor de condições está disponível no fluxo de saída do ponto de condição. O construtor de condições começa com um conjunto de condições "if" e pode ter zero ou mais conjuntos de condições "or". Cada conjunto de condições pode conter várias condições. Cada condição é dividida em três seções: Atributo, Operador e Valor.

Na seção Atributo, o usuário pode selecionar uma propriedade no menu suspenso de propriedades predefinidas e também inserir uma propriedade personalizada da instância do fluxo.
Observação: as propriedades personalizadas da instância do fluxo devem começar com @context e terminar com @. Por exemplo, para acessar uma propriedade personalizada chamada responseCode, o usuário pode digitar - @context.responseCode@.

A seção " Valor" aceita como entrada cadeias de caracteres, números, valores booleanos e expressões de fluxo.

Observação: a lista de propriedades padrão das instâncias de fluxo, juntamente com seus tipos de dados, pode ser consultada aqui.
O criador de condições oferece uma lista de operadores predefinidos para criar uma condição. A tabela apresenta a lista de operadores compatíveis com o construtor de condições.
Operador tipos de dados suportados Descrição exemplo
equal to String, Número e Booleano O atributo e o valor na comparação têm o mesmo valor. @context.status@ equivale a fracasso.
not equal to String, Número e Booleano O atributo e o valor na comparação não têm o mesmo valor. @context.themeId@ diferente do padrão.
less than Número O atributo na comparação tem um valor menor do que o valor. @context.numericProperty@ (suponha que exista uma variável chamada ` numericProperty ` no contexto) menor que 20.
less than or equal to Número O atributo na comparação é menor ou igual ao valor. @context.numericProperty@ menor ou igual a 20.
greater than Número O atributo na comparação tem um valor maior do que o valor. @context.numericProperty@ superior a 20.
greater than or equal to Número O atributo na comparação é maior ou igual ao valor. @context.numericProperty@ maior ou igual a 20.
is true Booleano A propriedade do atributo é avaliada como verdadeiro. @context.booleanProperty@ (supondo que exista uma variável chamada ` booleanProperty ` no contexto) é verdadeira.
is false Booleano A propriedade do atributo é avaliada como falso. @context.booleanProperty@ é falso.
has property _ O atributo contém uma propriedade mencionada no valor. @context.user.name@ possui a propriedade givenName
is not null String, Número e Booleano O atributo não é nulo. @context.user.name.givenName@ não é nulo.
is not empty Sequência O atributo não está vazio. @context.user.name.givenName@ não está vazio.
Nota:
  • is trueOs operadores, is false, is not null, e is not empty não exigem a seção Valor.
  • Para calcular condições complexas, o usuário deve utilizar a tarefa Função. Por exemplo, para filtrar um usuário de uma lista de usuários com base em determinados atributos. O usuário filtrado pode então ser acessado por meio da expressão.
  • Um tipo de dados pode ser convertido em String colocando-o entre "". Por exemplo, o número 10 pode ser convertido em uma sequência de caracteres como "10", ou o valor booleano true pode ser convertido em uma sequência de caracteres como "true".