Paso - Firmar digitálmente un XML.
Clase: /EDGE/CL_FC_XML_SIGN_STEP
Tipo: clase abstracta, no se puede utilizar directamente en la configuración. Solo se puede utilizar como super clase de otra clase donde se implementen una serie de métodos abstractos.
Alcance: esta clase fue implementada siguiendo el patrón template, en el cual se espera que la subclase implemente ciertos métodos, mientras que la super clase va invocando la secuencia de métodos que considera pertinentes para lograr el objetivo de firmar un archivo XML.
Precondiciones:
Debe estar configurada una clase documental que pueda contener el XML no firmado. Para esto la subclase debe implementar el método GET_INFO_NOT_SIGNED_XML; el cual debe ser el responsable de retornar la información de archivado para el documetno XML no firmado.
Debe estar configurada una clase documental que pueda contener el XML firmado. Para esto la subclase debe implementar el método GET_INFO_SIGNED_XML; el cual debe ser el responsable de retornar la información de archivado para el documetno XML firmado. Adicionalmente, este método deberá retornar la interfaz y método ABAP que permite hacer la serialización del XML. Según esto, entonces se debe importar la definición del XML, es decir, el XSD, como un WSDL al sistema SAP, de tal forma que se creen los proxies necesarios como si se estuviera publicando un servicio. Esta actividad solo se realiza una vez y debe ser transportada a cada ambiente. La idea es que el Framework ABAP genere una clase y una interfaz con un método, donde al método le entre como único parámetro la definición tal cual del XML. De esta forma se haría uso de herramientas estándar para serializar el XML con base en la estructura ABAP. También servirá para realizar la validación de la estructura del XML firmado.
En caso que el XML no firmado no se encuentre archivado o adjunto al Business Object del proceso de negocio, la super clase, invocará el método GET_NOT_SIGNED_XML; el cual debe ser el responsable de obtener el XML no firmado en bytes (xstring o binary). Éste deberá ser implementado por la subclase.
La subclase debe implementar el método SIGN_XML, el cual es el responsable de firmar el archivo XML que se le pasa por parámetro en formato xstring. Y debe retornar el XML firmado.
Post-condiciones:
Si sucede alguna excepción en el proceso, está se captura y se propaga al orquestador para que se detenga el proceso.
Si el proceso es exitoso, se archiva el XML firmado con los datos de la clase documental de XML no firmado obtenido anteriormente.
Avvale 2024