4 octubre, 2026

OCULTAR O MOSTRAR VARIAS LISTAS DE SHAREPOINT A LA VEZ CON $BATCH EN POWER AUTOMATE

Hola a todos,

El otro día os comentaba como podemos ocultar una lista de SharePoint a través de una petición HTTP: OCULTAR LISTA DE SHAREPOINT CON POWER AUTOMATE. Pero podemos utilizar un proceso Batch para hacerlo con varias listas.

Muy resumido, es que Power Automate no envía cuatro peticiones HTTP independientes. Primero fabrica un texto que contiene cuatro operaciones REST, las mete dentro de un changeset (es el bloque interno del $batch que agrupa las operaciones que modifican datos o configuración), mete ese changeset dentro de un $batch y finalmente envía una única petición a SharePoint. SharePoint descompone ese paquete y ejecuta cada operación.

Ese es precisamente el funcionamiento de $batch: el cuerpo es multipart/mixed, las partes se separan mediante boundaries y las operaciones de escritura se agrupan dentro de un changeset.

Estás son las listas que vamos a ocultar o a mostrar:

Para poder conseguirlo vamos a utilizar el siguiente flujo:

Y ahora vamos acción por acción con el código:

1. DESENCADENAR UN FLUJO MANUALMENTE

Nombre real de la acción:
Desencadenar un flujo manualmente

Conector:
Integrado

No necesita parámetros de entrada.


2. INICIALIZAR varListas

Nombre real de la acción:
Inicializar variable

Nombre:
varListas

Tipo:
Matriz

Valor:

[
  "tblOrganigrama",
  "TEST_AI",
  "TEST_AI_COMPLETO",
  "TEST_AI_PEOPLE"
]


3. INICIALIZAR varOcultar

Nombre real de la acción:
Inicializar variable

Nombre:
varOcultar

Tipo:
Booleano

Valor:

false

true  = Ocultar las listas
false = Mostrar las listas


4. INICIALIZAR varBatchBoundary

Nombre real de la acción:
Inicializar variable

Nombre:
varBatchBoundary

Tipo:
Cadena

Valor:

EXPRESIÓN

concat('batch_',guid())


5. INICIALIZAR varChangeSetBoundary

Nombre real de la acción:
Inicializar variable

Nombre:
varChangeSetBoundary

Tipo:
Cadena

Valor:

EXPRESIÓN

concat('changeset_',guid())


6. INICIALIZAR varOperaciones

Nombre real de la acción:
Inicializar variable

Nombre:
varOperaciones

Tipo:
Cadena

Valor:

Vacío


7. APLICAR A CADA UNO

Nombre real de la acción:
Aplicar a cada uno

Seleccionar una salida de los pasos anteriores:

EXPRESIÓN

variables('varListas')


8. ANEXAR A LA VARIABLE DE CADENA

Esta acción se encuentra dentro de Aplicar a cada uno.

Nombre real de la acción:
Anexar a la variable de cadena

Nombre:
varOperaciones

Valor:

EXPRESIÓN

concat(
'--',variables('varChangeSetBoundary'),decodeUriComponent('%0D%0A'),
'Content-Type: application/http',decodeUriComponent('%0D%0A'),
'Content-Transfer-Encoding: binary',decodeUriComponent('%0D%0A%0D%0A'),
'MERGE <URL_DEL_SITIO_SHAREPOINT>/_api/web/lists/getbytitle(''',items('Aplicar_a_cada_uno'),''') HTTP/1.1',decodeUriComponent('%0D%0A'),
'Content-Type: application/json;odata=verbose',decodeUriComponent('%0D%0A'),
'Accept: application/json;odata=verbose',decodeUriComponent('%0D%0A'),
'If-Match: *',decodeUriComponent('%0D%0A%0D%0A'),
'{"__metadata":{"type":"SP.List"},"Hidden":',if(variables('varOcultar'),'true','false'),'}',decodeUriComponent('%0D%0A')
)


9. REDACTAR

Nombre real de la acción:
Redactar

Conector:
Operaciones de datos

Entradas:

EXPRESIÓN

concat(
'--',variables('varBatchBoundary'),decodeUriComponent('%0D%0A'),
'Content-Type: multipart/mixed; boundary=',variables('varChangeSetBoundary'),decodeUriComponent('%0D%0A%0D%0A'),
variables('varOperaciones'),
'--',variables('varChangeSetBoundary'),'--',decodeUriComponent('%0D%0A'),
'--',variables('varBatchBoundary'),'--',decodeUriComponent('%0D%0A')
)


10. ENVIAR UNA SOLICITUD HTTP A SHAREPOINT

Nombre real de la acción:
Enviar una solicitud HTTP a SharePoint

Conector:
SharePoint

Dirección del sitio:
Seleccionar el sitio de SharePoint correspondiente.

Método:

POST

URI:

_api/$batch


Encabezados:

Clave:

Content-Type

Valor:

EXPRESIÓN

concat('multipart/mixed; boundary=',variables('varBatchBoundary'))


Cuerpo:

EXPRESIÓN

outputs('Redactar')

Una vez que tengamos todo montado, solo tendremos que indicar las listas que queremos ocultar y especificar true (para ocultar y false para mostrar)


El resultado es el esperado.

Y como siempre, podéis hacer esto de varias formas, pero hoy querido hacerlo con el batch.

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