Usar la función Patch para crear y editar registros

Completado

La función Patch se usa para crear y editar los registros de un origen de datos cuando el uso de un control Formulario no cubre las necesidades. Patch se utiliza con mayor frecuencia cuando es necesario actuar sobre los datos sin interacción del usuario y de manera repetitiva. También se utiliza si el diseño de la aplicación no permite el uso de formularios.

Usar Patch para crear un registro

La función Patch se puede usar para crear un registro nuevo en el origen de datos. Para crear un registro nuevo, la fórmula tiene tres elementos.

  1. Incluya el nombre del origen de datos que quiera editar. Esto podría ser un origen de datos tabular (como Microsoft Dataverse o SharePoint) o una colección. Por ejemplo, se usa CustomerOrders como nombre del origen de datos.

  2. La función Defaults devuelve un registro que incluye los valores predeterminados del origen de datos. Si una columna del origen de datos no tiene un valor predeterminado, esa propiedad no existirá. Al usar Defaults con el origen de datos, se le dice a Patch que cree un registro nuevo.

  3. Incluya las columnas que quiera rellenar en el registro nuevo. Aquí especificará el nombre de la columna que se va a actualizar, seguido del valor que se va a escribir en esa columna. En este ejemplo, se actualizará la columna Region y Country con un valor de cadena.

La fórmula de ejemplo es la siguiente:

Patch(CustomerOrders, Defaults(CustomerOrders), {Region: "Americas", Country: "Canada"})

Esta fórmula crea un registro nuevo en el origen de datos CustomerOrders, y establece Region en Americas y Country en Canada. Como puede ver, usted no define ninguna información de clave principal (la columna Id.) que el origen de datos actualice según su configuración.

Usar Patch para editar un registro

También es posible editar un registro del origen de datos. Para editar un único registro, la fórmula tiene tres elementos.

  1. Incluya el nombre del origen de datos que quiera editar. Esto podría ser un origen de datos tabular (como Dataverse o SharePoint) o una colección. Por ejemplo, se usa CustomerOrders como nombre del origen de datos.

  2. El registro que quiere editar en el origen de datos. La forma más común de especificar este registro consiste en usar la función LookUp para recuperar el registro del origen de datos. Si usa una galería y quiere actualizar el registro actual, otra opción consiste en usar la función ThisItem para hacer referencia al registro. Para este ejemplo, se usará una función LookUp.

  3. Incluya los cambios que quiera realizar. Aquí especificará el nombre de la columna que se va a actualizar, seguido del valor que se va a escribir en esa columna. En este ejemplo, se actualizará la columna Region y Country con un valor de cadena.

La fórmula de ejemplo es la siguiente:

Patch(CustomerOrders, LookUP(CustomerOrders, ID = 1), {Region: "Asia", Country: "China"})

Esta fórmula actualiza el registro con el Id. 1 en la tabla CustomerOrders. Para ello, se establece la columna Region en Asia y la columna Country en China. Si en esos campos hay valores existentes, se sobrescribirán.

Actualizar columnas con Patch

La lógica principal de la mayoría de las funciones Patch es la actualización de las columnas adecuadas con la información correcta. Este será el origen de la mayoría de las operaciones de solución de problemas de la función Patch. Use los puntos siguientes para facilitar el trabajo con Patch.

  • Asegúrese de que va a actualizar todas las columnas necesarias del origen de datos.

  • Puede actualizar tantas columnas opcionales como quiera.

  • Asegúrese de que los nombres de columna estén bien escritos y tengan las mayúsculas correctas. Los nombres de columna distinguen entre mayúsculas y minúsculas.

  • Asegúrese de escribir el tipo de datos correcto. Por ejemplo, si la columna del origen de datos es un tipo numérico, no puede escribir en ella un valor de cadena, aunque esa cadena contenga un número.

Existen cuatro orígenes para pasar valores en la fórmula para aplicar Patch al origen de datos:

  • Puede codificar un valor. Por ejemplo, si desea aplicar la función Patch al estado del registro "Pendiente", la fórmula de Patch sería la siguiente:

    Patch(CustomerOrders, Default(CustomerOrders), {Status: "Pending"})
    

    Esta fórmula crea un registro nuevo y establece la columna Estado en el valor de cadena "Pendiente".

  • Puede hacer referencia a una variable. Por ejemplo, puede almacenar la cadena "En revisión" en una variable denominada varStatus con la fórmula siguiente.

    Set(varStatus, "Under Review")
    

    La fórmula Patch tendría este aspecto:

    Patch(CustomerOrders, Default(CustomerOrders), {Status: varStatus})
    

    Esta fórmula crea un registro nuevo y establece la columna Estado en el valor de cadena "En revisión".

  • Puede hacer referencia al valor de la propiedad de un control. Un ejemplo podría ser establecer el valor de un menú desplegable denominado Dropdown1 que incluya las regiones. La fórmula Patch tendría este aspecto:

    Patch(CustomerOrders, Default(CustomerOrders), {Status: Dropdown1.Selected.Value})
    

    Esta fórmula crea un registro nuevo y establece la columna Estado en el valor del elemento seleccionado en el menú desplegable.

  • Puede usar el resultado de una fórmula. Un ejemplo podría ser establecer el valor de la columna Owner mediante el valor FullName desde la función User(). La fórmula Patch tendría este aspecto:

    Patch(CustomerOrders, Default(CustomerOrders), {Owner: User().FullName})
    

    Esta fórmula crea un registro nuevo y establece la columna Owner en el FullName del usuario actual de Microsoft Entra ID.

Ejemplo de Patch

Echemos un vistazo a otro ejemplo; en este caso, está tratando de crear una solución para que los usuarios inicien sesión en la clase a medida que llegan. Este tipo de solución de Power Apps es muy común, y la función Patch le ayuda a lograr resultados rápidamente.

Captura de pantalla con un ejemplo de Patch para una solución de Power Apps

Desglose de la solución

Aquí tenemos una aplicación de lienzo sencilla conectada al origen de datos (InicioSesiónClaseFormación). El origen de datos tiene las siguientes columnas: Clase de formación, Nombre, Apellidos, DirecciónCorreoElectrónico y EstadoInicioSesión. Esta es la información que queremos capturar cuando un usuario seleccione el botón Sign In. En la barra de fórmulas, aparece el código siguiente:

Patch(TrainingClassSignIn,Defaults(TrainingClassSignIn),{TrainingClass:TrainingClassDD.Selected.Value, FirstName:FirstNameInput.Text, LastName:LastNameInput.Text, EmailAddress:EmailAddressInput.Text, SignInStatus:"Attended"})

Para aclararlo, cada vez que alguien seleccione el botón Sign In, Power Apps escribirá un registro nuevo en el origen de datos TrainingClassSignIn. En cuanto se vuelvan a escribir los datos para que el usuario inicie sesión, podrá ver que esta información se obtiene de los distintos controles que agregamos (categorizados por colores en la fórmula). También puede observar que, cada vez, el código pone SignInStatus en "Asistido" para cada nuevo registro enviado.

Como puede ver, Patch es una opción flexible y eficaz. Patch tiene incluso más funcionalidades, incluida la capacidad de actualizar varios registros y de combinarlos. Para obtener más información sobre estos escenarios, consulte Función Patch en Power Apps.