anchor.diff:  
     METHOD zif_abapgit_object~serialize.
   
  -    DATA: lv_iobjnam TYPE rsiobjnm,
  -          ls_return  TYPE bapiret2,
  -          lr_details TYPE REF TO  data.
  -
  -    FIELD-SYMBOLS: <ls_details> TYPE any.
  -
  -    CREATE DATA lr_details TYPE ('BAPI6108').
  +    DATA:
  +      lv_iobjnam                  TYPE rsiobjnm,
  +      ls_return                   TYPE bapiret2,
  +      lr_details                  TYPE REF TO data,
  +      lr_details2                 TYPE REF TO data,
  +      lr_compounds                TYPE REF TO data,
  +      lr_attributes               TYPE REF TO data,
  +      lr_navigationattributes     TYPE REF TO data,
  +      lr_atrnavinfoprovider       TYPE REF TO data,
  +      lr_hierarchycharacteristics TYPE REF TO data,
  +      lr_elimination              TYPE REF TO data,
  +      lr_hanafieldsmapping        TYPE REF TO data,
  +      lr_xxlattributes            TYPE REF TO data.
  +
  +    FIELD-SYMBOLS:
  +      <ls_details>                  TYPE any,
  +      <lt_compounds>                TYPE STANDARD TABLE,
  +      <lt_attributes>               TYPE STANDARD TABLE,
  +      <lt_navigationattributes>     TYPE STANDARD TABLE,
  +      <lt_atrnavinfoprovider>       TYPE STANDARD TABLE,
  +      <lt_hierarchycharacteristics> TYPE STANDARD TABLE,
  +      <lt_elimination>              TYPE STANDARD TABLE,
  +      <lt_hanafieldsmapping>        TYPE STANDARD TABLE,
  +      <lt_xxlattributes>            TYPE STANDARD TABLE.
  +
  +    TRY.
  +        CREATE DATA lr_details TYPE ('BAPI6108').
  +        CREATE DATA lr_compounds TYPE STANDARD TABLE OF ('BAPI6108CM').
  +        CREATE DATA lr_attributes TYPE STANDARD TABLE OF ('BAPI6108AT').
  +        CREATE DATA lr_navigationattributes TYPE STANDARD TABLE OF ('BAPI6108AN').
  +        CREATE DATA lr_atrnavinfoprovider TYPE STANDARD TABLE OF ('BAPI6108NP').
  +        CREATE DATA lr_hierarchycharacteristics TYPE STANDARD TABLE OF ('BAPI6108HC').
  +        CREATE DATA lr_elimination TYPE STANDARD TABLE OF ('BAPI6108IE').
  +        CREATE DATA lr_hanafieldsmapping TYPE STANDARD TABLE OF ('BAPI6108HANA_MAP').
  +        CREATE DATA lr_xxlattributes TYPE STANDARD TABLE OF ('BAPI6108ATXXL').
  +      CATCH cx_sy_create_data_error.
  +        zcx_abapgit_exception=>raise( |IOBJ is not supported on this system| ).
  +    ENDTRY.
  +
       ASSIGN lr_details->* TO <ls_details>.
  -    ASSERT sy-subrc = 0.
  +    ASSIGN lr_compounds->* TO <lt_compounds>.
  +    ASSIGN lr_attributes->* TO <lt_attributes>.
  +    ASSIGN lr_navigationattributes->* TO <lt_navigationattributes>.
  +    ASSIGN lr_atrnavinfoprovider->* TO <lt_atrnavinfoprovider>.
  +    ASSIGN lr_hierarchycharacteristics->* TO <lt_hierarchycharacteristics>.
  +    ASSIGN lr_elimination->* TO <lt_elimination>.
  +    ASSIGN lr_hanafieldsmapping->* TO <lt_hanafieldsmapping>.
  +    ASSIGN lr_xxlattributes->* TO <lt_xxlattributes>.
   
       lv_iobjnam = ms_item-obj_name.
   
       CALL FUNCTION 'BAPI_IOBJ_GETDETAIL'
         EXPORTING
  -        infoobject = lv_iobjnam
  +        infoobject               = lv_iobjnam
         IMPORTING
  -        details    = <ls_details>
  -        return     = ls_return.
  +        details                  = <ls_details>
  +        return                   = ls_return
  +      TABLES
  +        compounds                = <lt_compounds>
  +        attributes               = <lt_attributes>
  +        navigationattributes     = <lt_navigationattributes>
  +        atrnavinfoprovider       = <lt_atrnavinfoprovider>
  +        hierarchycharacteristics = <lt_hierarchycharacteristics>
  +        elimination              = <lt_elimination>
  +        hanafieldsmapping        = <lt_hanafieldsmapping>
  +        xxlattributes            = <lt_xxlattributes>.
   
       IF ls_return-type = 'E'.
         zcx_abapgit_exception=>raise( |Error when geting getails of iobj: { ls_return-message }| ).
  
positive.code:     ASSERT sy-subrc = 0.
  
      io_xml->read( EXPORTING iv_name = 'IOBJ'
                     CHANGING cg_data = <ls_details> ).
      TRY.
          CALL FUNCTION 'BAPI_IOBJ_CREATE'
            EXPORTING
              details = <ls_details>
            IMPORTING
              return  = ls_return.
  
          IF ls_return-type = 'E'.
            zcx_abapgit_exception=>raise( |Error when creating iobj: { ls_return-message }| ).
  
negative.code: 
      io_xml->add( iv_name = 'IOBJ'
                   ig_data = <ls_details> ).
  
      io_xml->add( iv_name = 'COMPOUNDS'
                   ig_data = <lt_compounds> ).
  
      io_xml->add( iv_name = 'ATTRIBUTES'
                   ig_data = <lt_attributes> ).
  
      io_xml->add( iv_name = 'NAVIGATION_ATTRIBUTES'
                   ig_data = <lt_navigationattributes> ).
  
      io_xml->add( iv_name = 'ATTR_NAVIGATION'
                    ig_data = <lt_atrnavinfoprovider> ).
  
      io_xml->add( iv_name = 'HIERARCHY'
                   ig_data = <lt_hierarchycharacteristics> ).
  
      io_xml->add( iv_name = 'ELIMINATION'
                   ig_data = <lt_elimination> ).
  
      io_xml->add( iv_name = 'HANA_FIELDS_MAPPING'
                   ig_data = <lt_hanafieldsmapping> ).
  
      io_xml->add( iv_name = 'XXL_ATTRIBUTES'
                   ig_data = <lt_xxlattributes> ).
  
    ENDMETHOD.
  
  