Guía Completa: Funciones Esenciales para Importar Formularios de Power Automate a Listas de SharePoint

Personalmente, encuentro Microsoft Forms increíblemente conveniente, especialmente porque no requiere ningún ajuste de interfaz de usuario.

Esta es una de sus características más atractivas.

Para interfaces que no requieren campos de entrada extensos, realmente recomiendo usar Forms en lugar de Power Apps.

Al importar respuestas de Microsoft Forms a listas de SharePoint a través de Power Automate, necesitarás usar funciones específicas de Power Automate. Aquí tienes una guía completa de estas funciones esenciales.

Configuración Inicial: Creación de Formularios

Así es como se ve nuestro formulario de ejemplo: Sample Microsoft Forms questionnaire showing different question types
  • Texto
  • Texto (Entero)
  • Fecha
  • Texto (Decimal)
  • Opciones (con ‘Otro’)
  • Clasificación

Configuración Inicial: Lista de SharePoint

Así es como está estructurada nuestra lista de SharePoint para almacenar los datos de Forms: SharePoint list structure showing different column types
  • Línea única de texto
  • Número (Entero)
  • Fecha y hora
  • Número (Decimal)
  • Opción
  • Número (Entero)

Utilizaremos Power Automate para transferir las respuestas de Forms a esta lista de SharePoint.

Configuración Inicial: Power Automate

Comienza desde «Flujo automatizado»
Power Automate automated flow creation screen
Selecciona el desencadenador «When a new response is submitted» para Forms

Forms trigger selection in Power Automate

Después de seleccionar tu Forms en el desencadenador, agrega la acción «Get response details» para Forms e ingresa el ID de la acción «When a new response is submitted».
Power Automate response details configuration
Finalmente, agrega la acción «Create item» de SharePoint, ¡y tu configuración de Power Automate está completa!
SharePoint create item action setup in Power Automate

Funciones Utilizadas en la Integración Forms → Power Automate → Lista de SharePoint

Todas las respuestas de Forms se transfieren a Power Automate como tipo texto.
Ejemplo de respuestas de Forms en Power Automate mostrando formato de texto

Al almacenar estos valores de texto en listas de SharePoint, necesitas convertirlos al tipo de dato apropiado para cada columna.

Forms «Texto» → Lista de SharePoint «Línea única de texto»

Para la conversión de texto a texto, simplemente puedes agregar contenido dinámico sin ninguna conversión Direct text mapping in Power Automate

Forms «Texto» → Lista de SharePoint «Número (Entero)»

Para convertir la entrada de texto de Forms a un número entero en la lista de SharePoint, usa la función int().

Selecciona «int» desde «Expresión» bajo «Contenido dinámico» Selecting int function in Power Automate expressions
Luego especifica la respuesta de Forms que deseas convertir a entero como argumento para la función int() Setting up int function with Forms response

Forms «Texto» → Lista de SharePoint «Número (Decimal)»

Para números decimales, usa la función float().

Siguiendo el mismo proceso, selecciona «float» desde «Expresión» bajo «Contenido dinámico» Selecting float function in Power Automate expressions
Luego especifica la respuesta de Forms que deseas convertir a decimal como argumento para la función float() Setting up float function with Forms response

Forms «Fecha» → Lista de SharePoint «Fecha y hora»

Para convertir una respuesta de tipo «Fecha» de Forms al formato «Fecha y hora» de SharePoint, usa la función formatDateTime().

Selecciona «formatDateTime» desde «Expresión» bajo «Contenido dinámico» Selecting formatDateTime function in Power Automate expressions
Luego especifica la respuesta de fecha de Forms que deseas convertir como argumento para la función formatDateTime() Setting up formatDateTime function with Forms response

Forms «Opción» → Lista de SharePoint «Opción»

Al transferir respuestas desde «Opción» de Forms a una columna «Opción» de SharePoint, puedes simplemente agregar contenido dinámico sin ninguna conversión, igual que con los campos de texto.

Comienza desde «Ingresar valor personalizado» Power Automate custom value selection interface
Selecciona el valor deseado. Selecting values in Power Automate

Curiosamente, cuando se usa una pregunta de opción con la opción «Otro», el flujo funciona perfectamente incluso si la respuesta no coincide con ninguna de las opciones predefinidas en la lista de SharePoint.

Por ejemplo, en una columna de opción con las opciones A, B, O y AB SharePoint choice column showing blood type options
Incluso si alguien responde con «Tipo Bombay» en Forms Forms response showing Bombay type selection
La opción no existente «Bombay» se almacenará correctamente en la columna de la lista de SharePoint SharePoint list showing Bombay type entry

Forms «Clasificación» → Lista de SharePoint «Número (Entero)»

Finalmente, al transferir una respuesta de «Clasificación» de Forms a una columna «Número (Entero)» de SharePoint, usa la función int(), tal como hicimos para la conversión de «Texto a Número».

Selecciona «int» desde «Expresión» bajo «Contenido dinámico» Selecting int function for rating conversion in Power Automate
Luego especifica la respuesta de clasificación de Forms que deseas convertir como argumento para la función int() Setting up int function with Forms rating response

Preguntas de Opción Múltiple

Manejo de Campos Opcionales (Valores en Blanco) en Forms

En Microsoft Forms, puedes tener campos «Obligatorios» y «Opcionales». Cuando usas campos opcionales, las respuestas en blanco pueden enviarse a Power Automate.

Por ejemplo, si hacemos todos los campos opcionales en nuestro Forms de muestra y enviamos sin completar ninguna respuesta, Power Automate recibe estos valores en blanco:
Power Automate mostrando valores en blanco de respuestas de Forms
Si aplicamos directamente las funciones int(), float(), o formatDateTime() a estos valores en blanco, obtendremos errores de argumento ya que estas funciones no pueden procesar valores vacíos:
Mensaje de error mostrando error de argumento inválido en Power Automate

Para manejar esto, necesitamos usar la función if() cuando transferimos respuestas opcionales de Forms a columnas «Número» o «Fecha y hora» de SharePoint.

Por ejemplo, cuando convertimos campos opcionales a números, usa esta expresión:

if(
    empty(outputs('Get response details')?['body/r2cf09ac74d9b4a749b3e0c4d0c9a1ede']), 
    null, 
    int(outputs('Get response details')?['body/r2cf09ac74d9b4a749b3e0c4d0c9a1ede']))
)
Para la conversión de «Fecha y hora», simplemente reemplaza int() con formatDateTime():

if(
    empty(outputs('Get response details')?['body/r2cf09ac74d9b4a749b3e0c4d0c9a1ede']),
    null,
    formatDateTime(outputs('Get response details')?['body/r2cf09ac74d9b4a749b3e0c4d0c9a1ede']))
)

Nota: Saltos de línea añadidos para mejor legibilidad.

Nota: La función if() no es necesaria cuando se transfieren respuestas opcionales de Forms a columnas «Línea única de texto» o «Opción» de SharePoint, ya que estas columnas pueden aceptar valores en blanco.

Así es como debería verse tu flujo de Power Automate cuando todos los campos de Forms son opcionales: Configuración completa del flujo de Power Automate para campos opcionales
Cuando se ejecuta, crea un elemento de lista con valores vacíos: Lista de SharePoint mostrando valores vacíos

Si tu lista de SharePoint tiene columnas obligatorias, este flujo generará errores. Sin embargo, puedes resolver esto reemplazando el «null» en el segundo argumento con un valor predeterminado apropiado para tus requisitos.

コメント

Título y URL copiados