Funciones Blank, Coalesce, IsBlank e IsEmpty

Se aplica a: Aplicaciones de lienzo Flujos de escritorio Columnas de fórmula de Dataverse Aplicaciones basadas en modelos Power Platform CLI

Comprueba si un valor está en blanco o una tabla no contiene registros, y proporciona una manera de crear valores blank.

Información general

Blank es un marcador de posición para "sin valor" o "valor desconocido". Por ejemplo, la propiedad Selected de un control Combo box es blank si el usuario no ha hecho una selección. Muchos orígenes de datos pueden almacenar y devolver valores NULL, que se representan en Power Apps como blank.

Cualquier propiedad o valor calculado en Power Apps puede ser blank. Por ejemplo, un valor booleano normalmente tiene uno de dos valores: true o false. Pero además de estos dos, también puede ser blank, lo cual indica que el estado no se conoce. Esto es similar a Microsoft Excel, donde una celda de la hoja de cálculo empieza en blanco, sin contenido, pero puede contener los valores TRUE o FALSE, entre otros. En cualquier momento, se puede borrar de nuevo el contenido de la celda y volvería a un estado blank.

Cadena vacía se refiere a una cadena que no contiene caracteres. La función Len devuelve cero para dicha cadena y se puede escribir en una fórmula como dos comillas dobles sin nada en el medio "". Algunos controles y orígenes de datos usan una cadena vacía para indicar una condición de "sin valor". Para simplificar la creación de aplicaciones, las funciones IsBlank y Coalesce comprueban los valores en blanco o las cadenas vacías.

En el contexto de la función IsEmpty, empty es específico de tablas que no contienen registros. La estructura de tabla puede estar intacta, con nombres de columna, pero ningún dato en la tabla. Una tabla puede comenzar como vacía, obtener registros y ya no estar vacía y luego quitarse los registros y estar de nuevo vacía.

Nota

Estamos en un período de transición. Hasta ahora, blank también se ha utilizado para informar de errores, lo que hace imposible diferenciar una ausencia válida de valor de un error. Por este motivo, en este momento, solo se admite el almacenamiento de valores blank en las colecciones locales. Puede almacenar valores en blanco en otros orígenes de datos si activa el la característica experimental Administración de errores a nivel de fórmula en Configuración>Próximas funciones>Experimental. Estamos trabajando activamente para finalizar esta característica y completar la separación adecuada de los valores blank y los errores.

En blanco

Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelos Columnas de fórmulas de Dataverse

La función Blank devuelve un valor blank. Use esta función para almacenar un valor NULL en un origen de datos que admita estos valores, de forma que se quiten en la práctica todos los valores del campo.

IsBlank

Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelos

La función IsBlank comprueba un valor blank o una cadena vacía. La comprobación incluye cadenas vacías para facilitar la creación de aplicaciones, ya que algunas fuentes de datos y controles usan una cadena vacía cuando no hay ningún valor presente. Para comprobar específicamente un valor blank, use if( Value = Blank(), ... en vez de IsBlank. La función IsBlank considera las tablas vacías como que no están en blanco y IsEmpty debe usarse para probar una tabla.

Al habilitar el control de errores para las aplicaciones existentes, considere reemplazar IsBlank con IsBlankOrError para mantener el comportamiento existente de las aplicaciones. Antes de agregar el manejo de errores, un valor blanco se utilizó para representar tanto valores nulos de bases de datos como valores de error. El manejo de errores separa estas dos interpretaciones de blanco que podría cambiar el comportamiento de las aplicaciones existentes que continúan utilizándose Está en blanco.

El valor devuelto para IsBlank es un valor booleano true o false.

Coalesce

Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelos

La función Coalesce evalúa sus argumentos en orden y devuelve el primer valor que no sea blank o una cadena vacía. Use esta función para reemplazar un valor blank o una cadena vacía con un valor diferente sin dejar valores no blank y de cadena no vacía sin cambios. Si todos los argumentos son blanco o cadenas vacías, la función regresa blanco, haciendo Coalesce una buena forma de convertir cadenas vacías a valores blanco.

Coalesce( value1, value2 ) es el equivalente más conciso de If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) y no requiere que se evalúen value1 y value2 dos veces. La función If devuelve blank si no hay una fórmula "else", como es el caso aquí.

Todos los argumentos de Coalesce debe ser del mismo tipo; por ejemplo, no puede combinar números con cadenas de texto. El valor de retorno de Juntarse es de este tipo común.

IsEmpty

Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelos

La función IsEmpty comprueba si una tabla contiene registros. Es equivalente a usar la función CountRows y la comprobación de cero. Puede usar IsEmpty para comprobar errores de origen de datos en combinación con la función Errors.

El valor devuelto para IsEmpty es un valor booleano true o false.

Sintaxis

Blank()

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

  • Value(s): requerido. Valores que se van a comprobar. Cada valor se evalúa en orden hasta que se encuentra un valor que no es blank y una cadena no vacía. Los valores después de este punto no se evalúan.

IsBlank( Value )

  • Value (obligatorio). Valor para probar un valor blank o cadena vacía.

IsEmpty( Table )

  • Table - obligatorio. Tabla en la que se van a comprobar registros.

Ejemplos

En blanco

Nota

Actualmente, el siguiente ejemplo solo funciona en colecciones locales. Puede almacenar valores en blanco en otros orígenes de datos si activa el la característica experimental Administración de errores a nivel de fórmula en Configuración>Próximas funciones>Experimental. Estamos trabajando activamente para finalizar esta característica y completar la separación de los valores blank y los errores.

  1. Cree una aplicación desde el principio y agregue un control Button.

  2. Establezca la propiedad OnSelect del botón en esta fórmula:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista previa.

  4. En el menú Archivo, haga clic o pulse en Colecciones.

    Aparece la colección Cities, que muestra un registro con "Seattle" y "Rainy":

    Colección que muestra Seattle con tiempo lluvioso.

  5. Haga clic o pulse en la flecha Atrás para volver al área de trabajo predeterminada.

  6. Agregue un control Label y establezca su propiedad Text en esta fórmula:

    IsBlank( First( Cities ).Weather )
    

    La etiqueta muestra false porque el campo Weather contiene un valor ("Rainy").

  7. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista previa.

    El campo Weather del primer registro de Cities se sustituye por un valor blank, de forma que se reemplaza el valor inicial "Rainy" que estaba ahí anteriormente.

    Colección que muestra Seattle con un campo Weather en blanco.

    La etiqueta muestra true porque el campo Weather ya no contiene ningún valor.

Coalesce

Fórmula Descripción Resultado
Coalesce( Blank(), 1 ) Comprueba el valor devuelto por la función Blank, que siempre devuelve un valor blank. Como el primer argumento es blank, la evaluación continúa con el argumento siguiente hasta que se encuentra un valor no blank y una cadena no vacía. 1
Coalesce( "", "2" ) Comprueba el primer argumento que es una cadena vacía. Como el primer argumento es una cadena vacía, la evaluación continúa con el argumento siguiente hasta que se encuentra un valor no blank y una cadena no vacía. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce comienza al principio de la lista de argumentos y evalúa cada uno de ellos por orden hasta que encuentra un valor que no sea blank y una cadena no vacía. En este caso, los cuatro primeros argumentos devuelven blank o una cadena vacía, por lo que la evaluación continúa con el quinto argumento. El quinto argumento no es blank y no es una cadena vacía, por lo que la evaluación se detiene aquí. Se devuelve el valor del quinto argumento y no se evalúa el sexto argumento. 3
Coalesce( "" ) Comprueba el primer argumento que es una cadena vacía. Debido a que el primer argumento es una cadena vacía y no hay más argumentos, la función devuelve blank. blank

IsBlank

  1. Cree una aplicación desde el principio, agregue un control de entrada de texto y llámelo FirstName.

  2. Agregue una etiqueta y establezca su propiedad Text en esta fórmula:

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

    De forma predeterminada, la propiedad Text de un control de entrada de texto se establece en "Text input". Como la propiedad contiene un valor, no está en blanco, y la etiqueta no muestra ningún mensaje.

  3. Quite todos los caracteres del control de entrada de texto, espacios incluidos.

    Como la propiedad Text ya no contiene ningún carácter, es una cadena vacía e IsBlank( FirstName.Text ) será true. Se muestra el mensaje de campo requerido.

Para más información sobre cómo realizar la validación mediante otras herramientas, consulte la función Validate y el uso de orígenes de datos.

Otros ejemplos:

Fórmula Descripción Resultado
IsBlank( Blank() ) Comprueba el valor devuelto por la función Blank, que siempre devuelve un valor blank. true
IsBlank( "" ) Una cadena que no contiene ningún carácter. true
IsBlank( "Hello" ) Una cadena que contiene uno o más caracteres. false
IsBlank( AnyCollection ) Como la colección existe, no está en blanco, incluso si no contiene ningún registro. Para comprobar si existe una colección vacía, use IsEmpty en su lugar. false
IsBlank( Mid( "Hello", 17, 2 ) ) El carácter inicial de Mid está más allá del final de la cadena. El resultado es una cadena vacía. true
IsBlank( If( false, false ) ) Una función If sin ElseResult. Como la condición es siempre false, esta función If siempre devuelve blank. true

IsEmpty

  1. Cree una aplicación desde el principio y agregue un control Button.

  2. Establezca la propiedad OnSelect del botón en esta fórmula:

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

  3. Obtenga una vista previa de la aplicación, haga clic o pulse en el botón que agregó y luego cierre la vista previa.

    Se crea una colección denominada IceCream con estos datos:

    Una mesa con sabores de fresa y chocolate con las cantidades de 300 y 100.

    Esta colección tiene dos registros y no está vacía. IsEmpty( IceCream ) devuelve false y CountRows( IceCream ) devuelve 2.

  4. Agregue un segundo botón y establezca su propiedad OnSelect en esta fórmula:

    Clear( IceCream )

  5. Obtenga una vista previa de la aplicación, haga clic o pulse en el segundo botón y luego cierre la vista previa.

    Ahora, la colección está vacía:

    Una colección con sabor y cantidad como colección vacía.

    La función Clear quita todos los registros de una colección, lo que da lugar a una colección vacía. IsEmpty( IceCream ) devuelve true y CountRows( IceCream ) devuelve 0.

También puede usar IsEmpty para comprobar si una tabla calculada está vacía, como muestran estos ejemplos:

Fórmula Descripción Resultado
IsEmpty( [ 1, 2, 3 ] ) La tabla de una columna contiene tres registros y, por lo tanto, no está vacía. false
IsEmpty( [ ] ) La tabla de una columna no contiene registros y está vacía. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) La tabla de una columna no contiene valores que sean mayores que 5. El resultado del filtro no contiene ningún registro y está vacío. true