We ran into a roadblock when our client expressed a specific requirement: the occasional need to edit invoices after generation. Now if you have bought Adobe license it is no-brainer, otherwise it is not feasible with the native PDF format.
Caso de uso: Conversión de facturas de PDF a DOCX
The invoices are generated as non-editable PDFs by SAP Adobe forms with a complicated design. After exploring many technical options, I came to realize there was no way to convert file yet keep the exact original formatting (including images and colors) within SAP unless I convert all the Adobe form invoices to Smartform and then get them printed into XLS version. But it wasn’t acceptable so I decided to make things interesting by integrating Python with SAP.
Python offers a large catalog of libraries to perform nearly anything. But not all of them can be safe to use. I came across a library which converted PDF to XLS format like a charm, exact same format. But I could not rely upon it with my client’s data as I wasn’t sure how it worked in backend. If it saves any uploaded file somewhere in their cloud. So I decided to go with a relatively reliable and much popular library — PDF2DOCX (código disponible
en línea
para asegurarme de que funcione localmente).
De vez en cuando nos encontramos con la necesidad de convertir un PDF a algún formato editable, por lo que decidí crear un programa SAP genérico que llamaría a un script de Python en el backend para convertir cualquier archivo PDF a formato .docx.
Objetivo de la Integración
-
Mantener la precisión de los datos:
Asegurar que durante la conversión de PDF a DOCX, todos los datos, formato y elementos estructurales se conserven con precisión para evitar cualquier pérdida o representación errónea de la información.
-
Mantener la seguridad de los datos:
Garantizar que los datos sensibles y confidenciales del cliente permanezcan seguros al gestionar el proceso de conversión internamente, sin transmitir datos externamente, cumpliendo así con protocolos estrictos de seguridad y privacidad de datos.
-
Solución interna:
Desarrollar una solución dentro del marco tecnológico existente (SAP y Python), eliminando así la necesidad de software o servicios externos y garantizando una integración más estrecha con los procesos existentes.
-
Accesibilidad del usuario:
Crear una interfaz y proceso amigables para el usuario dentro de SAP, donde los usuarios puedan seleccionar, convertir y utilizar documentos fácilmente, garantizando que la complejidad en segundo plano permanezca abstracta.
-
Enfoque rentable:
Proporcionar una solución confiable para la conversión de documentos sin incurrir en costos adicionales relacionados con licencias de software o servicios de terceros.
Flujo de trabajo detallado
-
Dado que el código de Python se ejecutará en el servidor SAP, Python debe estar instalado allí. Generalmente, el equipo de Basis o OS tiene acceso para instalar Python en el servidor SAP. Para este proyecto, se requiere la instalación de 2 bibliotecas de Python después de la instalación de Python: OS, PDF2DOCX.
-
Pedro Pascal
Se unió el 07/03/2018