ZMC Change Devc
ZMC Change Devc
ZMC Change Devc
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE titbl1.
PARAMETERS p_proj TYPE dmc_pdescr.
PARAMETERS p_ident TYPE char20 MODIF ID dis.
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN BEGIN OF BLOCK bl4 WITH FRAME TITLE titbl4.
PARAMETERS p_devc TYPE devclass MODIF ID dev.
SELECTION-SCREEN END OF BLOCK bl4.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'DIS'.
screen-input = 0.
MODIFY SCREEN.
WHEN 'DEV'.
screen-required = 2. "recommended
MODIFY SCREEN.
WHEN OTHERS.
"do nothing
ENDCASE.
CASE screen-name.
WHEN 'P_IDENT'.
PERFORM get_ident_name USING p_proj
CHANGING p_ident.
WHEN OTHERS.
"do nothing
ENDCASE.
ENDLOOP.
INITIALIZATION.
titbl1 = 'Project Selection'.
titbl4 = 'Package to be Assigned'.
**********************
* START-OF-SELECTION *
**********************
START-OF-SELECTION.
PERFORM check USING p_devc
CHANGING gv_failed.
IF gv_failed EQ abap_true.
RETURN.
ENDIF.
CONCATENATE 'Are you sure you want to assign development package'(002) p_devc 'to
migration project'(003) p_proj '?'
INTO gv_question SEPARATED BY space.
*&---------------------------------------------------------------------*
*& Form CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM check
USING iv_devc
CHANGING cv_failed. "#EC CI_FORM
DATA lv_dev_exists TYPE abap_bool.
DATA lv_editable TYPE abap_bool.
cv_failed = abap_false.
cl_dmc_authority=>check_change(
EXCEPTIONS
no_authority = 1
OTHERS = 2
).
IF sy-subrc <> 0.
MESSAGE 'You are not authorized to run this report'(004) TYPE 'S' DISPLAY LIKE
'E' ##NO_TEXT.
cv_failed = abap_true.
RETURN.
ENDIF.
IF iv_devc IS INITIAL.
MESSAGE 'No development package specified; please specify a development
package'(001) TYPE 'S' DISPLAY LIKE 'E'.
cv_failed = abap_true.
RETURN.
ENDIF.
IF lv_editable EQ abap_false.
CLEAR gv_string.
CONCATENATE 'Development package' iv_devc 'is not editable'
INTO gv_string SEPARATED BY space.
MESSAGE gv_string TYPE 'I' DISPLAY LIKE 'E'.
cv_failed = abap_true.
RETURN.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GET_IDENT_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_ident_name
USING iv_proj_descr
CHANGING cv_ident_name. "#EC CI_FORM
CLEAR cv_ident_name.
*&---------------------------------------------------------------------*
*& Form GET_OBJECTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_objects USING iv_proj_id
CHANGING ct_tadir TYPE table. "#EC CI_FORM
DATA lt_sprj_range TYPE RANGE OF dmc_sident.
DATA lt_sprj TYPE TABLE OF tadir.
SELECT * FROM tadir
WHERE object = 'PROJ' AND obj_name = @gv_proj_ident AND author = @gv_user
INTO TABLE @ct_tadir. "#EC CI_GENBUFF.
SELECT * FROM tadir INTO TABLE @lt_sprj WHERE object = 'SPRJ' AND obj_name IN
@lt_sprj_range. "#EC CI_GENBUFF.
IF sy-subrc EQ 0.
APPEND LINES OF lt_sprj TO ct_tadir.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CHANGE_OBJECTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM change_objects USING iv_devclass. "#EC CI_FORM
DATA ls_tadir TYPE tadir.
CLEAR gv_string.
CONCATENATE 'Development package' iv_devclass 'has been assigned to migration
project' p_proj
INTO gv_string SEPARATED BY space.
MESSAGE gv_string TYPE 'S'.
ENDFORM.