Solución de problemas de scripts de Office que se ejecutan en Power Automate
Power Automate ejecuta scripts en su nombre en sesiones independientes de Excel. Esto provoca algunos cambios de comportamiento que pueden crear problemas con determinados scripts o escenarios. También hay limitaciones y comportamientos que deben conocer los escritores de scripts de la plataforma Power Automate. Asegúrese de leer los artículos Solución de problemas de scripts y requisitos de plataforma y scripts de Office con scripts de Office, ya que gran parte de esa información también se aplica a los scripts de los flujos.
Sugerencia
Si está empezando a usar scripts de Office con Power Automate, comience con Ejecutar scripts de Office con Power Automate para obtener información sobre las plataformas.
Importante
Para usar scripts de Office en Power Automate, debe tener una licencia empresarial de Microsoft 365. Las licencias de Office 365 Enterprise E1 y Office 365 F3 pueden usar scripts con Power Automate, pero no tienen integraciones de Power Automate directamente en Excel.
Evitar referencias relativas
Power Automate ejecuta el script en el libro de Excel elegido en su nombre. El libro podría cerrarse cuando esto sucede. Cualquier API que se base en el estado actual del usuario, como Workbook.getActiveWorksheet
, puede comportarse de forma diferente en Power Automate. Esto se debe a que las API se basan en una posición relativa de la vista o cursor del usuario y esa referencia no existe en un flujo de Power Automate.
Algunas API de referencia relativas producen errores en Power Automate. Otros tienen un comportamiento predeterminado que implica el estado de un usuario. Al diseñar los scripts, asegúrese de usar referencias absolutas para hojas de cálculo e intervalos. Esto hace que el flujo de Power Automate sea coherente, incluso si se reorganizan las hojas de cálculo.
Métodos de script que producen un error en los flujos de Power Automate
Los métodos siguientes producen un error y producen un error cuando se llama desde un script en un flujo de Power Automate.
Clase | Método |
---|---|
Chart | activate |
Rango | select |
Workbook | getActiveCell |
Workbook | getActiveChart |
Workbook | getActiveSlicer |
Workbook | getSelectedRange |
Workbook | getSelectedRanges |
Métodos de script con un comportamiento predeterminado en flujos de Power Automate
Los métodos siguientes usan un comportamiento predeterminado, en lugar del estado actual de cualquier usuario.
Clase | Método | Comportamiento de Power Automate |
---|---|---|
Workbook | getActiveWorksheet |
Devuelve la primera hoja de cálculo del libro o la hoja de cálculo activada actualmente por el Worksheet.activate método . |
Worksheet | activate |
Marca la hoja de cálculo como la hoja de cálculo activa para fines de Workbook.getActiveWorksheet . |
Actualización no totalmente compatible con Power Automate
Los scripts de Office no pueden actualizar la mayoría de los datos cuando se ejecutan en Power Automate. La mayoría de los métodos de actualización, como PivotTable.refresh
, no hacen nada cuando se llama en un flujo.
Workbook.refreshAllDataConnections
solo se actualiza cuando PowerBI es el origen. Además, Power Automate no desencadena una actualización de datos para las fórmulas que usan vínculos de libro.
Métodos de script que no hacen nada en flujos de Power Automate
Los métodos siguientes no hacen nada en un script cuando se llama a través de Power Automate. Siguen devolviendo correctamente y no producen ningún error.
Clase | Método |
---|---|
PivotTable | refresh |
Workbook | refreshAllPivotTables |
Worksheet | refreshAllPivotTables |
Métodos de script con un comportamiento diferente en Power Automate
Los métodos siguientes actúan de forma diferente en los flujos de Power Automate que cuando se ejecutan a través de Excel.
Clase | Método | Comportamiento de Power Automate |
---|---|---|
Workbook | refreshAllDataConnections |
Solo actualiza los orígenes de PowerBI. Para otros orígenes, el método devuelve correctamente pero no hace nada. |
Selección de libros con el control del explorador de archivos
Al compilar el paso Ejecutar script de un flujo de Power Automate, debe seleccionar qué libro forma parte del flujo. Use el explorador de archivos para seleccionar el libro, en lugar de escribir manualmente el nombre del libro.
Para obtener más contexto sobre la limitación de Power Automate y una explicación de posibles soluciones alternativas para la selección dinámica de libros, consulte este subproceso en la comunidad de Microsoft Power Automate.
Pasar matrices completas como parámetros de script
Power Automate permite a los usuarios pasar matrices a conectores como una variable o como elementos únicos de la matriz. El valor predeterminado es pasar elementos únicos, que compila la matriz en el flujo. Para scripts u otros conectores que toman matrices completas como argumentos, debe seleccionar el botón Cambiar a la matriz completa de entrada para pasar la matriz como un objeto completo. Este botón se encuentra en la esquina superior derecha de cada campo de entrada de parámetros de matriz.
Diferencias de zona horaria
Los archivos de Excel no tienen una ubicación o zona horaria inherentes. Cada vez que un usuario abre el libro, su sesión usa la zona horaria local de ese usuario para los cálculos de fecha. Power Automate siempre usa UTC.
Si el script usa fechas o horas, puede haber diferencias de comportamiento cuando el script se prueba localmente frente a cuando se ejecuta a través de Power Automate. Power Automate le permite convertir, dar formato y ajustar los tiempos. Consulte Trabajar con fechas y horas dentro de los flujos para obtener instrucciones sobre cómo usar esas funciones en Power Automate y pasar datos hacia y desde scripts de Power Automate para obtener información sobre cómo proporcionar esa información de tiempo para el script.
Campos de parámetro de script o salida devuelta que no aparecen en Power Automate
Hay dos motivos por los que los parámetros o los datos devueltos de un script no se reflejan con precisión en el generador de flujos de Power Automate.
- La firma del script (los parámetros o el valor devuelto) ha cambiado desde que se agregó el conector de Excel Business (Online ).
- La firma de script usa tipos no admitidos. Compruebe los tipos con respecto a las restricciones para los tipos de valor devuelto y de parámetro de Scripts de Office.
La firma de un script se almacena con el conector de Excel Business (Online) cuando se crea. Quite el conector antiguo y cree uno nuevo para obtener los parámetros más recientes y los valores devueltos para la acción Ejecutar script .
Algunas API web no están disponibles con flujos de Power Automate
Es posible que algunas API web, como TextEncoder
y Crypto
, no estén disponibles al ejecutar scripts de Office en flujos de Power Automate. Consulte LAS API web de MDN para obtener una lista completa de las API web.
Power Automate devuelve el error *API* is not defined
, donde *API*
especifica una biblioteca como TextEncoder
, al ejecutar un script que usa una API no admitida.