Paso - Transformar estructuras ABAP a un XML.
Clase: /EDGE/CL_FC_ABAP_XML_TRAN_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 implemente un método abstracto.
Alcance: transformación de salida, es decir, este paso permite transformar una estructura ABAP a un XML.
Precondiciones:
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 la estructura ABAP en el XML.
En el contexto del paso debe venir el nombre de la interface que contiene la definición del XML, es decir, la que se generó en el primer paso. Debe venir en el siguiente parámetro: pc_context->data donde name = /edge/cl_fc_constants=>input_param_interf_abap_to_xml. En caso de no venir, se recomienda reimplementar el método EXECUTE_STEP, adicionándo este parámetro al contexto. Se puede verificar la clase /EDGE/CL_FC_CRVJL_STEP_XML_TRA donde se reimplementó el método EXECUTE_STEP y se adicionó el parámetro requerido. Al final se debe hacer un llamado al super de la siguiente forma: pe_success = super->execute_step( CHANGING pc_context = pc_context ).
En el contexto del paso debe venir el nombre del método de la interfaz que contiene la definición del XML, es decir, la que se generó en el primer paso. Debe venir en el siguiente parámetro: pc_context->data donde name = /edge/cl_fc_constants=>input_param_method_abap_to_xml. En caso de no venir, se recomienda reimplementar el método EXECUTE_STEP, adicionándo este parámetro al contexto. Se puede verificar la clase /EDGE/CL_FC_CRVJL_STEP_XML_TRA donde se reimplementó el método EXECUTE_STEP y se adicionó el parámetro requerido. Al final se debe hacer un llamado al super de la siguiente forma: pe_success = super->execute_step( CHANGING pc_context = pc_context ).
La subclase debe implementar el siguiente método:
CHANGE_XML: si se requiere modificar el XML generado, en este método se puede hacer dicho proceso. En caso de no requerir modificarlo, entonces se deja vacía la implementación.
Post-condiciones:
Al final se deja en el contexto del proceso el XML en formato STRING y en formato XSTRING para futuros usos.
Ambos quedan en el context→data
Para el caso del XML en formato STRING queda como name = /edge/cl_fc_constants=>input_param_xml_abap_to_xml.
Para el caso del XML en formato XSTRING queda como name = /edge/cl_fc_constants=>input_param_xxml_abap_to_xml.
Avvale 2024