CoolFace
Datasetpublic

GSaha567/seq_level_training_data

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes52downloads
shard_000027.csv68921 linesDownload Raw Back to root
1text,length,is_long_context,metric_val,label_metric2"CLASS zcl_abapgit_object_tabl DEFINITION3  PUBLIC4  INHERITING FROM zcl_abapgit_objects_super5  FINAL6  CREATE PUBLIC .7 8  PUBLIC SECTION.9 10    INTERFACES zif_abapgit_object .11  PROTECTED SECTION.12    TYPES: BEGIN OF ty_segment_definition,13             segmentheader     TYPE edisegmhd,14             segmentdefinition TYPE edisegmdef,15             segmentstructures TYPE STANDARD TABLE OF edisegstru WITH DEFAULT KEY,16           END OF ty_segment_definition.17    TYPES: ty_segment_definitions TYPE STANDARD TABLE OF ty_segment_definition WITH DEFAULT KEY.18 19    TYPES: BEGIN OF ty_tabl_extras,20             tddat TYPE tddat,21           END OF ty_tabl_extras.22 23    ""! get additional data like table authorization group24    ""! @parameter iv_tabname | name of the table25    METHODS read_extras IMPORTING iv_tabname            TYPE ddobjname26                        RETURNING VALUE(rs_tabl_extras) TYPE ty_tabl_extras.27 28    ""! Update additional data29    ""! @parameter iv_tabname | name of the table30    ""! @parameter is_tabl_extras | additional table data31    METHODS update_extras IMPORTING iv_tabname     TYPE ddobjname32                                    is_tabl_extras TYPE ty_tabl_extras.33 34    ""! Delete additional data35    ""! @parameter iv_tabname | name of the table36    METHODS delete_extras IMPORTING iv_tabname TYPE ddobjname.37 38    ""! Serialize IDoc Segment type/definition if exits39    ""! @parameter io_xml | XML writer40    ""! @raising zcx_abapgit_exception | Exceptions41    METHODS serialize_idoc_segment IMPORTING io_xml TYPE REF TO zif_abapgit_xml_output42                                   RAISING   zcx_abapgit_exception.43 44    ""! Deserialize IDoc Segment type/definition if exits45    ""! @parameter io_xml | XML writer46    ""! @parameter iv_package | Target package47    ""! @parameter rv_deserialized | It's a segment and was desserialized48    ""! @raising zcx_abapgit_exception | Exceptions49    METHODS deserialize_idoc_segment IMPORTING io_xml                 TYPE REF TO zif_abapgit_xml_input50                                               iv_package             TYPE devclass51                                     RETURNING VALUE(rv_deserialized) TYPE abap_bool52                                     RAISING   zcx_abapgit_exception.53    ""! Delete the IDoc Segment type if exists54    ""! @parameter rv_deleted | It's a segment and was deleted55    ""! @raising zcx_abapgit_exception | Exceptions56    METHODS delete_idoc_segment RETURNING VALUE(rv_deleted) TYPE abap_bool57                                RAISING   zcx_abapgit_exception.58  PRIVATE SECTION.59 60    TYPES:61      ty_dd03p_tt TYPE STANDARD TABLE OF dd03p .62    TYPES:63      BEGIN OF ty_dd02_text,64        ddlanguage TYPE dd02t-ddlanguage,65        ddtext     TYPE dd02t-ddtext,66      END OF ty_dd02_text .67    TYPES:68      ty_dd02_texts TYPE STANDARD TABLE OF ty_dd02_text .69 70    CONSTANTS c_longtext_id_tabl TYPE dokil-id VALUE 'TB' ##NO_TEXT.71    CONSTANTS:72      BEGIN OF c_s_dataname,73        segment_definition TYPE string VALUE 'SEGMENT_DEFINITION',74        tabl_extras        TYPE string VALUE 'TABL_EXTRAS',75      END OF c_s_dataname .76 77    METHODS deserialize_indexes78      IMPORTING79        !io_xml TYPE REF TO zif_abapgit_xml_input80      RAISING81        zcx_abapgit_exception .82    METHODS clear_dd03p_fields83      CHANGING84        !ct_dd03p TYPE ty_dd03p_tt .85    ""! Check if structure is an IDoc segment86    ""! @parameter rv_is_idoc_segment | It's an IDoc segment or not87    METHODS is_idoc_segment88      RETURNING89        VALUE(rv_is_idoc_segment) TYPE abap_bool .90    METHODS clear_dd03p_fields_common91      CHANGING92        !cs_dd03p TYPE dd03p .93    METHODS clear_dd03p_fields_dataelement94      CHANGING95        !cs_dd03p TYPE dd03p .96    METHODS serialize_texts97      IMPORTING98        !io_xml TYPE REF TO zif_abapgit_xml_output99      RAISING100        zcx_abapgit_exception .101    METHODS deserialize_texts102      IMPORTING103        !io_xml   TYPE REF TO zif_abapgit_xml_input104        !is_dd02v TYPE dd02v105      RAISING106        zcx_abapgit_exception .107    METHODS is_db_table_category108      IMPORTING109        !iv_tabclass               TYPE dd02l-tabclass110      RETURNING111        VALUE(rv_is_db_table_type) TYPE dd02l-tabclass .112ENDCLASS.113 114 115 116CLASS zcl_abapgit_object_tabl IMPLEMENTATION.117 118 119  METHOD clear_dd03p_fields.120 121    CONSTANTS lc_comptype_dataelement TYPE comptype VALUE 'E'.122 123    DATA: lv_masklen TYPE c LENGTH 4.124 125    FIELD-SYMBOLS: <ls_dd03p> TYPE dd03p.126 127* remove nested structures128    DELETE ct_dd03p WHERE depth <> '00'.129* remove fields from .INCLUDEs130    DELETE ct_dd03p WHERE adminfield <> '0'.131 132    LOOP AT ct_dd03p ASSIGNING <ls_dd03p> WHERE NOT rollname IS INITIAL.133 134      clear_dd03p_fields_common( CHANGING cs_dd03p = <ls_dd03p> ).135 136      lv_masklen = <ls_dd03p>-masklen.137      IF lv_masklen = '' OR NOT lv_masklen CO '0123456789'.138* make sure the field contains valid data, or the XML will dump139        CLEAR <ls_dd03p>-masklen.140      ENDIF.141 142      IF <ls_dd03p>-comptype = lc_comptype_dataelement.143        clear_dd03p_fields_dataelement( CHANGING cs_dd03p = <ls_dd03p> ).144      ENDIF.145 146      IF <ls_dd03p>-shlporigin = 'D'.147* search help from domain148        CLEAR: <ls_dd03p>-shlpfield,149               <ls_dd03p>-shlpname.150      ENDIF.151 152* XML output assumes correct field content153      IF <ls_dd03p>-routputlen = '      '.154        CLEAR <ls_dd03p>-routputlen.155      ENDIF.156 157    ENDLOOP.158 159    "" Clear position to avoid issues with include structures that contain different number of fields160    LOOP AT ct_dd03p ASSIGNING <ls_dd03p>.161      CLEAR: <ls_dd03p>-position, <ls_dd03p>-tabname, <ls_dd03p>-ddlanguage.162    ENDLOOP.163 164  ENDMETHOD.165 166 167  METHOD clear_dd03p_fields_common.168 169    CLEAR: cs_dd03p-ddlanguage,170           cs_dd03p-dtelmaster,171           cs_dd03p-logflag,172           cs_dd03p-ddtext,173           cs_dd03p-reservedte,174           cs_dd03p-reptext,175           cs_dd03p-scrtext_s,176           cs_dd03p-scrtext_m,177           cs_dd03p-scrtext_l.178 179  ENDMETHOD.180 181 182  METHOD clear_dd03p_fields_dataelement.183 184* type specified via data element185    CLEAR: cs_dd03p-domname,186           cs_dd03p-inttype,187           cs_dd03p-intlen,188           cs_dd03p-mask,189           cs_dd03p-memoryid,190           cs_dd03p-headlen,191           cs_dd03p-scrlen1,192           cs_dd03p-scrlen2,193           cs_dd03p-scrlen3,194           cs_dd03p-datatype,195           cs_dd03p-leng,196           cs_dd03p-outputlen,197           cs_dd03p-deffdname,198           cs_dd03p-convexit,199           cs_dd03p-entitytab,200           cs_dd03p-dommaster,201           cs_dd03p-domname3l,202           cs_dd03p-decimals,203           cs_dd03p-lowercase,204           cs_dd03p-signflag.205 206  ENDMETHOD.207 208 209  METHOD delete_extras.210 211    DELETE FROM tddat WHERE tabname = iv_tabname.212 213  ENDMETHOD.214 215 216  METHOD delete_idoc_segment.217 218    DATA lv_segment_type        TYPE edilsegtyp.219    DATA lv_result              LIKE sy-subrc.220 221    IF is_idoc_segment( ) = abap_false.222      rv_deleted = abap_false.223      RETURN. ""previous XML version or no IDoc segment224    ENDIF.225 226    rv_deleted = abap_true.227    lv_segment_type = ms_item-obj_name.228 229    CALL FUNCTION 'SEGMENT_DELETE'230      EXPORTING231        segmenttyp = lv_segment_type232      IMPORTING233        result     = lv_result234      EXCEPTIONS235        OTHERS     = 1.236    IF sy-subrc <> 0 OR lv_result <> 0.237      zcx_abapgit_exception=>raise_t100( ).238    ENDIF.239  ENDMETHOD.240 241 242  METHOD deserialize_idoc_segment.243 244    DATA lv_result              LIKE sy-subrc.245    DATA lt_segment_definitions TYPE ty_segment_definitions.246    DATA lv_package             TYPE devclass.247    DATA lv_uname               TYPE sy-uname.248    FIELD-SYMBOLS <ls_segment_definition> TYPE ty_segment_definition.249 250    rv_deserialized = abap_false.251 252    TRY.253 254        io_xml->read( EXPORTING iv_name = c_s_dataname-segment_definition255                      CHANGING  cg_data = lt_segment_definitions ).256 257      CATCH zcx_abapgit_exception.258        RETURN. ""previous XML version or no IDoc segment259    ENDTRY.260 261    IF lines( lt_segment_definitions ) = 0.262      RETURN. ""no IDoc segment263    ENDIF.264 265    rv_deserialized = abap_true.266 267    lv_package = iv_package.268 269    LOOP AT lt_segment_definitions ASSIGNING <ls_segment_definition>.270      <ls_segment_definition>-segmentheader-presp = cl_abap_syst=>get_user_name( ).271      <ls_segment_definition>-segmentheader-pwork = cl_abap_syst=>get_user_name( ).272 273      CALL FUNCTION 'SEGMENT_READ'274        EXPORTING275          segmenttyp = <ls_segment_definition>-segmentheader-segtyp276        IMPORTING277          result     = lv_result278        EXCEPTIONS279          OTHERS     = 1.280      IF sy-subrc <> 0 OR lv_result <> 0.281        CALL FUNCTION 'SEGMENT_CREATE'282          IMPORTING283            segmentdefinition = <ls_segment_definition>-segmentdefinition284          TABLES285            segmentstructure  = <ls_segment_definition>-segmentstructures286          CHANGING287            segmentheader     = <ls_segment_definition>-segmentheader288            devclass          = lv_package289          EXCEPTIONS290            OTHERS            = 1.291      ELSE.292 293        CALL FUNCTION 'SEGMENT_MODIFY'294          CHANGING295            segmentheader = <ls_segment_definition>-segmentheader296            devclass      = lv_package297          EXCEPTIONS298            OTHERS        = 1.299        IF sy-subrc = 0.300          CALL FUNCTION 'SEGMENTDEFINITION_MODIFY'301            TABLES302              segmentstructure  = <ls_segment_definition>-segmentstructures303            CHANGING304              segmentdefinition = <ls_segment_definition>-segmentdefinition305            EXCEPTIONS306              OTHERS            = 1.307        ENDIF.308      ENDIF.309 310      IF sy-subrc <> 0.311        zcx_abapgit_exception=>raise_t100( ).312      ENDIF.313 314    ENDLOOP.315 316    lv_uname = cl_abap_syst=>get_user_name( ).317 318    CALL FUNCTION 'TR_TADIR_INTERFACE'319      EXPORTING320        wi_test_modus       = abap_false321        wi_tadir_pgmid      = 'R3TR'322        wi_tadir_object     = ms_item-obj_type323        wi_tadir_obj_name   = ms_item-obj_name324        wi_tadir_author     = lv_uname325        wi_tadir_devclass   = iv_package326        wi_tadir_masterlang = mv_language327        iv_set_edtflag      = abap_true328        iv_delflag          = abap_false329      EXCEPTIONS330        OTHERS              = 1.331    IF sy-subrc <> 0.332      zcx_abapgit_exception=>raise_t100( ).333    ENDIF.334  ENDMETHOD.335 336 337  METHOD deserialize_indexes.338 339    DATA:340      lv_tname     TYPE trobj_name,341      lt_dd12v     TYPE dd12vtab,342      ls_dd12v     LIKE LINE OF lt_dd12v,343      lt_dd17v     TYPE dd17vtab,344      ls_dd17v     LIKE LINE OF lt_dd17v,345      lt_secondary LIKE lt_dd17v.346 347    io_xml->read( EXPORTING iv_name = 'DD12V'348                  CHANGING cg_data = lt_dd12v ).349    io_xml->read( EXPORTING iv_name = 'DD17V'350                  CHANGING cg_data = lt_dd17v ).351 352    LOOP AT lt_dd12v INTO ls_dd12v.353 354* todo, call corr_insert?355 356      CLEAR lt_secondary.357      LOOP AT lt_dd17v INTO ls_dd17v358          WHERE sqltab = ls_dd12v-sqltab AND indexname = ls_dd12v-indexname.359        APPEND ls_dd17v TO lt_secondary.360      ENDLOOP.361 362      CALL FUNCTION 'DDIF_INDX_PUT'363        EXPORTING364          name              = ls_dd12v-sqltab365          id                = ls_dd12v-indexname366          dd12v_wa          = ls_dd12v367        TABLES368          dd17v_tab         = lt_secondary369        EXCEPTIONS370          indx_not_found    = 1371          name_inconsistent = 2372          indx_inconsistent = 3373          put_failure       = 4374          put_refused       = 5375          OTHERS            = 6.376      IF sy-subrc <> 0.377        zcx_abapgit_exception=>raise_t100( ).378      ENDIF.379 380      CALL FUNCTION 'DD_DD_TO_E071'381        EXPORTING382          type     = 'INDX'383          name     = ls_dd12v-sqltab384          id       = ls_dd12v-indexname385        IMPORTING386          obj_name = lv_tname.387 388      zcl_abapgit_objects_activation=>add( iv_type = 'INDX'389                                           iv_name = lv_tname ).390 391    ENDLOOP.392 393  ENDMETHOD.394 395 396  METHOD deserialize_texts.397 398    DATA: lv_name       TYPE ddobjname,399          ls_dd02v_tmp  TYPE dd02v,400          lt_i18n_langs TYPE TABLE OF langu,401          lt_dd02_texts TYPE ty_dd02_texts.402 403    FIELD-SYMBOLS: <lv_lang>      LIKE LINE OF lt_i18n_langs,404                   <ls_dd02_text> LIKE LINE OF lt_dd02_texts.405 406    lv_name = ms_item-obj_name.407 408    io_xml->read( EXPORTING iv_name = 'I18N_LANGS'409                  CHANGING  cg_data = lt_i18n_langs ).410 411    io_xml->read( EXPORTING iv_name = 'DD02_TEXTS'412                  CHANGING  cg_data = lt_dd02_texts ).413 414    SORT lt_i18n_langs.415    SORT lt_dd02_texts BY ddlanguage. "" Optimization416 417    LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.418 419      "" Table description420      ls_dd02v_tmp = is_dd02v.421      READ TABLE lt_dd02_texts ASSIGNING <ls_dd02_text> WITH KEY ddlanguage = <lv_lang>.422      IF sy-subrc <> 0.423        zcx_abapgit_exception=>raise( |DD02_TEXTS cannot find lang { <lv_lang> } in XML| ).424      ENDIF.425      MOVE-CORRESPONDING <ls_dd02_text> TO ls_dd02v_tmp.426      CALL FUNCTION 'DDIF_TABL_PUT'427        EXPORTING428          name              = lv_name429          dd02v_wa          = ls_dd02v_tmp430        EXCEPTIONS431          tabl_not_found    = 1432          name_inconsistent = 2433          tabl_inconsistent = 3434          put_failure       = 4435          put_refused       = 5436          OTHERS            = 6.437      IF sy-subrc <> 0.438        zcx_abapgit_exception=>raise_t100( ).439      ENDIF.440    ENDLOOP.441 442  ENDMETHOD.443 444 445  METHOD is_db_table_category.446 447    "" values from domain TABCLASS448    rv_is_db_table_type = boolc( iv_tabclass = 'TRANSP'449                              OR iv_tabclass = 'CLUSTER'450                              OR iv_tabclass = 'POOL' ).451 452  ENDMETHOD.453 454 455  METHOD is_idoc_segment.456 457    DATA lv_segment_type TYPE edilsegtyp.458 459    lv_segment_type = ms_item-obj_name.460 461    SELECT SINGLE segtyp462           FROM edisegment463           INTO lv_segment_type464           WHERE segtyp = lv_segment_type.465    rv_is_idoc_segment = boolc( sy-subrc = 0 ).466 467  ENDMETHOD.468 469 470  METHOD read_extras.471 472    SELECT SINGLE * FROM tddat INTO rs_tabl_extras-tddat WHERE tabname = iv_tabname.473 474  ENDMETHOD.475 476 477  METHOD serialize_idoc_segment.478 479    DATA lv_segment_type        TYPE edilsegtyp.480    DATA lv_result              LIKE sy-subrc.481    DATA lv_devclass            TYPE devclass.482    DATA lt_segmentdefinitions  TYPE STANDARD TABLE OF edisegmdef.483    DATA ls_segment_definition  TYPE ty_segment_definition.484    DATA lt_segment_definitions TYPE ty_segment_definitions.485    FIELD-SYMBOLS: <ls_segemtndefinition> TYPE edisegmdef.486 487    IF is_idoc_segment( ) = abap_false.488      RETURN.489    ENDIF.490 491    lv_segment_type = ms_item-obj_name.492    CALL FUNCTION 'SEGMENT_READ'493      EXPORTING494        segmenttyp        = lv_segment_type495      IMPORTING496        result            = lv_result497      TABLES498        segmentdefinition = lt_segmentdefinitions499      EXCEPTIONS500        OTHERS            = 1.501    IF sy-subrc <> 0 OR lv_result <> 0.502      zcx_abapgit_exception=>raise_t100( ).503    ENDIF.504 505    LOOP AT lt_segmentdefinitions ASSIGNING <ls_segemtndefinition>.506      CLEAR ls_segment_definition.507      CALL FUNCTION 'SEGMENTDEFINITION_READ'508        EXPORTING509          segmenttyp           = <ls_segemtndefinition>-segtyp510        IMPORTING511          result               = lv_result512          devclass             = lv_devclass513          segmentheader        = ls_segment_definition-segmentheader514          segmentdefinition    = ls_segment_definition-segmentdefinition515        TABLES516          segmentstructure     = ls_segment_definition-segmentstructures517        CHANGING518          version              = <ls_segemtndefinition>-version519        EXCEPTIONS520          no_authority         = 1521          segment_not_existing = 2522          OTHERS               = 3.523      IF sy-subrc <> 0 OR lv_result <> 0.524        zcx_abapgit_exception=>raise_t100( ).525      ENDIF.526 527      zcl_abapgit_object_idoc=>clear_idoc_segement_fields(528                                 CHANGING cg_structure = ls_segment_definition-segmentdefinition ).529      zcl_abapgit_object_idoc=>clear_idoc_segement_fields(530                                 CHANGING cg_structure = ls_segment_definition-segmentheader ).531 532      APPEND ls_segment_definition TO lt_segment_definitions.533    ENDLOOP.534 535    io_xml->add( iv_name = c_s_dataname-segment_definition536                 ig_data = lt_segment_definitions ).537 538  ENDMETHOD.539 540 541  METHOD serialize_texts.542 543    DATA: lv_name            TYPE ddobjname,544          lv_index           TYPE i,545          ls_dd02v           TYPE dd02v,546          lt_dd02_texts      TYPE ty_dd02_texts,547          lt_i18n_langs      TYPE TABLE OF langu,548          lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.549 550    FIELD-SYMBOLS: <lv_lang>      LIKE LINE OF lt_i18n_langs,551                   <ls_dd02_text> LIKE LINE OF lt_dd02_texts.552 553    IF io_xml->i18n_params( )-main_language_only = abap_true.554      RETURN.555    ENDIF.556 557    lv_name = ms_item-obj_name.558 559    "" Collect additional languages, skip main lang - it was serialized already560    lt_language_filter = zcl_abapgit_factory=>get_environment( )->get_system_language_filter( ).561    SELECT DISTINCT ddlanguage AS langu INTO TABLE lt_i18n_langs562      FROM dd02v563      WHERE tabname = lv_name564      AND ddlanguage IN lt_language_filter565      AND ddlanguage <> mv_language.                      ""#EC CI_SUBRC566 567    LOOP AT lt_i18n_langs ASSIGNING <lv_lang>.568      lv_index = sy-tabix.569      CALL FUNCTION 'DDIF_TABL_GET'570        EXPORTING571          name          = lv_name572          langu         = <lv_lang>573        IMPORTING574          dd02v_wa      = ls_dd02v575        EXCEPTIONS576          illegal_input = 1577          OTHERS        = 2.578      IF sy-subrc <> 0 OR ls_dd02v-ddlanguage IS INITIAL.579        DELETE lt_i18n_langs INDEX lv_index. "" Don't save this lang580        CONTINUE.581      ENDIF.582 583      APPEND INITIAL LINE TO lt_dd02_texts ASSIGNING <ls_dd02_text>.584      MOVE-CORRESPONDING ls_dd02v TO <ls_dd02_text>.585 586    ENDLOOP.587 588    SORT lt_i18n_langs ASCENDING.589    SORT lt_dd02_texts BY ddlanguage ASCENDING.590 591    IF lines( lt_i18n_langs ) > 0.592      io_xml->add( iv_name = 'I18N_LANGS'593                   ig_data = lt_i18n_langs ).594 595      io_xml->add( iv_name = 'DD02_TEXTS'596                   ig_data = lt_dd02_texts ).597    ENDIF.598 599  ENDMETHOD.600 601 602  METHOD update_extras.603 604    IF is_tabl_extras-tddat IS INITIAL.605      delete_extras( iv_tabname ).606    ELSE.607      MODIFY tddat FROM is_tabl_extras-tddat.608    ENDIF.609 610  ENDMETHOD.611 612 613  METHOD zif_abapgit_object~changed_by.614 615    TYPES: BEGIN OF ty_data,616             as4user TYPE dd02l-as4user,617             as4date TYPE dd02l-as4date,618             as4time TYPE dd02l-as4time,619           END OF ty_data.620 621    DATA: lt_data TYPE STANDARD TABLE OF ty_data WITH DEFAULT KEY,622          ls_data LIKE LINE OF lt_data.623 624 625    SELECT as4user as4date as4time626      FROM dd02l INTO TABLE lt_data627      WHERE tabname = ms_item-obj_name628      AND as4local = 'A'629      AND as4vers = '0000'.630 631    SELECT as4user as4date as4time632      APPENDING TABLE lt_data633      FROM dd09l634      WHERE tabname = ms_item-obj_name635      AND as4local = 'A'636      AND as4vers = '0000'.637 638    SELECT as4user as4date as4time639      APPENDING TABLE lt_data640      FROM dd12l641      WHERE sqltab = ms_item-obj_name642      AND as4local = 'A'643      AND as4vers = '0000'.644 645    SORT lt_data BY as4date DESCENDING as4time DESCENDING.646 647    READ TABLE lt_data INDEX 1 INTO ls_data.648    IF sy-subrc = 0.649      rv_user = ls_data-as4user.650    ELSE.651      rv_user = c_user_unknown.652    ENDIF.653 654  ENDMETHOD.655 656 657  METHOD zif_abapgit_object~delete.658 659    DATA: lv_objname TYPE rsedd0-ddobjname,660          lv_no_ask  TYPE abap_bool,661          lv_subrc   TYPE sy-subrc,662          BEGIN OF ls_dd02l,663            tabname  TYPE dd02l-tabname,664            tabclass TYPE dd02l-tabclass,665            sqltab   TYPE dd02l-sqltab,666          END OF ls_dd02l.667 668    IF zif_abapgit_object~exists( ) = abap_false.669      "" Proxies e.g. delete on its own, nothing todo here then.670      RETURN.671    ENDIF.672 673    lv_objname = ms_item-obj_name.674 675    IF delete_idoc_segment( ) = abap_false.676 677      lv_no_ask = abap_true.678      SELECT SINGLE tabname tabclass sqltab FROM dd02l679        INTO CORRESPONDING FIELDS OF ls_dd02l680        WHERE tabname = ms_item-obj_name681        AND as4local = 'A'682        AND as4vers = '0000'.683      IF sy-subrc = 0 AND is_db_table_category( ls_dd02l-tabclass ) = abap_true.684 685        CALL FUNCTION 'DD_EXISTS_DATA'686          EXPORTING687            reftab          = ls_dd02l-sqltab688            tabclass        = ls_dd02l-tabclass689            tabname         = ls_dd02l-tabname690          IMPORTING691            subrc           = lv_subrc692          EXCEPTIONS693            missing_reftab  = 1694            sql_error       = 2695            buffer_overflow = 3696            unknown_error   = 4697            OTHERS          = 5.698 699        IF sy-subrc = 0 AND lv_subrc = 0.700          lv_no_ask = abap_false.701        ENDIF.702 703      ENDIF.704 705      delete_ddic( iv_objtype = 'T'706                   iv_no_ask  = lv_no_ask ).707 708      delete_longtexts( c_longtext_id_tabl ).709 710      delete_extras( lv_objname ).711 712    ENDIF.713 714  ENDMETHOD.715 716 717  METHOD zif_abapgit_object~deserialize.718 719    DATA: lv_name   TYPE ddobjname,720          ls_dd02v  TYPE dd02v,721          ls_dd09l  TYPE dd09l,722          lt_dd03p  TYPE TABLE OF dd03p,723          lt_dd05m  TYPE TABLE OF dd05m,724          lt_dd08v  TYPE TABLE OF dd08v,725          lt_dd35v  TYPE TABLE OF dd35v,726          lt_dd36m  TYPE dd36mttyp,727          ls_extras TYPE ty_tabl_extras.728 729    FIELD-SYMBOLS: <ls_dd03p>      TYPE dd03p,730                   <ls_dd05m>      TYPE dd05m,731                   <ls_dd08v>      TYPE dd08v,732                   <ls_dd35v>      TYPE dd35v,733                   <ls_dd36m>      TYPE dd36m,734                   <lg_roworcolst> TYPE any.735 736    lv_name = ms_item-obj_name. "" type conversion737 738    IF deserialize_idoc_segment( io_xml     = io_xml739                                 iv_package = iv_package ) = abap_false.740 741      io_xml->read( EXPORTING iv_name = 'DD02V'742                    CHANGING cg_data = ls_dd02v ).743      io_xml->read( EXPORTING iv_name = 'DD09L'744                    CHANGING cg_data = ls_dd09l ).745      io_xml->read( EXPORTING iv_name  = 'DD03P_TABLE'746                    CHANGING cg_data = lt_dd03p ).747      ASSIGN COMPONENT 'ROWORCOLST' OF STRUCTURE ls_dd09l TO <lg_roworcolst>.748      IF sy-subrc = 0 AND <lg_roworcolst> IS INITIAL.749        <lg_roworcolst> = 'C'. ""Reverse fix from serialize750      ENDIF.751 752      "" Number fields sequentially and fill table name753      LOOP AT lt_dd03p ASSIGNING <ls_dd03p>.754        <ls_dd03p>-position   = sy-tabix.755        <ls_dd03p>-tabname    = lv_name.756        <ls_dd03p>-ddlanguage = mv_language.757      ENDLOOP.758 759      io_xml->read( EXPORTING iv_name = 'DD05M_TABLE'760                    CHANGING cg_data = lt_dd05m ).761      io_xml->read( EXPORTING iv_name = 'DD08V_TABLE'762                    CHANGING cg_data = lt_dd08v ).763      io_xml->read( EXPORTING iv_name = 'DD35V_TALE'764                    CHANGING cg_data = lt_dd35v ).765      io_xml->read( EXPORTING iv_name = 'DD36M'766                    CHANGING cg_data = lt_dd36m ).767 768      LOOP AT lt_dd05m ASSIGNING <ls_dd05m>.769        <ls_dd05m>-tabname = lv_name.770      ENDLOOP.771      LOOP AT lt_dd08v ASSIGNING <ls_dd08v>.772        <ls_dd08v>-tabname = lv_name.773        <ls_dd08v>-ddlanguage = mv_language.774      ENDLOOP.775      LOOP AT lt_dd35v ASSIGNING <ls_dd35v>.776        <ls_dd35v>-tabname = lv_name.777      ENDLOOP.778      LOOP AT lt_dd36m ASSIGNING <ls_dd36m>.779        <ls_dd36m>-tabname = lv_name.780      ENDLOOP.781 782      "" DDIC Step: Remove references to search helps and foreign keys783      IF iv_step = zif_abapgit_object=>gc_step_id-ddic.784        CLEAR: lt_dd08v, lt_dd35v, lt_dd36m.785      ENDIF.786 787      IF iv_step = zif_abapgit_object=>gc_step_id-late788        AND lines( lt_dd35v ) = 0 AND lines( lt_dd08v ) = 0.789        RETURN. "" already active790      ENDIF.791 792      corr_insert( iv_package = iv_package793                   ig_object_class = 'DICT' ).794 795      CALL FUNCTION 'DD_TABL_EXPAND'796        EXPORTING797          dd02v_wa          = ls_dd02v798        TABLES799          dd03p_tab         = lt_dd03p800          dd05m_tab         = lt_dd05m801          dd08v_tab         = lt_dd08v802          dd35v_tab         = lt_dd35v803          dd36m_tab         = lt_dd36m804        EXCEPTIONS805          illegal_parameter = 1806          OTHERS            = 2.807      IF sy-subrc <> 0.808        zcx_abapgit_exception=>raise_t100( ).809      ENDIF.810 811      CALL FUNCTION 'DDIF_TABL_PUT'812        EXPORTING813          name              = lv_name814          dd02v_wa          = ls_dd02v815          dd09l_wa          = ls_dd09l816        TABLES817          dd03p_tab         = lt_dd03p818          dd05m_tab         = lt_dd05m819          dd08v_tab         = lt_dd08v820          dd35v_tab         = lt_dd35v821          dd36m_tab         = lt_dd36m822        EXCEPTIONS823          tabl_not_found    = 1824          name_inconsistent = 2825          tabl_inconsistent = 3826          put_failure       = 4827          put_refused       = 5828          OTHERS            = 6.829      IF sy-subrc <> 0.830        zcx_abapgit_exception=>raise_t100( ).831      ENDIF.832 833      zcl_abapgit_objects_activation=>add_item( ms_item ).834 835      deserialize_indexes( io_xml ).836 837      deserialize_texts( io_xml   = io_xml838                         is_dd02v = ls_dd02v ).839 840      deserialize_longtexts( io_xml ).841 842      io_xml->read( EXPORTING iv_name = c_s_dataname-tabl_extras843                    CHANGING cg_data = ls_extras ).844      update_extras( iv_tabname     = lv_name845                     is_tabl_extras = ls_extras ).846 847    ENDIF.848 849  ENDMETHOD.850 851 852  METHOD zif_abapgit_object~exists.853 854    DATA: lv_tabname TYPE dd02l-tabname.855 856    lv_tabname = ms_item-obj_name.857 858    "" Check nametab because it's fast859    CALL FUNCTION 'DD_GET_NAMETAB_HEADER'860      EXPORTING861        tabname   = lv_tabname862      EXCEPTIONS863        not_found = 1864        OTHERS    = 2.865    IF sy-subrc <> 0.866      "" Check for new, inactive, or modified versions that might not be in nametab867      SELECT SINGLE tabname FROM dd02l INTO lv_tabname868        WHERE tabname = lv_tabname.869    ENDIF.870    rv_bool = boolc( sy-subrc = 0 ).871 872  ENDMETHOD.873 874 875  METHOD zif_abapgit_object~get_comparator.876 877    DATA: li_local_version_output TYPE REF TO zif_abapgit_xml_output,878          li_local_version_input  TYPE REF TO zif_abapgit_xml_input.879 880 881    CREATE OBJECT li_local_version_output TYPE zcl_abapgit_xml_output.882 883    zif_abapgit_object~serialize( li_local_version_output ).884 885    CREATE OBJECT li_local_version_input886      TYPE zcl_abapgit_xml_input887      EXPORTING888        iv_xml = li_local_version_output->render( ).889 890    CREATE OBJECT ri_comparator TYPE zcl_abapgit_object_tabl_compar891      EXPORTING892        ii_local = li_local_version_input.893 894  ENDMETHOD.895 896 897  METHOD zif_abapgit_object~get_deserialize_steps.898    APPEND zif_abapgit_object=>gc_step_id-ddic TO rt_steps.899    APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.900  ENDMETHOD.901 902 903  METHOD zif_abapgit_object~get_metadata.904    rs_metadata = get_metadata( ).905  ENDMETHOD.906 907 908  METHOD zif_abapgit_object~is_active.909    rv_active = is_active( ).910  ENDMETHOD.911 912 913  METHOD zif_abapgit_object~is_locked.914 915    rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'916                                            iv_argument    = |{ ms_item-obj_type }{ ms_item-obj_name }| ).917 918  ENDMETHOD.919 920 921  METHOD zif_abapgit_object~jump.922    "" Covered by ZCL_ABAPGIT_OBJECT=>JUMP923  ENDMETHOD.924 925 926  METHOD zif_abapgit_object~serialize.927 928    DATA: lv_name   TYPE ddobjname,929          lv_state  TYPE ddgotstate,930          ls_dd02v  TYPE dd02v,931          ls_dd09l  TYPE dd09l,932          lt_dd03p  TYPE ty_dd03p_tt,933          lt_dd05m  TYPE TABLE OF dd05m,934          lt_dd08v  TYPE TABLE OF dd08v,935          lt_dd12v  TYPE dd12vtab,936          lt_dd17v  TYPE dd17vtab,937          lt_dd35v  TYPE TABLE OF dd35v,938          lv_index  LIKE sy-index,939          lt_dd36m  TYPE dd36mttyp,940          ls_extras TYPE ty_tabl_extras.941 942    FIELD-SYMBOLS: <ls_dd12v>      LIKE LINE OF lt_dd12v,943                   <ls_dd05m>      LIKE LINE OF lt_dd05m,944                   <ls_dd08v>      LIKE LINE OF lt_dd08v,945                   <ls_dd35v>      LIKE LINE OF lt_dd35v,946                   <ls_dd36m>      LIKE LINE OF lt_dd36m,947                   <lg_roworcolst> TYPE any.948 949    lv_name = ms_item-obj_name.950 951    CALL FUNCTION 'DDIF_TABL_GET'952      EXPORTING953        name          = lv_name954        langu         = mv_language955      IMPORTING956        gotstate      = lv_state957        dd02v_wa      = ls_dd02v958        dd09l_wa      = ls_dd09l959      TABLES960        dd03p_tab     = lt_dd03p961        dd05m_tab     = lt_dd05m962        dd08v_tab     = lt_dd08v963        dd12v_tab     = lt_dd12v964        dd17v_tab     = lt_dd17v965        dd35v_tab     = lt_dd35v966        dd36m_tab     = lt_dd36m967      EXCEPTIONS968        illegal_input = 1969        OTHERS        = 2.970    IF sy-subrc <> 0.971      zcx_abapgit_exception=>raise( 'error from DDIF_TABL_GET' ).972    ENDIF.973 974    "" Check if any active version was returned975    IF lv_state <> 'A'.976      RETURN.977    ENDIF.978 979    CLEAR: ls_dd02v-as4user,980           ls_dd02v-as4date,981           ls_dd02v-as4time.982 983* reset numeric field, so XML does not crash984    IF ls_dd02v-prozpuff = ''.985      CLEAR ls_dd02v-prozpuff.986    ENDIF.987    IF ls_dd02v-datmin = ''.988      CLEAR ls_dd02v-datmin.989    ENDIF.990    IF ls_dd02v-datmax = ''.991      CLEAR ls_dd02v-datmax.992    ENDIF.993    IF ls_dd02v-datavg = ''.994      CLEAR ls_dd02v-datavg.995    ENDIF.996 997    CLEAR: ls_dd09l-as4user,998           ls_dd09l-as4date,999           ls_dd09l-as4time.1000 1001    ASSIGN COMPONENT 'ROWORCOLST' OF STRUCTURE ls_dd09l TO <lg_roworcolst>.1002    IF sy-subrc = 0 AND <lg_roworcolst> = 'C'.1003      CLEAR <lg_roworcolst>. ""To avoid diff errors. This field doesn't exists in all releases1004    ENDIF.1005 1006 1007    LOOP AT lt_dd12v ASSIGNING <ls_dd12v>.1008      CLEAR: <ls_dd12v>-as4user,1009             <ls_dd12v>-as4date,1010             <ls_dd12v>-as4time,1011             <ls_dd12v>-dbindex.1012    ENDLOOP.1013 1014    clear_dd03p_fields( CHANGING ct_dd03p = lt_dd03p ).1015 1016* remove foreign keys inherited from .INCLUDEs1017    DELETE lt_dd08v WHERE noinherit = 'N'.1018    LOOP AT lt_dd05m ASSIGNING <ls_dd05m>.1019      CLEAR <ls_dd05m>-tabname.1020      CLEAR <ls_dd05m>-leng.1021      lv_index = sy-tabix.1022      READ TABLE lt_dd08v WITH KEY fieldname = <ls_dd05m>-fieldname TRANSPORTING NO FIELDS.1023      IF sy-subrc <> 0.1024        DELETE lt_dd05m INDEX lv_index.1025      ENDIF.1026    ENDLOOP.1027 1028    LOOP AT lt_dd08v ASSIGNING <ls_dd08v>.1029      CLEAR: <ls_dd08v>-tabname, <ls_dd08v>-ddlanguage.1030    ENDLOOP.1031    LOOP AT lt_dd35v ASSIGNING <ls_dd35v>.1032      CLEAR <ls_dd35v>-tabname.1033    ENDLOOP.1034 1035* remove inherited search helps1036    DELETE lt_dd35v WHERE shlpinher = abap_true.1037    LOOP AT lt_dd36m ASSIGNING <ls_dd36m>.1038      CLEAR <ls_dd36m>-tabname.1039      lv_index = sy-tabix.1040      READ TABLE lt_dd35v WITH KEY fieldname = <ls_dd36m>-fieldname TRANSPORTING NO FIELDS.1041      IF sy-subrc <> 0.1042        DELETE lt_dd36m INDEX lv_index.1043      ENDIF.1044    ENDLOOP.1045 1046    io_xml->add( iv_name = 'DD02V'1047                 ig_data = ls_dd02v ).1048    IF NOT ls_dd09l IS INITIAL.1049      io_xml->add( iv_name = 'DD09L'1050                   ig_data = ls_dd09l ).1051    ENDIF.1052    io_xml->add( iv_name = 'DD03P_TABLE'1053                 ig_data = lt_dd03p ).1054    io_xml->add( iv_name = 'DD05M_TABLE'1055                 ig_data = lt_dd05m ).1056    io_xml->add( iv_name = 'DD08V_TABLE'1057                 ig_data = lt_dd08v ).1058    io_xml->add( iv_name = 'DD12V'1059                 ig_data = lt_dd12v ).1060    io_xml->add( iv_name = 'DD17V'1061                 ig_data = lt_dd17v ).1062    io_xml->add( iv_name = 'DD35V_TALE'1063                 ig_data = lt_dd35v ).1064    io_xml->add( iv_name = 'DD36M'1065                 ig_data = lt_dd36m ).1066 1067    serialize_texts( io_xml ).1068 1069    serialize_longtexts( ii_xml         = io_xml1070                         iv_longtext_id = c_longtext_id_tabl ).1071 1072    serialize_idoc_segment( io_xml ).1073 1074    ls_extras = read_extras( lv_name ).1075    io_xml->add( iv_name = c_s_dataname-tabl_extras1076                 ig_data = ls_extras ).1077 1078  ENDMETHOD.1079ENDCLASS.1080",9115,False,2060.4205012934003,median1081"CLASS zcl_bw_trfn_tester DEFINITION1082  PUBLIC1083  CREATE PUBLIC .1084 1085  PUBLIC SECTION.1086 1087    ""! <p class=""shorttext synchronized"" lang=""en""></p>1088    ""! Create global DDIC Tables if not exists1089    CLASS-METHODS create_global_ddic.1090 1091    ""! <p class=""shorttext synchronized"" lang=""en""></p>1092    ""!1093    ""! @parameter pa_trfnid | <p class=""shorttext synchronized"" lang=""en"">Transformation ID</p>1094    ""! @raising zcx_bw_trfn_tester | <p class=""shorttext synchronized"" lang=""en"">Invalid TRFN ID</p>1095    METHODS constructor1096      IMPORTING iv_strfn TYPE sobj_name1097                iv_ttrfn TYPE sobj_name1098      RAISING   zcx_bw_trfn_tester.1099 1100    ""! <p class=""shorttext synchronized"" lang=""en""></p>1101    ""! Calculate program ID based on TRFN ID1102    ""! @parameter rv_progid | <p class=""shorttext synchronized"" lang=""en""></p>1103    METHODS caluclate_program_id1104      RETURNING VALUE(rv_progid) TYPE string.1105 1106    ""! <p class=""shorttext synchronized"" lang=""en""></p>1107    ""! Test new scenario - input->calculation->compare result with provided result data1108    ""! @parameter ir_source_user_table | <p class=""shorttext synchronized"" lang=""en"">Source table to compare</p>1109    ""! @parameter ir_result_user_table | <p class=""shorttext synchronized"" lang=""en"">Result table to compare</p>1110    METHODS test_new_scenario1111      IMPORTING iv_source_ddic_table TYPE string OPTIONAL1112                iv_result_ddic_table TYPE string OPTIONAL1113                ir_source_user_table TYPE REF TO data OPTIONAL1114                ir_result_user_table TYPE REF TO data OPTIONAL.1115 1116 1117    ""! <p class=""shorttext synchronized"" lang=""en""></p>1118    ""! Get data from DDIC table name1119    ""! @parameter iv_table_name | <p class=""shorttext synchronized"" lang=""en"">DDIC Table name</p>1120    ""! @parameter et_table | <p class=""shorttext synchronized"" lang=""en"">Table data</p>1121    METHODS get_data_from_table1122      IMPORTING iv_table_name TYPE string1123      EXPORTING et_table      TYPE ANY TABLE.1124 1125    ""! <p class=""shorttext synchronized"" lang=""en""></p>1126    ""!1127    ""! @parameter rr_log | <p class=""shorttext synchronized"" lang=""en"">Log reference</p>1128    METHODS create_log1129      RETURNING VALUE(rr_log) TYPE REF TO cl_rsbm_log_cursor_step_dtp.1130 1131    ""! <p class=""shorttext synchronized"" lang=""en""></p>1132    ""!1133    ""! @parameter iv_source_ddic_table | <p class=""shorttext synchronized"" lang=""en"">DDIC source table name</p>1134    ""! @parameter iv_result_ddic_table | <p class=""shorttext synchronized"" lang=""en"">DDIC result table name</p>1135    ""! @parameter er_src_str_trfn | <p class=""shorttext synchronized"" lang=""en"">Source TRFN structure</p>1136    ""! @parameter er_res_str_trfn | <p class=""shorttext synchronized"" lang=""en"">Result TRFN structure</p>1137    ""! @parameter er_src_tab_trfn | <p class=""shorttext synchronized"" lang=""en"">Source TRFN table</p>1138    ""! @parameter er_source_table | <p class=""shorttext synchronized"" lang=""en"">User source table</p>1139    ""! @parameter er_result_table | <p class=""shorttext synchronized"" lang=""en"">User result table to compare</p>1140    METHODS create_data_references1141      IMPORTING iv_source_ddic_table TYPE string1142                iv_result_ddic_table TYPE string1143      EXPORTING er_src_str_trfn      TYPE REF TO data1144                er_res_str_trfn      TYPE REF TO data1145                er_src_tab_trfn      TYPE REF TO data1146                er_source_table      TYPE REF TO data1147                er_result_table      TYPE REF TO data.1148 1149    ""! <p class=""shorttext synchronized"" lang=""en""></p>1150    ""!1151    ""! @parameter ir_trfn_result | <p class=""shorttext synchronized"" lang=""en"">TRFN result data</p>1152    ""! @parameter ir_user_result | <p class=""shorttext synchronized"" lang=""en"">User result data</p>1153    ""! @parameter iv_user_table_name | <p class=""shorttext synchronized"" lang=""en"">User result DDIC table name</p>1154    METHODS compare_trfn_to_user_table1155      IMPORTING ir_trfn_result     TYPE REF TO cl_rsbk_data_segment1156                ir_user_result     TYPE REF TO data1157                iv_user_table_name TYPE string.1158 1159    ""! <p class=""shorttext synchronized"" lang=""en""></p>1160    ""! Create type based on basic description1161    ""! @parameter iv_intype | <p class=""shorttext synchronized"" lang=""en""></p>1162    ""! @parameter iv_leng | <p class=""shorttext synchronized"" lang=""en""></p>1163    ""! @parameter iv_decim | <p class=""shorttext synchronized"" lang=""en""></p>1164    ""! @parameter rv_type | <p class=""shorttext synchronized"" lang=""en""></p>1165    CLASS-METHODS create_type1166      IMPORTING iv_intype      TYPE string1167                iv_leng        TYPE ddleng1168                iv_decim       TYPE decimals1169      RETURNING VALUE(rv_type) TYPE REF TO cl_abap_datadescr.1170 1171 1172  PROTECTED SECTION.1173 1174    DATA: gv_trfnid TYPE rstranid,1175          gv_dtp    TYPE rsbkdtpnm.1176 1177  PRIVATE SECTION.1178ENDCLASS.1179 1180 1181CLASS zcl_bw_trfn_tester IMPLEMENTATION.1182 1183 1184  METHOD constructor.1185 1186    SELECT SINGLE tranid1187    FROM rstran1188    INTO @DATA(lv_trfn_id)1189    WHERE sourcename = @iv_strfn1190    AND targetname = @iv_ttrfn1191    AND objvers = 'A'1192    AND objstat = 'ACT'.1193 1194    IF sy-subrc = 0.1195      gv_trfnid = lv_trfn_id.1196    ELSE.1197      RAISE EXCEPTION TYPE zcx_bw_trfn_tester.1198    ENDIF.1199 1200    SELECT SINGLE dtp

Showing the first 1,200 of 68921 lines. Download the file for the rest.