Power Apps: Utiliza Patch para actualizar columnas de búsqueda

Hablando de Power Apps y la función Patch para modificar valores en las listas de SharePoint, encontraremos que realizar la acción de actualizar valores de texto es relativamente sencilla, sobre todo si seguimos el método que ya describí en la entrada de este link.

El problema llega cuando nos encontremos con que algunos valores de nuestra lista son columnas de opciones o de búsqueda, ya que Power Apps no puede hacer Patch a ellas rápidamente.

Power Apps columnas búsqueda 1

Por desgracia no existe una forma directa e intuitiva para actualizar columnas de opciones y búsqueda en SharePoint desde PowerApps, pero el siguiente método deberá funcionar si deshabilitamos selección múltiple para la columna en SharePoint.

Resolviendo columnas con datos de elección.

Empezaremos con el tipo de columnas de opciones, aunque el método es el mismo para columnas de búsqueda. Digamos que nuestra lista de SharePoint (MyList) tiene una columna de opciones (MyChoiceColumn) con tres opciones: Opción A, Opción B, Opción C.

Este Patch nos ayudará:

Patch(
    MyList,
    MyRecord,
    {MyChoiceColumn:
        {
        Value: "Choice A",
        '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}
        }
    )

Para hacerlo más práctico, tenemos un control desplegable (Dropdown1) en PowerApps con las siguientes propiedades de objeto:

Table(
    {Value: "Choice A"},
    {Value: "Choice B"},
    {Value: "Choice C"}
    )
Power Apps columnas búsqueda 2

Luego podemos modificar el Patch que vimos antes a lo siguiente:

Patch(
    MyList,
    MyRecord,
    {MyChoiceColumn:
        {
        Value: Dropdown1.Selected.Value,
        '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}
        }
    )

El caso de las columnas de búsqueda LookUp

Después tenemos el caso con las columnas de tipo de búsqueda. Si tenemos una búsqueda de MyLookupList con MyLookupColumn entonces cambiaremos la propiedad Items del control desplegable a esto:

MyLookupList

NOTA: Para este punto deberemos haber agregado esta lista como una fuente de datos.

Entonces el Patch deberá ser esto:

Patch(
    MyList,
    MyRecord,
    {MyLookupColumn:
        {Id: Dropdown1.Selected.ID,
        Value: Dropdown1.Selected.Title,
        '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}
        }
    )

Como puedes observar, en ambos métodos la clave esta en la declaración del @odata.type, que le permite a SharePoint entender que el llamado que se hace es para un objeto con referencias expandidas. Repetimosla abajo para que no la olvides.

'@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"

Cualquier duda, nos leemos abajo.

Power Apps: Utiliza Patch para actualizar columnas de búsqueda
Scroll hacia arriba