Tineo Posted July 24, 2023 Share Posted July 24, 2023 I am new to AutoIt, I intend to migrate a Word document automation already implemented (in no-code DocuPilot platform) to AutoIt. The costs of these platforms per document are quite high. The strategy is as follows: we have a very sophisticated ms word template with nested sections and visibility conditions. The data source to fill is a json with nested arrays. Basically a nested array => a section in document. I am trying to get documented in AutoIt scripts and I am still not clear how to do it: I see that it is possible to "parse" the input json to AutoIt structures but then I am not clear how to employ the word.au3 functions to host the information in its corresponding section. Any idea or indication of how to do it? Muchas gracias! sample json: expandcollapse popup{ "cliente_nombre_op": "AYUNTAMIENTO DE TINEO", "contacto_nombre_op": "PEPITO SANZ", "email_organizador_op": "pepito.sanz@tineo.es", "fecha_apertura_op": "17/07/2023", "fechahora_fin_op": "19/07/2023 20:00", "fechahora_inicio_op": "18/07/2023 00:00", "id_op": "010/2023", "nombre_archivo_doc": "010-EXTRA DE DOS DIAS", "nombre_op": "EXTRA DE DOS DIAS", "observaciones_op": "", "ofertas": [ { "asociaciones": [ { "descripcion_asociacion": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "dia_asociacion": "MARTES, DÍA 18", "fechahora_fin_asociacion": "18/07/2023 20:00", "fechahora_inicio_asociacion": "18/07/2023 00:00", "importe_asociacion": "2.288,80", "observaciones_asociacion": "", "recursos": [ { "articulo_no_facturable": false, "cantidad_recurso": 20, "de_inicio_a_fin_recurso": "de 18/07 00:00h. a 20:00h.", "descripcion_recurso": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "descuento_recurso": "0,00", "fechahora_fin_recurso": "18/07/2023 20:00", "fechahora_inicio_recurso": "18/07/2023 00:00", "importe_recurso": "2.288,80", "observaciones_recurso": "", "precio_neto_recurso": "114,44", "precio_recurso": "114,44" } ], "ubicacion_asociacion": "" }, { "descripcion_asociacion": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "dia_asociacion": "MIÉRCOLES, DÍA 19", "fechahora_fin_asociacion": "19/07/2023 20:00", "fechahora_inicio_asociacion": "19/07/2023 00:00", "importe_asociacion": "2.288,80", "observaciones_asociacion": "", "recursos": [ { "articulo_no_facturable": false, "cantidad_recurso": 20, "de_inicio_a_fin_recurso": "de 19/07 00:00h. a 20:00h.", "descripcion_recurso": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "descuento_recurso": "0,00", "fechahora_fin_recurso": "19/07/2023 20:00", "fechahora_inicio_recurso": "19/07/2023 00:00", "importe_recurso": "2.288,80", "observaciones_recurso": "", "precio_neto_recurso": "114,44", "precio_recurso": "114,44" } ], "ubicacion_asociacion": "" }, { "descripcion_asociacion": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "dia_asociacion": "MARTES, DÍA 18", "fechahora_fin_asociacion": "18/07/2023 20:00", "fechahora_inicio_asociacion": "18/07/2023 00:00", "importe_asociacion": "982,60", "observaciones_asociacion": "", "recursos": [ { "articulo_no_facturable": false, "cantidad_recurso": 20, "de_inicio_a_fin_recurso": "de 18/07 00:00h. a 20:00h.", "descripcion_recurso": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "descuento_recurso": "0,00", "fechahora_fin_recurso": "18/07/2023 20:00", "fechahora_inicio_recurso": "18/07/2023 00:00", "importe_recurso": "982,60", "observaciones_recurso": "", "precio_neto_recurso": "49,13", "precio_recurso": "49,13" } ], "ubicacion_asociacion": "" }, { "descripcion_asociacion": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "dia_asociacion": "MIÉRCOLES, DÍA 19", "fechahora_fin_asociacion": "19/07/2023 20:00", "fechahora_inicio_asociacion": "19/07/2023 00:00", "importe_asociacion": "982,60", "observaciones_asociacion": "", "recursos": [ { "articulo_no_facturable": false, "cantidad_recurso": 20, "de_inicio_a_fin_recurso": "de 19/07 00:00h. a 20:00h.", "descripcion_recurso": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "descuento_recurso": "0,00", "fechahora_fin_recurso": "19/07/2023 20:00", "fechahora_inicio_recurso": "19/07/2023 00:00", "importe_recurso": "982,60", "observaciones_recurso": "", "precio_neto_recurso": "49,13", "precio_recurso": "49,13" } ], "ubicacion_asociacion": "" } ], "clausulas": [ { "descripcion_clausula": "*Exento de IVA según el art. 20.1. 15º de la Ley 37/1992, de 28 de diciembre, del Impuesto sobre el Valor Añadido." }, { "descripcion_clausula": "*Como colaboración con la organización del evento, se aplica un descuento, por lo que el importe final será 6.600,00 €" } ], "dias": [ { "asociaciones_por_dia": [ { "de_inicio_a_fin_asociacion_por_dia": "de 18/07 00:00h. a 20:00h.", "descripcion_asociacion_por_dia": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "importe_asociacion_por_dia": "2.288,80", "observaciones_asociacion_por_dia": "" }, { "de_inicio_a_fin_asociacion_por_dia": "de 18/07 00:00h. a 20:00h.", "descripcion_asociacion_por_dia": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "importe_asociacion_por_dia": "982,60", "observaciones_asociacion_por_dia": "" } ], "descripcion_dia": "MARTES, 18 DE JULIO" }, { "asociaciones_por_dia": [ { "de_inicio_a_fin_asociacion_por_dia": "de 19/07 00:00h. a 20:00h.", "descripcion_asociacion_por_dia": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "importe_asociacion_por_dia": "2.288,80", "observaciones_asociacion_por_dia": "" }, { "de_inicio_a_fin_asociacion_por_dia": "de 19/07 00:00h. a 20:00h.", "descripcion_asociacion_por_dia": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "importe_asociacion_por_dia": "982,60", "observaciones_asociacion_por_dia": "" } ], "descripcion_dia": "MIÉRCOLES, 19 DE JULIO" } ], "hay_importe_mejorado_oferta": true, "hay_lista_opcionales": true, "importe_mejorado_oferta": "5.560,00", "importe_oferta": "6.542,80", "nombre_oferta": "OPCION 1", "observaciones_oferta": "", "oferta_id": 1, "opciones": [ { "clausulas_opcion": [ { "descripcion_clausula_opcion": "*Exento de IVA según el art. 20.1. 15º de la Ley 37/1992, de 28 de diciembre, del Impuesto sobre el Valor Añadido." } ], "hay_importe_mejorado_opcion": true, "importe_mejorado_opcion": "3.040,00", "importe_opcion": "3.600,00", "nombre_opcion": "MEDICO", "observaciones_opcion": "", "opcion_id": 1, "recursos_opcion": [ { "articulo_no_facturable_opcion": false, "cantidad_recurso_opcion": 20, "de_inicio_a_fin_recurso_opcion": "de 18/07 00:00h. a 20:00h.", "descripcion_asociacion_de_recurso_opcion": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "descripcion_recurso_opcion": "MEDICO/A", "descuento_recurso_opcion": "0,00", "importe_recurso_opcion": "900,00", "observaciones_recurso_opcion": "", "precio_neto_recurso_opcion": "45,00", "precio_recurso_opcion": "45,00" }, { "articulo_no_facturable_opcion": false, "cantidad_recurso_opcion": 20, "de_inicio_a_fin_recurso_opcion": "de 19/07 00:00h. a 20:00h.", "descripcion_asociacion_de_recurso_opcion": "AMBULANCIA ASISTENCIAL CLASE C (SVA) - 1 TES + 1 DUE", "descripcion_recurso_opcion": "MEDICO/A", "descuento_recurso_opcion": "0,00", "importe_recurso_opcion": "900,00", "observaciones_recurso_opcion": "", "precio_neto_recurso_opcion": "45,00", "precio_recurso_opcion": "45,00" }, { "articulo_no_facturable_opcion": false, "cantidad_recurso_opcion": 20, "de_inicio_a_fin_recurso_opcion": "de 18/07 00:00h. a 20:00h.", "descripcion_asociacion_de_recurso_opcion": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "descripcion_recurso_opcion": "MEDICO/A", "descuento_recurso_opcion": "0,00", "importe_recurso_opcion": "900,00", "observaciones_recurso_opcion": "", "precio_neto_recurso_opcion": "45,00", "precio_recurso_opcion": "45,00" }, { "articulo_no_facturable_opcion": false, "cantidad_recurso_opcion": 20, "de_inicio_a_fin_recurso_opcion": "de 19/07 00:00h. a 20:00h.", "descripcion_asociacion_de_recurso_opcion": "AMBULANCIA ASISTENCIAL CLASE B (SVB) - 2 TES", "descripcion_recurso_opcion": "MEDICO/A", "descuento_recurso_opcion": "0,00", "importe_recurso_opcion": "900,00", "observaciones_recurso_opcion": "", "precio_neto_recurso_opcion": "45,00", "precio_recurso_opcion": "45,00" } ], "resumen_opcion": "" } ], "resumen_oferta": "1 SVA + 1 TES + 1 DUE:18/07\\n + 1 SVA + 1 TES + 1 DUE:19/07\\n + 1 SVB + 2 TES:18/07\\n + 1 SVB + 2 TES:19/07\\n" } ], "organizador_nombre_op": "AYUNTAMIENTO DE LLANERA", "telefono_organizador_op": "658970256", "ubicacion_op": "" } Asturias, spanish dairyland! Link to comment Share on other sites More sharing options...
water Posted July 24, 2023 Share Posted July 24, 2023 Welcome to AutoIt and the forum! If you can do manually what should later be automated with AutoIt you could use the macro recorder in MS Word to create a VBA macro. This can be translated to AutoIt with manageable effort. Tineo 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Tineo Posted July 25, 2023 Author Share Posted July 25, 2023 21 hours ago, water said: Welcome to AutoIt and the forum! If you can do manually what should later be automated with AutoIt you could use the macro recorder in MS Word to create a VBA macro. This can be translated to AutoIt with manageable effort. Thanks for the answer!! 😀 It seems to me that the main obstacle concerns the generation of sections dynamically in the word document. In addition, some visibility conditions are not global but are section specific. It is not a simple task of just replacing elements in the document. On the other hand, the word template is not static, it is "alive" and this will complicate the effort in future maintenance. Asturias, spanish dairyland! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now