SAP Tutorials Blog


 


BAdI enhancement implementation


Name: ZEI_DEMO_ABAP_CONVERTER

BAdI implementations (using the ZBADI_DEMO_ABAP_CONVERTER BAdI definition)

ZBADI_IMPL_DEMO_ABAP_CONV_XML

Implementing class: ZCL_DEMO_ABAP_CONVERTER_XML

ZBADI_IMPL_DEMO_ABAP_CONV_JSON

Implementing class: ZCL_DEMO_ABAP_CONVERTER_JSON

Add the following code to the classes activate them:

ZCL_DEMO_ABAP_CONVERTER_XML


CLASS zcl_demo_abap_converter_xml DEFINITION

  PUBLIC

  FINAL

  CREATE PUBLIC .


  PUBLIC SECTION.


    INTERFACES if_badi_interface .

    INTERFACES zif_demo_abap_converter .

  PROTECTED SECTION.

  PRIVATE SECTION.

ENDCLASS.




CLASS zcl_demo_abap_converter_xml IMPLEMENTATION.

  METHOD zif_demo_abap_converter~convert.

    IF out IS NOT BOUND.

      RETURN.

    ENDIF.


    DATA xml TYPE xstring.


    DATA(tdo) = cl_abap_typedescr=>describe_by_data( content ).

    CASE TYPE OF tdo.

      WHEN TYPE cl_abap_elemdescr.

        CALL TRANSFORMATION id

          SOURCE var = content

          RESULT XML xml.

      WHEN TYPE cl_abap_structdescr.

        CALL TRANSFORMATION id

          SOURCE structure = content

          RESULT XML xml.

      WHEN TYPE cl_abap_tabledescr.

        CALL TRANSFORMATION id

          SOURCE table = content

          RESULT XML xml.

      WHEN OTHERS.

        RETURN.

    ENDCASE.


    DATA(xml_str) = cl_abap_conv_codepage=>create_in( )->convert( xml ).


    out->write( xml_str ).

    out->write( |\n| ).

  ENDMETHOD.

ENDCLASS.


Serkan AKKAVAK

Computer Engineer BSc

Head of SAP & Software Department

Contact : serkurumsal@yandex.com