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

2 comentarios en «Power Apps: Utiliza Patch para actualizar columnas de búsqueda»

  1. saludos,

    estoy realizando una actualización en una columna compleja de tipo persona, pero me genera un error indicando que es del tipo tabla y encuentra es un registro. Cual debe ser la sintaxis para que funcione. La columna que presenta el error es APROBADOR.

    Agradezco su colaboración

    la instrucción es la siguiente:

    Patch(
    ‘Facturas MRC’;
    LookUp(
    ‘Facturas MRC’;
    Title = DataCardValue1.Text && ‘Nro. Factura’ = Value(DataCardValue2.Text)
    );
    {
    Aprobado: { id: 1; Value: «Aprobado» } ;
    ‘Fecha Aprobacion ‘: Now();
    Observacion: VarObs
    ;
    Aprobador: {
    ‘@odata.type’:»#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser»;
    DisplayName: User().FullName;
    Claims: «i:0#.f|membership|» & Lower(User().Email);
    Email: User().Email }
    }
    );;

    1. Hola Carlos!
      De pura casualidad la columna aprobador es del tipo multiseleccion?
      Si es asi, es por eso que se esta esperando que tu valor sea una tabla (osea una lista de registros).
      Puedes checar por ejemplo este post para que veas como se hace, o usar la funcion Table para construir en una variable los valores de tu registro y luego esa pasarla a aprobador.
      https://powerusers.microsoft.com/t5/Building-Power-Apps/How-can-I-patch-office-365-search-user-multiple-selection/m-p/723635

      Saludos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Scroll hacia arriba