Ir al contenido

Download Human Task File

Tipo: human-task-download-file  ·  Paquete: Human Task Activities v1.3.3  ·  Salida: List<string>

Desde: v1.3.0

Baja a tu máquina los archivos de una respuesta: la factura escaneada, el soporte de un anticipo, las fotos de una inspección. Cuando la persona responde una tarea con un formulario que pide adjuntos, el robot recibe en fields solo la referencia de cada archivo ({id, name, …}); con esta actividad los descarga para seguir trabajando con ellos (subirlos al ERP, leerlos con OCR, archivarlos).

  1. Busca la tarea taskId en el ambiente donde corre la ejecución. La tarea debe estar cerrada (decidida, vencida o cancelada): si sigue pendiente o tomada, la actividad falla.
  2. Elige qué archivos bajar:
    • Sin field ni file: todos los archivos de la respuesta.
    • Con field: solo los de ese campo. Para una columna de archivos dentro de una tabla, usa tabla.columna (por ejemplo, gastos.soporte); con solo tabla, trae los de todas sus columnas.
    • Con file: solo los que indiques, tal como llegaron en fields (un archivo, una lista de archivos o el id). Si pasas file pero está vacío, no descarga nada.
  3. Los guarda en destination con su nombre original, saneado para Windows (sin rutas ni caracteres no válidos). Si dos archivos se llaman igual, el segundo queda como nombre (2).ext. Un archivo que ya exista con ese nombre en la carpeta se reemplaza.
  4. Devuelve la lista de rutas locales, en el mismo orden en que se descargaron.

Solo se descargan archivos que forman parte de la respuesta de esa tarea (los adjuntos que el robot puso al crearla no). Cada descarga queda en la auditoría como un archivo consultado por el robot.

ParámetroTipoPor defectoDescripción
taskIdstring—Id de la tarea (el id que devolvió Create Human Task).
destinationstring—Carpeta donde se guardan los archivos (se crea si no existe). Si se descarga un solo archivo y destination tiene extensión, no termina en \ y no es una carpeta existente, se usa como ruta completa del archivo (ej. C:\salida\soporte.pdf).
ParámetroTipoPor defectoDescripción
fieldstring—Clave del campo de archivos del formulario, o tabla.columna para una columna de una tabla. Vacío = todos los archivos.
fileobject—Un archivo ({id, …}), una lista de ellos o un id, tomados de fields. Vacío pero indicado = no descarga nada. Se puede combinar con field.

Devuelve una List<string> con la ruta local completa de cada archivo descargado. Si la respuesta no tiene archivos (o no los tiene en field), o si file venía vacío, la lista está vacía: no es un error.

MensajeCausa y solución
'taskId' es obligatorio. / 'destination' es obligatorio.Falta un parámetro requerido.
La tarea todavía no tiene respuesta: espera a que se decida (por ejemplo, con «Wait for Human Task»).La tarea sigue pending o claimed. Espera la decisión antes de descargar.
'file' debe ser un archivo de la respuesta ({ id, name, … }), una lista de ellos o el id del archivo.file no tiene una forma válida (por ejemplo, un diccionario sin id).
El archivo … no está en la respuesta de la tarea. / … (campo «…»).Pediste en file un archivo que no es de esa respuesta, o que no está en field.
Zoan Cloud no devolvió el enlace de descarga del archivo. / La descarga falló: HTTP ….Falló la descarga. Reintenta con Retry.
… HTTP 404: …La tarea no existe. / …Task not found…El id no es válido o la tarea es de otro ambiente.
Las actividades de tareas humanas necesitan el contexto de ejecución de Zoan Automation. Falta: …El proceso no corre desde Zoan Cloud ni desde el Designer con sesión iniciada.

Los errores de comunicación llegan con el prefijo “No se pudieron descargar los archivos de la tarea: ”.

Descargar los soportes de una solicitud de anticipo ya decidida y recorrerlos:

Wait for Human Task taskId = tarea["id"] → output: resultado
If condition = resultado["decision"] == "Aprobar"
└─ then:
Download Human Task File taskId = tarea["id"] field = "soporte"
destination = "C:\Anticipos\" + str(resultado["id"])
→ output: archivos
For Each items = archivos itemVariable = ruta
└─ activities:
Log level = info message = "Soporte descargado: " + ruta

archivos queda con la ruta de cada soporte, lista para recorrerla con For Each.