Funciones Collect, Clear y ClearCollect en Power Apps

Crea y borra colecciones y agrega registros a cualquier origen de datos.

Descripción

Collect

La función Collect agrega registros a un origen de datos. Los elementos que se pueden agregar son:

  • Un valor único: el valor se coloca en el campo Value de un nuevo registro. Todas las demás propiedades se dejan blank.
  • Un registro: cada propiedad con nombre se coloca en la propiedad correspondiente de un nuevo registro. Todas las demás propiedades se dejan blank.
  • Una tabla: cada registro de la tabla se agrega como un registro independiente del origen de datos, como se ha descrito anteriormente. La tabla no se agrega como una tabla anidada a un registro. Para lograrlo, primero ajuste la tabla en un registro.

Cuando se usa con una colección, se crearán columnas adicionales según sea necesario. Las columnas de otros orígenes de datos están determinadas por el origen de datos y no se pueden agregar nuevas columnas.

Si el origen de datos todavía no existe, se crea una colección.

Las colecciones a veces se usan para almacenar variables globales o realizar una copia temporal de un origen de datos. Las aplicaciones de lienzo se basan en fórmulas que se recalculan automáticamente a medida que el usuario interactúa con una aplicación. Las colecciones no tienen esta ventaja y su uso puede hacer que la aplicación sea más difícil de crear y comprender. Antes de usar una colección de esta manera, revise el trabajo con variables.

También puede usar la función Patch para crear registros en un origen de datos.

Collect devuelve el origen de datos modificado como una tabla. Collect solo se puede usar en una fórmula de comportamiento.

Clear

La función Clear elimina todos los registros de una colección. Las columnas de la colección se conservarán.

Tenga en cuenta que Clear solo funciona en colecciones y no en otros orígenes de datos. Puede usar RemoveIf( DataSource, true ) para este propósito. Tenga cuidado, ya que esto quitará todos los registros del almacenamiento del origen de datos y puede afectar a otros usuarios.

Puede usar la función Remove para quitar registros de forma selectiva.

Clear no devuelve ningún valor. Solo se puede usar en una fórmula de comportamiento.

ClearCollect

La función ClearCollect elimina todos los registros desde una colección. Y luego agrega un conjunto diferente de registros a la misma colección. Con una sola función, ClearCollect ofrece la combinación de Clear y Collect.

ClearCollect devuelve la colección modificada como una tabla. ClearCollect solo se puede usar en una fórmula de comportamiento.

Delegación

Cuando se usan con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte del origen de datos, y después se aplicará la función. Es posible que el resultado no represente la historia completa. Puede que aparezca una advertencia en el momento de la creación para recordarle esta limitación y sugerirle un cambio a alternativas delegables siempre que sea posible. Para obtener más información, consulte la información general sobre delegación

Sintaxis

Collect( DataSource, Elemento, ... )

  • DataSource: requerido. Origen de datos al que quiere agregar datos. Si todavía no existe, se crea una colección.
  • Item(s): obligatorio. Uno o varios registros o tablas que se van a agregar al origen de datos.

Clear( Colección )

  • Collection: obligatorio. Colección que quiere borrar.

ClearCollect( Colección, Elemento, ... )

  • Collection: obligatorio. Colección que quiere borrar, a la que después va a agregar datos.
  • Item(s): obligatorio. Uno o varios registros o tablas que se van a agregar al origen de datos.

Ejemplos

Borrar y agregar registros a un origen de datos

En estos ejemplos, borrará y agregará registros a una colección denominada IceCream. El origen de datos comienza con este contenido:

Origen de datos de ejemplo

Fórmula Descripción Resultado
ClearCollect( IceCream, { Flavor: "Strawberry", Quantity: 300 } ) Borra todos los datos de la colección IceCream y, después, agrega un registro que incluye una cantidad de helado de fresa. Tabla con un registro

La colección IceCream también se ha modificado.
Collect( IceCream, { Flavor: "Pistachio", Quantity: 40 }, { Flavor: "Orange" ,Quantity: 200 } ) Agrega dos registros a la colección IceCream, que incluye una cantidad de helado de pistacho y naranja. Tabla con dos registros

La colección IceCream también se ha modificado.
Clear( IceCream ) Quita todos los registros de la colección IceCream. Tabla vacía

La colección IceCream también se ha modificado.

Para ver ejemplos paso a paso de cómo crear una colección, vea Crear y actualizar una colección.

Registros y tablas

Estos ejemplos examinan cómo se gestionan los argumentos de registro y tabla para Collect y ClearCollect.

Fórmula Descripción Resultado
ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) Borra todos los datos y después agrega dos registros a la colección IceCream, que incluye una cantidad de helado de chocolate y vainilla. Los registros que se agregarán se proporcionan como argumentos individuales para la función. Registros de chocolate y vainilla agregados a la colección

La colección IceCream también se ha modificado.
ClearCollect( IceCream, Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) ) Igual que el ejemplo anterior, excepto que los registros se combinan en una tabla y se pasan a través de un único argumento. El contenido de la tabla se extrae registro por registro antes de agregarse a la colección IceCream. Registros de chocolate y vainilla agregados a la colección

La colección IceCream también se ha modificado.
ClearCollect( IceCream,
{ MyFavorites: Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) } )
Igual que el ejemplo anterior, excepto que la tabla está envuelta en un registro. Los registros de la tabla no se extraen y, en su lugar, se agrega toda la tabla como una celda del registro. Registros de chocolate y vainilla agregados a la colección

La colección IceCream también se ha modificado.