Usando funções condicionais em expressões de fórmula - AWS IoT SiteWise

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando funções condicionais em expressões de fórmula

Em transformações e métricas, você pode usar a função a seguir para verificar uma condição e retornar resultados diferentes, independentemente de a condição ser avaliada como verdadeira ou falsa.

Função Descrição

if(condition, result_if_true, result_if_false)

Avalia condition e retorna result_if_true se a condição for avaliada como verdadeira ou result_if_false se a condição for avaliada como false.

condition deve ser um número. Essa função considera 0 uma string vazia como false e todo o resto (inclusive NaN) como true. Os Booleanos são convertidos em 0 (falso) e 1 (verdadeiro).

Você pode retornar a constante nula dessa função para descartar a saída de uma condição específica. Isso significa que você pode filtrar pontos de dados que não atendam a uma condição. Para ter mais informações, consulte Como filtrar pontos de dados.

exemplo Exemplos
  • if(0, x, y) retorna a variável y.

  • if(5, x, y) retorna a variável x.

  • if(gt(temp, 300), x, y) retorna a variável x se a variável temp for maior que 300.

  • if(gt(temp, 300), temp, none) retorna a variável temp se for maior ou igual a 300, ou none (sem valor), se temp for menor que 300.

Recomendamos que você use UFCS para funções condicionais aninhadas onde um ou mais argumentos forem funções condicionais. Você pode usar if(condition, result_if_true) para avaliar uma condição e elif(condition, result_if_true, result_if_false) para avaliar condições adicionais.

Por exemplo, você pode usar if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false), em vez de if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false)).

Você também pode encadear funções condicionais intermediárias adicionais. Por exemplo, você pode usar if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false) em vez de aninhar várias instruções if, como if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false))).

Importante

Você deve usar elif(condition, result_if_true, result_if_false) com UFCS.