Funções Blank, Coalesce, IsBlank e IsEmpty

Aplica-se a: Aplicativos de tela Fluxos de área de trabalho Colunas de fórmula do Dataverse Aplicativos baseados em modelo Power Platform CLI

Testa se um valor está em branco ou se uma tabela não contém nenhum registro e fornece uma maneira de criar valores em branco.

Visão Geral

Blank é um espaço reservado para "nenhum valor" ou "valor desconhecido". Por exemplo, a propriedade Selected de um controle Combo box estará em branco se o usuário não tiver feito uma seleção. Muitas fontes de dados podem armazenar e retornar valores NULL, que são representados em Power Apps como em branco.

Qualquer propriedade ou valor calculado no Power Apps pode ficar em branco. Por exemplo, um valor booliano normalmente tem um dos dois valores: true ou false. Mas, além desses dois, ele também pode ficar em branco, indicando que o estado não é conhecido. Isso é semelhante ao Microsoft Excel, em que uma célula de planilha começa em branco sem conteúdo, mas pode conter os valores TRUE ou FALSE (entre outros). A qualquer momento, o conteúdo da célula pode ser novamente limpo, retornando-o para um estado em branco.

Cadeia de caracteres vazia refere-se a uma cadeia de caracteres que não contém caracteres. A função Len retorna zero para essa cadeia de caracteres e pode ser gravada em fórmulas como duas aspas duplas sem nada entre elas "". Alguns controles e fontes de dados usam uma cadeia de caracteres vazia para indicar uma condição de "nenhum valor". Para simplificar a criação de aplicativos, as funções IsBlank e Coalesce são testadas para valores em branco ou cadeias de caracteres vazias.

No contexto da função IsEmpty, vazio é específico para tabelas que não contêm registros. A estrutura da tabela pode estar intacta, completa com nomes de coluna, mas sem dados contidos nela. Uma tabela pode ser iniciada como vazia, utilizar registros e não estar mais vazia e, em seguida, os registros podem ser removidos e ela ficar novamente vazia.

Nota

Estamos em um período de transição. Até agora, o espaço em branco também foi usado para relatar erros, tornando impossível diferenciar um erro "nenhum valor" válido. Por esse motivo, neste momento, o armazenamento de valores em branco só tem suporte para coleções locais. Você poderá armazenar valores em branco em outras fontes de dados se ligar o recurso experimental Gerenciamento de erros no nível da fórmula em Configurações>Recursos futuros>Experimental. Estamos trabalhando ativamente para concluir esse recurso e concluir a separação correta de valores em branco de erros.

Em branco

Aplica-se a: Aplicativos de tela Aplicativos baseado em modelo Colunas de fórmula do Dataverse

A função Blank retorna um valor em branco. Use isso para armazenar um valor NULL em uma fonte de dados que dá suporte a esses valores, removendo efetivamente qualquer valor do campo.

IsBlank

Aplica-se a: Aplicativos de tela Aplicativos baseados em modelo

A função IsBlank testa um valor em branco ou uma cadeia de caracteres vazia. O teste inclui cadeias de caracteres vazias para facilitar a criação do aplicativo, pois algumas fontes de dados e controles usam uma cadeia de caracteres vazia quando não há nenhum valor presente. Para testar especificamente um valor em branco, use if( Value = Blank(), ... em vez de IsBlank. A função IsBlank considera tabelas vazias como não vazias, e IsEmpty deve ser usado para testar uma tabela.

Ao habilitar o tratamento de erros para aplicativos existentes, considere substituir IsBlank por IsBlankOrError para preservar o comportamento do aplicativo existente. Antes da adição de tratamento de erros, um valor em branco foi usado para representar valores nulos de bancos de dados e valores de erro. O tratamento de erros separa essas duas interpretações de em branco, o que pode mudar o comportamento de aplicativos existentes que continuam a usar IsBlank.

O valor retornado para IsBlank é um booliano true ou false.

Coalesce

Aplica-se a: Aplicativos de tela Aplicativos baseados em modelo

A função Coalesce avalia seus argumentos na ordem e retorna o primeiro valor que não está em branco ou uma cadeia de caracteres vazia. Use esta função para substituir um valor em branco ou uma cadeia de caracteres vazia por um valor diferente, sem alterar os valores de cadeia de caracteres não em branco e não vazios. Se todos os argumentos forem em branco ou cadeias de caracteres vazias, então a função retornará em branco, tornando Coalesce uma boa maneira de converter cadeias de caracteres vazias em valores em branco.

Coalesce( value1, value2 ) é o equivalente mais conciso de If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) e não exige que value1 e value2 sejam avaliados duas vezes. A função If retornará blank se não houver fórmula "else", como é o caso aqui.

Todos os argumentos de Coalesce devem ser do mesmo tipo; por exemplo, não é possível combinar números com cadeias de texto. O valor de retorno de Coalesce é desse tipo comum.

IsEmpty

Aplica-se a: Aplicativos de tela Aplicativos baseados em modelo

A função IsEmpty testa se uma tabela contém algum registro. É equivalente a usar a função CountRows e a verificação de zero. Você pode verificar se há erros na fonte de dados ao combinar IsEmpty com a função Errors.

O valor retornado para IsEmpty é um booliano true ou false.

Sintaxe

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • Value(s) - obrigatório. Valores a serem testados. Cada valor é avaliado na ordem até que um valor que não esteja em branco e que não seja uma cadeia de caracteres vazia seja encontrado. Os valores após esse ponto não são avaliados.

IsBlank( Value )

  • Value - obrigatório. Valor para testar um valor em branco ou uma cadeia de caracteres vazia.

IsEmpty( Table )

  • Table - obrigatório. Tabela a ser testada quanto a registros.

Exemplos

Em branco

Nota

No momento, o exemplo a seguir funciona somente para coleções locais. Você poderá armazenar valores em branco em outras fontes de dados se ligar o recurso experimental Gerenciamento de erros no nível da fórmula em Configurações>Recursos futuros>Experimental. Estamos trabalhando ativamente para concluir esse recurso e concluir a separação de valores em branco de erros.

  1. Crie um aplicativo do zero e adicione um controle Button.

  2. Defina a propriedade OnSelect do botão como esta fórmula:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Visualize o aplicativo, clique ou toque no botão que você adicionou e, em seguida, feche Visualizar.

  4. No menu Arquivo, clique ou toque em Coleções.

    A coleção Cities é exibida, mostrando um registro com “Seattle” e “Rainy”:

    Coleção mostrando Seattle com o clima Rainy.

  5. Clique ou toque na seta para voltar para retornar ao workspace padrão.

  6. Adicione um controle Label e defina sua propriedade Text com esta fórmula:

    IsBlank( First( Cities ).Weather )
    

    O rótulo mostra false porque o campo Weather contém um valor (“Rainy”).

  7. Adicione um segundo botão e defina sua propriedade OnSelect com esta fórmula:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Visualize o aplicativo, clique ou toque no botão que você adicionou e, em seguida, feche Visualizar.

    O campo Weather do primeiro registro de Cities é substituído por um blank, removendo “Rainy” que estava no campo.

    Coleção mostrando Seattle com um campo Weather em branco.

    O rótulo mostra true porque o campo Weather não contém mais um valor.

Coalesce

Fórmula Descrição Resultado
Coalesce( Blank(), 1 ) Testa o valor retornado da função Blank, que sempre retorna um valor blank. Como o primeiro argumento está em branco, a avaliação continua com o próximo argumento até que um valor não em branco e uma cadeia de caracteres não vazia sejam encontrados. 1
Coalesce( "", "2" ) Testa o primeiro argumento que é uma cadeia de caracteres vazia. Como o primeiro argumento é uma cadeia de caracteres vazia, a avaliação continua com o próximo argumento até que um valor não em branco e uma cadeia de caracteres não vazia sejam encontrados. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce começa no início da lista de argumentos e avalia cada argumento por vez até que um valor não em branco e uma cadeia de caracteres não vazia sejam encontrados. Nesse caso, todos os quatro primeiros argumentos retornam em branco ou uma cadeia de caracteres vazia, portanto, a avaliação continua no quinto argumento. O quinto argumento é uma cadeia de caracteres não em branco e não vazia, portanto, a avaliação é interrompida aqui. O valor do quinto argumento é retornado e o sexto argumento não é avaliado. 3
Coalesce( "" ) Testa o primeiro argumento que é uma cadeia de caracteres vazia. Como o primeiro argumento é uma cadeia de caracteres vazia e não há mais argumentos, a função retorna em branco. blank

IsBlank

  1. Crie um aplicativo do zero, adicione um controle de entrada de texto e nomeie-o FirstName.

  2. Adicione um rótulo e defina sua propriedade Text como esta fórmula:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    Por padrão, a propriedade Text de um controle de entrada de texto é definida como “Entrada de texto”. Como a propriedade contém um valor, ela não está em branco e o rótulo não exibe mensagens.

  3. Remova todos os caracteres do controle de entrada de texto, incluindo os espaços.

    Como a propriedade Text não contém mais nenhum caractere, ela é uma cadeia de caracteres vazia e IsBlank (FirstName. Text) será true. Será exibida a mensagem de campo obrigatório.

Para obter informações sobre como realizar a validação usando outras ferramentas, consulte a função Validate e Trabalhando com fontes de dados.

Outros exemplos:

Fórmula Descrição Resultado
IsBlank( Blank() ) Testa o valor retornado da função Blank, que sempre retorna um valor blank. true
IsBlank( "" ) Uma cadeia de caracteres que não contém caracteres. true
IsBlank( "Hello" ) Uma cadeia de caracteres que contém um ou mais caracteres. false
IsBlank( AnyCollection ) Como a coleção existe, ela não está em branco, mesmo não contendo nenhum registro. Para buscar uma coleção vazia, use IsEmpty em vez disso. false
IsBlank( Mid( "Hello", 17, 2 ) ) O caractere inicial de Mid está além do fim da cadeia de caracteres. O resultado é uma cadeia de caracteres vazia. true
IsBlank( If( false, false ) ) Uma função If sem nenhum ElseResult. Como a condição é sempre false, esse If sempre retorna em branco. true

IsEmpty

  1. Crie um aplicativo do zero e adicione um controle Button.

  2. Defina a propriedade OnSelect do botão como esta fórmula:

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. Visualize o aplicativo, clique ou toque no botão que você adicionou e, em seguida, feche Visualizar.

    Uma coleção chamada IceCream é criada e ela contém estes dados:

    Uma tabela com os sabores Strawberry e Chocolate nas quantidades 300 e 100.

    Essa coleção tem dois registros e não está vazia. IsEmpty( IceCream ) retorna false e CountRows( IceCream ) retorna 2.

  4. Adicione um segundo botão e defina sua propriedade OnSelect com esta fórmula:

    Clear( IceCream )

  5. Visualize o aplicativo, clique ou toque no segundo botão e, em seguida, feche Visualizar.

    A coleção agora está vazia:

    Uma coleção com Flavor e Quantity como coleção vazia.

    A função Clear remove todos os registros de uma coleção, resultando em uma coleção vazia. IsEmpty( IceCream ) retorna true e CountRows( IceCream ) retorna 0.

Você também pode usar IsEmpty para testar se uma tabela calculada está vazia, como mostram os exemplos:

Fórmula Descrição Resultado
IsEmpty( [ 1, 2, 3 ] ) A tabela de coluna única contém três registros e, portanto, não está vazia. false
IsEmpty( [ ] ) A tabela de coluna única não contém nenhum registro e está vazia. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) A tabela de coluna única não contém nenhum valor maior que 5. O resultado do filtro não contém nenhum registro e está vazio. true