Вы находитесь на странице: 1из 5

ENHANCEMENT 1 ZSY_TR. "active version TYPES: BEGIN OF lty_msg, msg(100) TYPE c, END OF lty_msg.

DATA: lv_as4text lv_value(50) lv_suff lv_pos lv_len lv_object lv_obj_nm lv_tabclass lv_msg_cl lv_msg_nr lv_respuser lv_msg(100) lv_uname lv_ans lv_text DATA: lt_mast lt_subs lt_mast_t lw_mast lt_subs_t lw_subs lt_msg lw_msg lt_msg_t lw_msg_t lw_objects lw_obj_d TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE as4text, c, zscope_cc_val, i, i, trobjtype, trobj_name, tabclass, arbgb, msgnr, as4user, c, uname, c, TRFUNCTION. " Added by tjjait

TYPE TYPE TYPE LIKE TYPE LIKE TYPE LIKE TYPE LIKE LIKE LIKE

TABLE OF zscope_itccmast, TABLE OF zscope_itccsubs, TABLE OF zscope_itccmast, LINE OF lt_mast, TABLE OF zscope_itccsubs, LINE OF lt_subs, TABLE OF lty_msg, LINE OF lt_msg, TABLE OF lty_msg, LINE OF lt_msg_t, LINE OF objects, LINE OF objects.

IF type = 'S' OR type ='K' OR type = 'R' OR type = 'W'. " Type W added by tjja it. lv_as4text = text. * read details from CC Master & Sub table with category TR_DESC SELECT * FROM zscope_itccmast INTO TABLE lt_mast. SELECT * FROM zscope_itccsubs INTO TABLE lt_subs. * check the naming for the TR description lt_mast_t = lt_mast. DELETE lt_mast_t WHERE category <> 'TR_DESC'. LOOP AT lt_mast_t INTO lw_mast. lt_subs_t = lt_subs. get position lv_pos = lw_mast-start_pos - 1. lv_len = lw_mast-end_pos - lv_pos. lv_value = lv_as4text+lv_pos(lv_len). DELETE lt_subs_t WHERE NOT ( category = 'TR_DESC' AND field = lw_mast-field ).

IF NOT lt_subs_t[] IS INITIAL. check for special case READ TABLE lt_subs_t INTO lw_subs WITH KEY value = '*'. IF sy-subrc <> 0. check if the value matches the expected values. READ TABLE lt_subs_t INTO lw_subs WITH KEY value = lv_value. IF sy-subrc <> 0. CONCATENATE lw_mast-field ':' lv_value 'does not follow naming convention.' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ENDIF. ELSE. when it is fix text IF lv_value <> lw_mast-fix_txt. CONCATENATE lw_mast-field ':' lv_value 'is a fix text following naming convention' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ENDIF. CLEAR: lw_msg_t, lw_mast, lw_subs, lv_value, lv_object, lv_pos, lv_len. REFRESH: lt_subs_t. ENDLOOP. REFRESH: lt_mast_t. collect messages IF NOT lt_msg_t[] IS INITIAL. lw_msg-msg = 'TR Description check :'. APPEND lw_msg TO lt_msg. APPEND LINES OF lt_msg_t TO lt_msg. lw_msg-msg = '.'. APPEND lw_msg TO lt_msg. "space in between messages CLEAR: lw_msg-msg. REFRESH: lt_msg_t. ENDIF.

* only proceed with the below when it is task IF type = 'S' or type = 'R'. * check the objects tied to the TR LOOP AT objects INTO lw_objects WHERE object <> 'RELE'. CHECK lw_objects-objfunc <> 'D'. READ TABLE objects INTO lw_obj_d WITH KEY obj_name = lw_objects-obj_name objfunc = 'D'. IF sy-subrc <> 0. lv_obj_nm = lw_objects-obj_name. lv_object = lw_objects-object. * checks for messages IF lv_object = 'MESS'. lv_len = strlen( lv_obj_nm ). lv_pos = lv_len - 3. lv_msg_nr = lv_obj_nm+lv_pos(lv_len). lv_len = lv_pos. lv_msg_cl = lv_obj_nm+0(lv_len). SELECT SINGLE respuser

INTO lv_respuser FROM t100a WHERE arbgb = lv_msg_cl. IF lv_respuser = 'SAP'. standard msg class (900-999) IF lv_msg_nr+0(1) <> '9'. CONCATENATE 'MSG NR :' lv_msg_nr 'for' lv_msg_cl 'does not follow naming convention.' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ELSE. custom msg class (not 000-099 & 500-599) IF lv_msg_nr+0(1) = '0' OR lv_msg_nr+0(1) = '5'. CONCATENATE 'MSG NR :' lv_msg_nr 'for' lv_msg_cl 'does not follow naming convention.' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ENDIF. CLEAR: lv_msg_nr, lv_msg_cl, lw_msg_t, lv_respuser, lv_len, lv_pos. ENDIF. check the object is a structure for object TABL IF lv_object = 'TABL' or lv_object = 'TABD'. SELECT SINGLE tabclass INTO lv_tabclass FROM dd02l WHERE tabname = lv_obj_nm AND tabclass = 'INTTAB'. IF sy-subrc = 0. lv_object = 'STRU'. ELSE. lv_object = lw_objects-object. ENDIF. CLEAR: lv_tabclass. ENDIF. ENDIF. lt_mast_t = lt_mast. DELETE lt_mast_t WHERE category <> lv_object. LOOP AT lt_mast_t INTO lw_mast. get position lt_subs_t = lt_subs. lv_pos = lw_mast-start_pos - 1. lv_len = lw_mast-end_pos - lv_pos. lv_value = lv_obj_nm+lv_pos(lv_len). DELETE lt_subs_t WHERE NOT ( category = lv_object AND field = lw_mast-field ).

IF NOT lt_subs_t[] IS INITIAL. check for special case LOOP AT lt_subs_t INTO lw_subs WHERE value CS '*'. IF lw_subs-value CS '_'. when there is suffix

lv_suff = lw_subs-value+1(2). lv_len = strlen( lv_obj_nm ). lv_pos = lv_len - 2. lv_value = lv_obj_nm+lv_pos(2). IF lv_value <> lv_suff. CONCATENATE 'SUFFIX :' lv_value 'does not follow naming convention.' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ENDIF. CLEAR: lv_suff, lv_len, lv_pos, lv_value, lw_subs. ENDLOOP. * IF sy-subrc <> 0. check if the value matches the expected values. READ TABLE lt_subs_t INTO lw_subs WITH KEY value = lv_value. IF sy-subrc <> 0. CONCATENATE lw_mast-field ':' lv_value 'does not follow naming convention.' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ENDIF. ELSE. when it is fix text IF lv_value <> lw_mast-fix_txt. CONCATENATE lw_mast-field ':' lv_value 'is a fix text following naming convention' INTO lw_msg_t-msg SEPARATED BY space. APPEND lw_msg_t TO lt_msg_t. ENDIF. ENDIF. CLEAR: lw_msg_t, lw_mast, lw_subs, lv_value, lv_pos, lv_len. REFRESH: lt_subs_t. ENDLOOP. IF NOT lt_msg_t IS INITIAL. CONCATENATE 'Object Type :' lv_object 'Object Name :' lv_obj_nm INTO lw_msg-msg SEPARATED BY space. APPEND lw_msg TO lt_msg. APPEND LINES OF lt_msg_t TO lt_msg. lw_msg-msg = '.'. APPEND lw_msg TO lt_msg. "space in between messages REFRESH: lt_mast_t, lt_msg_t. ENDIF. CLEAR: lv_obj_nm, lv_object, lw_objects. ENDLOOP. ENDIF.

using a popup and message to display messages and control release

* *

IF NOT lt_msg[] IS INITIAL. CALL FUNCTION 'C_POPUP_WITH_TABLE' EXPORTING ENDPOS_COL = 100 ENDPOS_ROW = 10 STARTPOS_COL = 1 STARTPOS_ROW = 1 TITLETEXT = 'Error messages' IMPORTING CHOICE = TABLES VALUETAB = lt_msg EXCEPTIONS BREAK_OFF = 1 OTHERS = 2. special right for certain users SELECT SINGLE uname INTO lv_uname FROM zscope_itccctrl WHERE uname = sy-uname.

IF sy-subrc = 0. CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING TITLEBAR = 'Confirmation' * DIAGNOSE_OBJECT = ' ' TEXT_QUESTION = 'TR contains GfK standard errors. Do y ou want to proceed with the release?' TEXT_BUTTON_1 = 'Yes'(001) TEXT_BUTTON_2 = 'No'(002) * DEFAULT_BUTTON = '1' * DISPLAY_CANCEL_BUTTON = 'X' * USERDEFINED_F1_HELP = ' ' * START_COLUMN = 25 * START_ROW = 6 * POPUP_TYPE = * IV_QUICKINFO_BUTTON_1 = ' ' * IV_QUICKINFO_BUTTON_2 = ' ' IMPORTING ANSWER = lv_ans * TABLES * PARAMETER = * EXCEPTIONS * TEXT_NOT_FOUND = 1 * OTHERS = 2 . IF SY-SUBRC = 0 AND lv_ans <> '1'. MESSAGE e000(zscope_it_cc). ENDIF. ELSE. MESSAGE e000(zscope_it_cc). ENDIF. ENDIF. ENDIF. ENDENHANCEMENT. *$*$-End: (1)--------------------------------------------------------------------------------$*$* endmethod.

Вам также может понравиться