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.

