anchor.diff:        zcx_abapgit_exception=>raise_t100( ).
   
       ENDLOOP.
  +
  +  ENDMETHOD.
  +
  +
  +  METHOD deserialize_oo_transaction.
  +
  +    " You should remember that we don't use batch input just for fun,
  +    " but because FM RPY_TRANSACTION_INSERT doesn't support OO transactions.
  +
  +    DATA: ls_bcdata  TYPE bdcdata.
  +
  +
  +    CLEAR mt_bcdata.
  +
  +    ls_bcdata-program  = 'SAPLSEUK'.
  +    ls_bcdata-dynpro   = '0390'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam = 'TSTC-TCODE'
  +              iv_fval = is_tstc-tcode ).
  +
  +    IF zif_abapgit_object~exists( ) = abap_true.
  +
  +      add_data( iv_fnam = 'BDC_OKCODE'
  +                iv_fval = '=CHNG' ).
  +
  +    ELSE.
  +
  +      add_data( iv_fnam = 'BDC_OKCODE'
  +                iv_fval = '=ADD' ).
  +
  +    ENDIF.
  +
  +    ls_bcdata-program  = 'SAPLSEUK'.
  +    ls_bcdata-dynpro   = '0300'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam     = 'TSTCT-TTEXT'
  +              iv_fval     = is_tstct-ttext ).
  +
  +    add_data( iv_fnam     = 'RSSTCD-S_CLASS'
  +              iv_fval     = 'X' ).
  +
  +    add_data( iv_fnam = 'BDC_OKCODE'
  +              iv_fval = '=ENTR' ).
  +
  +    ls_bcdata-program  = 'SAPLSEUK'.
  +    ls_bcdata-dynpro   = '0360'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam     = 'RSSTCD-S_TRFRAME'
  +              iv_fval     = is_rsstcd-s_trframe ).
  +
  +    add_data( iv_fnam     = 'RSSTCD-S_UPDTASK'
  +              iv_fval     = is_rsstcd-s_updtask ).
  +
  +    add_data( iv_fnam = 'BDC_OKCODE'
  +              iv_fval = '=TR_FRAMEWORK' ).
  +
  +    ls_bcdata-program  = 'SAPLSEUK'.
  +    ls_bcdata-dynpro   = '0360'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam     = 'RSSTCD-CLASSNAME'
  +              iv_fval     = is_rsstcd-classname ).
  +
  +    add_data( iv_fnam     = 'RSSTCD-METHOD'
  +              iv_fval     = is_rsstcd-method ).
  +
  +    IF is_rsstcd-s_local IS NOT INITIAL.
  +      add_data( iv_fnam     = 'RSSTCD-S_LOCAL'
  +                iv_fval     = is_rsstcd-s_local ).
  +    ENDIF.
  +
  +    IF is_rsstcd-s_updlok IS NOT INITIAL.
  +      add_data( iv_fnam     = 'RSSTCD-S_UPDLOK'
  +                iv_fval     = is_rsstcd-s_updlok ).
  +    ENDIF.
  +
  +    add_data( iv_fnam     = 'TSTC-PGMNA'
  +              iv_fval     = is_tstc-pgmna ).
  +
  +    IF is_tstcc-s_webgui = '2'.
  +
  +      add_data( iv_fnam     = 'G_IAC_EWT'
  +                iv_fval     = abap_true ).
  +
  +      add_data( iv_fnam = 'BDC_OKCODE'
  +                iv_fval = 'MAKE_PROFI' ).
  +
  +      ls_bcdata-program  = 'SAPLSEUK'.
  +      ls_bcdata-dynpro   = '0360'.
  +      ls_bcdata-dynbegin = 'X'.
  +      APPEND ls_bcdata TO mt_bcdata.
  +
  +    ELSEIF is_tstcc-s_webgui IS NOT INITIAL.
  +
  +      add_data( iv_fnam     = 'TSTCC-S_WEBGUI'
  +                iv_fval     = is_tstcc-s_webgui ).
  +
  +    ENDIF.
  +
  +    IF is_tstcc-s_pervas IS NOT INITIAL.
  +      add_data( iv_fnam     = 'TSTCC-S_PERVAS'
  +                iv_fval     = is_tstcc-s_pervas ).
  +    ENDIF.
  +
  +    IF is_tstcc-s_service IS NOT INITIAL.
  +      add_data( iv_fnam     = 'TSTCC-S_SERVICE'
  +                iv_fval     = is_tstcc-s_service ).
  +    ENDIF.
  +
  +    IF is_tstcc-s_platin IS NOT INITIAL.
  +      add_data( iv_fnam     = 'TSTCC-S_PLATIN'
  +                iv_fval     = is_tstcc-s_platin ).
  +    ENDIF.
  +
  +    IF is_tstcc-s_win32 IS NOT INITIAL.
  +      add_data( iv_fnam     = 'TSTCC-S_WIN32'
  +                iv_fval     = is_tstcc-s_win32 ).
  +    ENDIF.
  +
  +    add_data( iv_fnam = 'BDC_OKCODE'
  +              iv_fval = '=WB_SAVE' ).
  +
  +    ls_bcdata-program  = 'SAPLSTRD'.
  +    ls_bcdata-dynpro   = '0100'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam     = 'KO007-L_DEVCLASS'
  +              iv_fval     = iv_package ).
  +
  +    add_data( iv_fnam = 'BDC_OKCODE'
  +              iv_fval = '=ADD' ).
  +
  +    ls_bcdata-program  = 'BDC_OKCODE'.
  +    ls_bcdata-dynpro   = '0360'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam = 'BDC_OKCODE'
  +              iv_fval = '=WB_BACK' ).
  +
  +    ls_bcdata-program  = 'BDC_OKCODE'.
  +    ls_bcdata-dynpro   = '0360'.
  +    ls_bcdata-dynbegin = 'X'.
  +    APPEND ls_bcdata TO mt_bcdata.
  +
  +    add_data( iv_fnam = 'BDC_OKCODE'
  +              iv_fval = '=WB_BACK' ).
  +
  +    call_se93( ).
   
     ENDMETHOD.
   
  
positive.code:     INTERFACES zif_abapgit_object.
      ALIASES mo_files FOR zif_abapgit_object~mo_files.
  
    PRIVATE SECTION.
  
      TYPES: tty_param_values TYPE STANDARD TABLE OF rsparam
                                   WITH NON-UNIQUE DEFAULT KEY.
  
      CONSTANTS: c_oo_program(9)    VALUE '\PROGRAM=',
                 c_oo_class(7)      VALUE '\CLASS=',
                 c_oo_method(8)     VALUE '\METHOD=',
                 c_oo_tcode         TYPE tcode VALUE 'OS_APPLICATION',
                 c_oo_frclass(30)   VALUE 'CLASS',
                 c_oo_frmethod(30)  VALUE 'METHOD',
                 c_oo_frupdtask(30) VALUE 'UPDATE_MODE',
                 c_oo_synchron      VALUE 'S',
                 c_oo_asynchron     VALUE 'U',
                 c_true             TYPE c VALUE 'X',
                 c_false            TYPE c VALUE space.
  
      METHODS:
        split_parameters
          CHANGING ct_rsparam TYPE s_param
                   cs_rsstcd  TYPE rsstcd
                   cs_tstcp   TYPE tstcp
                   cs_tstc    TYPE tstc,
  
        split_parameters_comp
          IMPORTING ig_type  TYPE any
                    ig_param TYPE any
          CHANGING  cg_value TYPE any,
  
        serialize_texts
          IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output
          RAISING   zcx_abapgit_exception,
  
        deserialize_texts
          IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input
          RAISING   zcx_abapgit_exception,
  
        deserialize_oo_transaction
          IMPORTING
            iv_package      TYPE devclass
            is_tstc         TYPE tstc
            is_tstcc        TYPE tstcc
            is_tstct        TYPE tstct
            is_tstcp        TYPE tstcp
            it_param_values TYPE zcl_abapgit_object_tran=>tty_param_values
            is_rsstcd       TYPE rsstcd
          RAISING
            zcx_abapgit_exception.
  
  ENDCLASS.
  
  
  
  CLASS zcl_abapgit_object_tran IMPLEMENTATION.
  
  
    METHOD deserialize_oo_transaction.
  
      " You should remember that we don't use batch input just for fun,
      " but because FM RPY_TRANSACTION_INSERT doesn't support OO transactions.
  
      DATA: ls_bcdata  TYPE bdcdata,
            lt_bcdata  TYPE STANDARD TABLE OF bdcdata,
            lt_message TYPE STANDARD TABLE OF bdcmsgcoll.
  
      FIELD-SYMBOLS: <ls_message> TYPE bdcmsgcoll.
  
      ls_bcdata-program  = 'SAPLSEUK'.
      ls_bcdata-dynpro   = '0390'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'TSTC-TCODE'.
      ls_bcdata-fval     = is_tstc-tcode.
      APPEND ls_bcdata TO lt_bcdata.
  
      IF zif_abapgit_object~exists( ) = abap_true.
  
        CLEAR ls_bcdata.
        ls_bcdata-fnam = 'BDC_OKCODE'.
        ls_bcdata-fval = '=CHNG'.
        APPEND ls_bcdata TO lt_bcdata.
  
      ELSE.
  
        CLEAR ls_bcdata.
        ls_bcdata-fnam = 'BDC_OKCODE'.
        ls_bcdata-fval = '=ADD'.
        APPEND ls_bcdata TO lt_bcdata.
  
      ENDIF.
  
      ls_bcdata-program  = 'SAPLSEUK'.
      ls_bcdata-dynpro   = '0300'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'TSTCT-TTEXT'.
      ls_bcdata-fval     = is_tstct-ttext.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'RSSTCD-S_CLASS'.
      ls_bcdata-fval     = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam = 'BDC_OKCODE'.
      ls_bcdata-fval = '=ENTR'.
      APPEND ls_bcdata TO lt_bcdata.
  
      ls_bcdata-program  = 'SAPLSEUK'.
      ls_bcdata-dynpro   = '0360'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'RSSTCD-S_TRFRAME'.
      ls_bcdata-fval     = is_rsstcd-s_trframe.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'RSSTCD-S_UPDTASK'.
      ls_bcdata-fval     = is_rsstcd-s_updtask.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam = 'BDC_OKCODE'.
      ls_bcdata-fval = '=TR_FRAMEWORK'.
      APPEND ls_bcdata TO lt_bcdata.
  
      ls_bcdata-program  = 'SAPLSEUK'.
      ls_bcdata-dynpro   = '0360'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'RSSTCD-CLASSNAME'.
      ls_bcdata-fval     = is_rsstcd-classname.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'RSSTCD-METHOD'.
      ls_bcdata-fval     = is_rsstcd-method.
      APPEND ls_bcdata TO lt_bcdata.
  
      IF is_rsstcd-s_local IS NOT INITIAL.
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'RSSTCD-S_LOCAL'.
        ls_bcdata-fval     = is_rsstcd-s_local.
        APPEND ls_bcdata TO lt_bcdata.
      ENDIF.
  
      IF is_rsstcd-s_updlok IS NOT INITIAL.
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'RSSTCD-S_UPDLOK'.
        ls_bcdata-fval     = is_rsstcd-s_updlok.
        APPEND ls_bcdata TO lt_bcdata.
      ENDIF.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'TSTC-PGMNA'.
      ls_bcdata-fval     = is_tstc-pgmna.
      APPEND ls_bcdata TO lt_bcdata.
  
      IF is_tstcc-s_webgui = '2'.
  
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'G_IAC_EWT'.
        ls_bcdata-fval     = abap_true.
        APPEND ls_bcdata TO lt_bcdata.
  
        CLEAR ls_bcdata.
        ls_bcdata-fnam = 'BDC_OKCODE'.
        ls_bcdata-fval = 'MAKE_PROFI                                                            '.
        APPEND ls_bcdata TO lt_bcdata.
  
        ls_bcdata-program  = 'SAPLSEUK'.
        ls_bcdata-dynpro   = '0360'.
        ls_bcdata-dynbegin = 'X'.
        APPEND ls_bcdata TO lt_bcdata.
  
      ELSEIF is_tstcc-s_webgui IS NOT INITIAL.
  
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'TSTCC-S_WEBGUI'.
        ls_bcdata-fval     = is_tstcc-s_webgui.
        APPEND ls_bcdata TO lt_bcdata.
  
      ENDIF.
  
      IF is_tstcc-s_pervas IS NOT INITIAL.
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'TSTCC-S_PERVAS'.
        ls_bcdata-fval     = is_tstcc-s_pervas.
        APPEND ls_bcdata TO lt_bcdata.
      ENDIF.
  
      IF is_tstcc-s_service IS NOT INITIAL.
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'TSTCC-S_SERVICE'.
        ls_bcdata-fval     = is_tstcc-s_service.
        APPEND ls_bcdata TO lt_bcdata.
      ENDIF.
  
      IF is_tstcc-s_platin IS NOT INITIAL.
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'TSTCC-S_PLATIN'.
        ls_bcdata-fval     = is_tstcc-s_platin.
        APPEND ls_bcdata TO lt_bcdata.
      ENDIF.
  
      IF is_tstcc-s_win32 IS NOT INITIAL.
        CLEAR ls_bcdata.
        ls_bcdata-fnam     = 'TSTCC-S_WIN32'.
        ls_bcdata-fval     = is_tstcc-s_win32.
        APPEND ls_bcdata TO lt_bcdata.
      ENDIF.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam = 'BDC_OKCODE'.
      ls_bcdata-fval = '=WB_SAVE'.
      APPEND ls_bcdata TO lt_bcdata.
  
      ls_bcdata-program  = 'SAPLSTRD'.
      ls_bcdata-dynpro   = '0100'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam     = 'KO007-L_DEVCLASS'.
      ls_bcdata-fval     = iv_package.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam = 'BDC_OKCODE'.
      ls_bcdata-fval = '=ADD'.
      APPEND ls_bcdata TO lt_bcdata.
  
      ls_bcdata-program  = 'BDC_OKCODE'.
      ls_bcdata-dynpro   = '0360'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam = 'BDC_OKCODE'.
      ls_bcdata-fval = '=WB_BACK'.
      APPEND ls_bcdata TO lt_bcdata.
  
      ls_bcdata-program  = 'BDC_OKCODE'.
      ls_bcdata-dynpro   = '0360'.
      ls_bcdata-dynbegin = 'X'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CLEAR ls_bcdata.
      ls_bcdata-fnam = 'BDC_OKCODE'.
      ls_bcdata-fval = '=WB_BACK'.
      APPEND ls_bcdata TO lt_bcdata.
  
      CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
        EXPORTING
          tcode     = 'SE93'
          mode_val  = 'N'
        TABLES
          using_tab = lt_bcdata
          mess_tab  = lt_message
        EXCEPTIONS
          OTHERS    = 1.
  
negative.code:     serialize_texts( io_xml ).
  
    ENDMETHOD.
  ENDCLASS.
  