Necesito desarrollar un script en basic, no estoy seguro la versión, pero tiene que funcionar en Automate 8 de la empresa helpsystems, por ejemplo puede probarse haciendo un "Advanced Workflow" en el software Globalscape EFT Server en la versión 7.4.5.6. La misma se puede descargar e instalar en versión developer de este link
https://www.globalscape.com/replacement-software.
El script sera parte de un proceso RPA de automatización superior y deberá cumplir con las siguientes funciones:
1- Recibir el path de un archivo xls, xlsx u ods (cualquiera de ellos solo tiene una hoja, si tuviera mas se descarta) y deberá generar en un path de salida, N archivos con idéntico formato al recibido, pero agrupando por la primer columna. Por ejemplo, si llegara un
animales.xls con 10 columnas y 101 filas, donde la primer fila es la de cabecera y luego hay 50 registros cuyo el valor de la primer columna es "Perro" y otros 50 con el valor de la primera columna igual a "Gato" (No necesariamente ordenadas), deberían grabarse en el path de salida dos archivos,
animales_Perro.xls y
animales_Gato.xls, cada uno con las mismas 10 columnas, la misma primer fila de cabecera y sus 50 filas con los valores correspondientes.
2- Recibir el path de un archivo xls, xlsx, doc, docx, odt u ods y exportarlo con la ayuda de Microsoft Office o la ayuda de LibreOffice segun corresponda por la extensión, a formato pdf.
Aclaración MUY importante:
- Para manejar los archivos xls y xlsx se debe usar Microsoft Excel 2016 (por lo que vi, usando CreateObject("Excel.Application"))
- Para manejar los archivos doc y docx se debe usar Microsoft Word 2016.
- Para manejar los archivos ods, se debe hacer similar a excel, pero usando el LibreOffice 6.0.3 Calc.
- Para manejar los archivos odt se debe usar LibreOffice 6.0.3 Writer.
Solución técnica propuesta (se aceptan propuestas con mejoras):
Función 1: Abre un archivo xls, xlsx u ods, aplica un autofiltro por la primer columna y luego, por cada uno de los valores posibles, selecciona el resultado, lo copia y lo pega en un archivo nuevo. Se debe poder enviar por parámetro la ruta de origen, la ruta de destino. Como resultado la función debería devolver un array con todos los valores posibles de la columna del autofiltro (para que el software que viene a continuación pueda saber cuales fueron los archivos generados).
La idea del autofiltro es para que a nivel de formato, incluso a nivel estético, el archivo de salida, sea idéntico al de entrada.
Función 2: Hace el test de la función 1 con varios archivos que están en carpetas fijas. Desarrollo de por lo menos, 10 casos de prueba.
Función 3: Recibe el path a un archivo xls, xlsx, doc, docx, odt u ods y un path de salida. Luego la función abre el archivo con Microsoft Excel, Microsoft Word, LibreOffice Calc o LibreOffice Writer, según corresponda y hace la exportación a PDF en el path de salida.
Main: En la función main pueden dejar el llamado a la función 2, pero tengan en cuenta que ahí haré las modificaciones para recibir parámetros del automate y llamar a la función que corresponda con los parámetros que corresponda.
La condición para la aprobación de la entrega sera, obviamente que pase los casos de test propios desarrollados en la función 2 y luego de entregado yo haría mas pruebas con archivos aleatorios.
Saludos y desde ya muchas gracias por interesarse.
Contexto general del proyecto
Necesito avanzar con este proyecto y manejar la API de Office/Libreoffice desde basic es un tema que tendría que investigar, por tal motivo, para poder acelerar los plazos y avanzar con otros puntos, prefiero pasarle esto a una persona que ya tenga experiencia en esto.
La condición para la aprobación de la entrega sera, obviamente que pase los casos de test propios desarrollados en la función 2 y luego de entregado yo haría mas pruebas con archivos aleatorios.
Plazo de Entrega: 23 Julio, 2020