Hola a todos!!
Hace unos días se ha liberado una nueva característica en Power Apps y que podéis ver en la pestaña «Experimental». Se trata de los tipos definidos por el usuario (UDTS):

Muy resumido: son definiciones personalizadas de estructuras de datos que agrupan múltiples campos con sus respectivos tipos de datos. Funcionan de manera similar a «clases» o «estructuras» en otros lenguajes de programación, permitiendo definir y reutilizar tipos complejos en toda la aplicación.
Estandarización: Garantiza que los datos tengan una estructura consistente.
Legibilidad: Facilita la comprensión del código al describir claramente qué campos maneja cada tipo.
Validación: Power Fx puede detectar errores de tipo durante el diseño, evitando problemas en tiempo de ejecución.
Reutilización: Permite usar el mismo tipo en múltiples lugares de la aplicación, promoviendo la consistencia.
Os dejaré un ejemplo, para ello vamos a crear un tipo definido que denominaremos tdPersonas:
tdPersona := Type({
Nombre: Text;
Edad: Number;
Activo: Boolean
});;
Este código lo tendremos que incluir en la propiedad formulas de nuestra App, y al mismo tiempo vamos a crear una función para poder usar estos tipos en cualquier parte de la aplicación.
fCrearPersona(Nombre: Text; Edad: Number; Activo: Boolean): tdPersona = {
Nombre: Nombre;
Edad: Edad;
Activo: Activo
};;
Ya tenemos nuestro tipo definido, que tiene 3 campos, uno es el nombre (texto), otro la edad (número) y otro si está activo o no (boolean).
Para seguir con el ejemplo vamos a incluir dos textInputs y un checkbox para que nos sirva como herramienta para grabar usuarios:

Y ahora vamos a crear un botón para grabar la información en una colección y mostrar los datos en una galería:
En el botón grabar vamos a incluir lo siguiente:
If(
IsEmpty(colPersonas);
// Si colPersonas está vacía, la creamos
ClearCollect(colPersonas; fCrearPersona(txtNombre.Text; Value(txtEdad.Text); chkActivo.Value));
// Si no está vacía, agregamos
Collect(colPersonas; fCrearPersona(txtNombre.Text; Value(txtEdad.Text); chkActivo.Value))
);;
//limpiamos contenido
Reset(txtNombre);;
Reset(txtEdad);;
Reset(chkActivo);;
Notify(
"Persona añadida correctamente";
NotificationType.Success)
Y con esto ya tenemos nuestra estructura de datos aplicada a la grabación de la información en la colección.
Y esto es todo, espero que sea de utilidad 🙂
