mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
FTGL: feature toggle (#3004)
* FTGL: feature toggle * update ref-supported * Update ref-supported.md
This commit is contained in:
parent
1101e91b40
commit
c99ff03253
|
@ -45,6 +45,7 @@ ENHS | Enhancement Spot | Yes
|
|||
ENQU | Lock Object | Yes
|
||||
ENSC | Composite Enhancement Spot | Yes
|
||||
FORM | SAPscript form | Yes
|
||||
FTGL | Feature Toggle | Yes
|
||||
FUGR | Function Group | Yes
|
||||
FUGS | Function Group with Customer Include: SAP Part | [#2851](https://github.com/larshp/abapGit/issues/2851)
|
||||
FUGX | Function Group with Customer Include: Customer Part | [#2851](https://github.com/larshp/abapGit/issues/2851)
|
||||
|
|
227
src/objects/zcl_abapgit_object_ftgl.clas.abap
Normal file
227
src/objects/zcl_abapgit_object_ftgl.clas.abap
Normal file
|
@ -0,0 +1,227 @@
|
|||
CLASS zcl_abapgit_object_ftgl DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_object.
|
||||
ALIASES mo_files FOR zif_abapgit_object~mo_files.
|
||||
|
||||
METHODS:
|
||||
constructor
|
||||
IMPORTING
|
||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
iv_language TYPE spras
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mv_toggle_id TYPE c LENGTH 40, "sftgl_ft_id
|
||||
mr_toggle TYPE REF TO data.
|
||||
|
||||
METHODS:
|
||||
clear_field
|
||||
IMPORTING
|
||||
iv_fieldname TYPE string
|
||||
CHANGING
|
||||
cs_header TYPE any.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_ftgl IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
super->constructor(
|
||||
is_item = is_item
|
||||
iv_language = iv_language ).
|
||||
|
||||
mv_toggle_id = ms_item-obj_name.
|
||||
|
||||
TRY.
|
||||
CREATE DATA mr_toggle TYPE ('FTGL_S_WB_FEATURE_TOGGLE').
|
||||
CATCH cx_root.
|
||||
zcx_abapgit_exception=>raise( |FTGL not supported in your NW release| ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~delete.
|
||||
|
||||
DATA:
|
||||
lv_return_code TYPE i.
|
||||
|
||||
CALL METHOD ('CL_FEATURE_TOGGLE_OBJECT')=>delete
|
||||
EXPORTING
|
||||
iv_toggle_id = mv_toggle_id
|
||||
RECEIVING
|
||||
rv_rc = lv_return_code.
|
||||
|
||||
IF lv_return_code <> 0.
|
||||
zcx_abapgit_exception=>raise( |Cannot delete feature toggle { mv_toggle_id }. |
|
||||
&& |Error { sy-subrc } from cl_feature_toggle_object=>delete| ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~deserialize.
|
||||
|
||||
DATA:
|
||||
lo_toggle TYPE REF TO object,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <ls_toggle> TYPE data.
|
||||
|
||||
ASSIGN mr_toggle->* TO <ls_toggle>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
io_xml->read(
|
||||
EXPORTING
|
||||
iv_name = 'FTGL'
|
||||
CHANGING
|
||||
cg_data = <ls_toggle> ).
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_FEATURE_TOGGLE_OBJECT')=>create_toggle_by_content
|
||||
EXPORTING
|
||||
is_content = <ls_toggle>
|
||||
RECEIVING
|
||||
ro_toggle = lo_toggle.
|
||||
|
||||
CALL METHOD lo_toggle->('SAVE').
|
||||
|
||||
tadir_insert( iv_package ).
|
||||
corr_insert( iv_package ).
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise(
|
||||
iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
|
||||
CALL METHOD ('CL_FEATURE_TOGGLE')=>is_defined
|
||||
EXPORTING
|
||||
iv_toggle_id = mv_toggle_id
|
||||
RECEIVING
|
||||
rc_exists = rv_bool.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_comparator.
|
||||
RETURN.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_deserialize_steps.
|
||||
APPEND zif_abapgit_object=>gc_step_id-late TO rt_steps.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~get_metadata.
|
||||
rs_metadata = get_metadata( ).
|
||||
rs_metadata-delete_tadir = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~is_active.
|
||||
rv_active = is_active( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~is_locked.
|
||||
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'E_FTGL'
|
||||
iv_argument = |{ mv_toggle_id }*| ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~jump.
|
||||
|
||||
CALL FUNCTION 'RS_TOOL_ACCESS_REMOTE'
|
||||
STARTING NEW TASK 'GIT'
|
||||
EXPORTING
|
||||
operation = 'SHOW'
|
||||
object_name = ms_item-obj_name
|
||||
object_type = ms_item-obj_type
|
||||
EXCEPTIONS
|
||||
not_executed = 1
|
||||
invalid_object_type = 2
|
||||
OTHERS = 3.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( |FTGL Jump Error. RS_TOOL_ACCESS subrc={ sy-subrc }| ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA:
|
||||
lx_error TYPE REF TO cx_root,
|
||||
lo_toggle TYPE REF TO object.
|
||||
|
||||
FIELD-SYMBOLS: <ls_toggle> TYPE data.
|
||||
|
||||
ASSIGN mr_toggle->* TO <ls_toggle>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_FEATURE_TOGGLE_OBJECT')=>create_toggle_by_id
|
||||
EXPORTING
|
||||
iv_toggle_id = mv_toggle_id
|
||||
RECEIVING
|
||||
ro_toggle = lo_toggle.
|
||||
|
||||
CATCH cx_root INTO lx_error.
|
||||
zcx_abapgit_exception=>raise(
|
||||
iv_text = lx_error->get_text( )
|
||||
ix_previous = lx_error ).
|
||||
ENDTRY.
|
||||
|
||||
CALL METHOD lo_toggle->('GET_CONTENT')
|
||||
RECEIVING
|
||||
rs_content = <ls_toggle>.
|
||||
|
||||
clear_field( EXPORTING iv_fieldname = 'HEADER-OWNER' CHANGING cs_header = <ls_toggle> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'HEADER-CREATED_DATE' CHANGING cs_header = <ls_toggle> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'HEADER-CREATED_TIME' CHANGING cs_header = <ls_toggle> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'HEADER-CHANGEDBY ' CHANGING cs_header = <ls_toggle> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'HEADER-CHANGED_DATE' CHANGING cs_header = <ls_toggle> ).
|
||||
clear_field( EXPORTING iv_fieldname = 'HEADER-CHANGED_TIME' CHANGING cs_header = <ls_toggle> ).
|
||||
|
||||
io_xml->add(
|
||||
iv_name = 'FTGL'
|
||||
ig_data = <ls_toggle> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_field.
|
||||
|
||||
FIELD-SYMBOLS: <lv_field> TYPE data.
|
||||
|
||||
ASSIGN
|
||||
COMPONENT iv_fieldname
|
||||
OF STRUCTURE cs_header
|
||||
TO <lv_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
CLEAR: <lv_field>.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
16
src/objects/zcl_abapgit_object_ftgl.clas.xml
Normal file
16
src/objects/zcl_abapgit_object_ftgl.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_OBJECT_FTGL</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>FTGL</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user