*---------------------------------------------------------------------- * Program Name: Z_SYNTAX_CHECKER * Author : Michael Watson * Description : Performs a syntax check on the given objects, listing * those with errors. *---------------------------------------------------------------------- REPORT Z_SYNTAX_CHECKER. tables: tdevc, tadir, trdir. select-options s_devc for tdevc-devclass. select-options s_prog for sy-cprog. data: lv_trdir like trdir. *--------------------------------------------------------* start-of-selection. perform syntax_check. form syntax_check. data: check_include like sy-repid, check_index like sy-tabix, check_message(80) type c, check_offs like sy-tabix, check_subrc like sy-subrc. data: fugr_name(8) type c value 'SAPLxxxx'. data: begin of content occurs 0, line(500) type c, end of content. data: wasanerror(1). wasanerror = '0'. select * from tadir where devclass in s_devc and obj_name in s_prog and ( object eq 'PROG' or object eq 'FUGR' ) order by primary key. if tadir-object = 'FUGR'. move tadir-obj_name to fugr_name+4(4). move fugr_name to tadir-obj_name. endif. select single * from trdir into lv_trdir where name eq tadir-obj_name. check sy-subrc eq 0. check lv_trdir-subc ne 'I'. "Include?? refresh content. read report lv_trdir-name into content. if sy-subrc = 0. call function 'EDITOR_SYNTAX_CHECK' exporting i_global_check = ' ' i_global_program = ' ' i_program = lv_trdir-name importing o_error_include = check_include o_error_line = check_index o_error_message = check_message o_error_offset = check_offs o_error_subrc = check_subrc tables i_source = content. if check_subrc eq 0. * no code else. write: lv_trdir-name, ',Error: ', check_message. endif. else. write: 'Program: ', lv_trdir-name, 'Error: ', check_message. endif. endselect. endform.