SAP_UPDATE_DBDIFF is a standard Executable ABAP Report available within your SAP system (depending on your version and release level). Below is the basic information available for this SAP report including which OBJECTS it interacts with such as TABLES, FUNCTION MODULES, INCLUDES ETC. Also check out the submitted Comments related to this SAP report or see any standard documentation available.
If you would like to execute this report or see the full code listing simply enter SAP_UPDATE_DBDIFF into the relevant SAP transactions such as SE38 or SE80
This report can be called from another progam/report simply by using the ABAP SUBMIT statement, see below for example ABAP code snipts of how to do this.
Title: SAP BW: Refreshing table DBDIFF (inconsistencies DDIC DB)
No INCLUDES are used within this REPORT code!
No SAP DATABASE tables are accessed within this REPORT code!
DB_EXISTS_TABLE CALL FUNCTION 'DB_EXISTS_TABLE' EXPORTING TABNAME = l_tablnm IMPORTING SUBRC = l_subrc.
DB_COMMIT CALL FUNCTION 'DB_COMMIT'.
RSDGDB_GET_DB_PAR CALL FUNCTION 'RSDGDB_GET_DB_PAR' IMPORTING e_s_db_par = l_s_db_par.
RSDU_GET_INDEX_NAME CALL FUNCTION 'RSDU_GET_INDEX_NAME' EXPORTING i_tablnm = l_tablnm i_indexnumber = '0' IMPORTING e_index = l_index.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_tablnm i_objtype = rsdu_c_objtype-table i_diffkind = '61' "no unique index i_dbsys = sy-dbsys EXCEPTIONS illegal_input = 0 "tolerate errors inherited_error = 0 OTHERS = 0.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_objname i_objtype = rsdu_c_objtype-index i_diffkind = l_diffkind i_dbsys = sy-dbsys EXCEPTIONS illegal_input = 0 "tolerate errors inherited_error = 0 OTHERS = 0.
DDIF_INDX_GET CALL FUNCTION 'DDIF_INDX_GET' EXPORTING name = l_tablnm id = 'P' IMPORTING gotstate = l_gotstate.
DB_EXISTS_INDEX CALL FUNCTION 'DB_EXISTS_INDEX' EXPORTING TABNAME = l_tablnm INDEXNAME = 'P' IMPORTING SUBRC = l_subrc EXCEPTIONS PARAMETER_ERROR = 1 OTHERS = 2 .
RSDU_GET_INDEX_NAME CALL FUNCTION 'RSDU_GET_INDEX_NAME' EXPORTING i_tablnm = l_tablnm i_indexnumber = 'P' IMPORTING e_index = l_index.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_objname i_objtype = rsdu_c_objtype-index i_diffkind = '01' i_dbsys = sy-dbsys EXCEPTIONS illegal_input = 0 "tolerate errors inherited_error = 0 OTHERS = 0.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_tablnm i_objtype = rsdu_c_objtype-table i_diffkind = '61' "no unique index i_dbsys = sy-dbsys EXCEPTIONS illegal_input = 0 "tolerate errors inherited_error = 0 OTHERS = 0.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_objname i_objtype = rsdu_c_objtype-index i_diffkind = l_diffkind i_dbsys = sy-dbsys EXCEPTIONS illegal_input = 0 "tolerate errors inherited_error = 0 OTHERS = 0.
DDIF_INDX_GET CALL FUNCTION 'DDIF_INDX_GET' EXPORTING name = l_tablnm id = 'P' IMPORTING gotstate = l_gotstate.
DB_EXISTS_INDEX CALL FUNCTION 'DB_EXISTS_INDEX' EXPORTING TABNAME = l_tablnm INDEXNAME = 'P' IMPORTING SUBRC = l_subrc EXCEPTIONS PARAMETER_ERROR = 1 OTHERS = 2 .
RSDU_GET_INDEX_NAME CALL FUNCTION 'RSDU_GET_INDEX_NAME' EXPORTING i_tablnm = l_tablnm i_indexnumber = 'P' IMPORTING e_index = l_index.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_objname i_objtype = rsdu_c_objtype-index i_diffkind = '01' i_dbsys = sy-dbsys EXCEPTIONS illegal_input = 0 "tolerate errors inherited_error = 0 OTHERS = 0.
DB_COMMIT CALL FUNCTION 'DB_COMMIT'.
DDIF_TABL_GET * CALL FUNCTION 'DDIF_TABL_GET' * EXPORTING * name = l_tablnm * TABLES * dd12v_tab = l_t_dd12v * EXCEPTIONS * OTHERS = 0. "ignore errors
* CALL FUNCTION 'RSDU_GET_INDEX_NAME' * EXPORTING * i_tablnm = l_s_dd12v-sqltab * i_indexnumber = l_s_dd12v-indexname * IMPORTING * e_index = l_index.
RSDU_DBDIFF_INSERT * CALL FUNCTION 'RSDU_DBDIFF_INSERT' * EXPORTING * i_objname = l_objname * i_objtype = rsdu_c_objtype-index * i_diffkind = '99' "don't check * i_source = l_source * i_dbsys = sy-dbsys * EXCEPTIONS * illegal_input = 0 "tolerate errors * inherited_error = 0 * OTHERS = 0.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_tablnm i_objtype = l_objtype i_diffkind = '99' "temporary object * i_source = l_source EXCEPTIONS OTHERS = 0. "tolerate errors
RSDU_ANALYZE_TABLE CALL FUNCTION 'RSDU_ANALYZE_TABLE' EXPORTING i_tablnm = 'DBDIFF' i_percentage = 100 EXCEPTIONS OTHERS = 0. "tolerate errors
RSDU_GET_CALC_VIEWS CALL FUNCTION 'RSDU_GET_CALC_VIEWS' IMPORTING e_t_views = l_t_tablnm EXCEPTIONS OTHERS = 0.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_tablnm i_objtype = rsdu_c_objtype-table i_dbsys = 'HDB' i_diffkind = '02' "Mandatory in the DD but not on the DB * i_source = l_source EXCEPTIONS OTHERS = 0. "tolerate errors
SHDB_GET_ALL_INDEXES CALL FUNCTION 'SHDB_GET_ALL_INDEXES' EXPORTING i_unique_only = 'X' IMPORTING t_all_indexes = l_t_ind EXCEPTIONS sql_error = 1 internal_error = 2 OTHERS = 3.
RSD_OBJECT_IS_GENERATED CALL FUNCTION 'RSD_OBJECT_IS_GENERATED' EXPORTING i_objnm =
IMPORTING e_object_generated = l_object_generated e_odsobject = l_odsobject e_identifier = l_identifier EXCEPTIONS OTHERS = 2.
RSDU_GET_INDEX_NAME CALL FUNCTION 'RSDU_GET_INDEX_NAME' EXPORTING i_tablnm =
i_indexnumber = '0' IMPORTING e_index = l_index.
RSDU_DBDIFF_INSERT CALL FUNCTION 'RSDU_DBDIFF_INSERT' EXPORTING i_objname = l_objname i_objtype = rsdu_c_objtype-index i_diffkind = '02' "Mandatory in the DD but not on the DB i_dbsys = 'HDB' EXCEPTIONS OTHERS = 0. "tolerate errors
Although this basic information may have limited use it does provide an easy to find location to store any knowledge about this program/report.
The contribute/comments section below therefore offer's an opportunity for anyone to add additional information. This can be anything from useful hints, tips and screen shots to relevant SAP notes or anything else you feel is relevant to this report.
This will then be available for everyone to easily find by simply searching on the report name SAP_UPDATE_DBDIFF or its description.