27 julio, 2026

GESTIONANDO DATOS CON TIPOS DEFINIDOS POR EL USUARIO (UDTS) EN POWER FX

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 🙂

Comparte este post

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies