REPORT ZDOWN_ANYTAB_BE no standard page heading. * Author Jayanta Narayan Choudhuri * Flat 302 * 395 Jodhpur Park * Kolkata 700 068 * Email sss@cal.vsnl.net.in * URL: http://www.geocities.com/ojnc * This program can be run as background job at regular intervals * Will be useful for identifying bugs in DELETE & UPDATE in production TABLES: DD02L, DD02T, DD03L, DD04T. PARAMETERS pTable LIKE DD02L-TABNAME OBLIGATORY. DATA: BEGIN OF MYTABLE, TABNAME like DD02L-TABNAME, AS4LOCAL like DD02L-AS4LOCAL, AS4VERS like DD02L-AS4VERS, DDTEXT like DD02T-DDTEXT, END OF MYTABLE. DATA: code type Table of rssource-line, prog(8) type C, msg(120) type C, lin(3) type C, wrd(10) type C, off(3) type C. Data: MyString Type String. SELECT SINGLE TABNAME AS4LOCAL AS4VERS INTO CORRESPONDING FIELDS OF MYTABLE FROM DD03L WHERE TABNAME = pTable. If sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. Endif. Append 'Program SubPool.' to Code. Concatenate 'Tables:' pTable '.' into MyString SEPARATED BY SPACE. Append MyString to Code. Append '' to Code. Append 'Form DoExport.' to Code. Append '' to Code. Append 'data : begin of I_TAB occurs 0.' to Code. Concatenate 'Include Structure ' pTable '.' into MyString SEPARATED BY SPACE. Append MyString to Code. Append 'data : End of I_TAB.' to Code. Append '' to Code. Append 'Data: RecString type String,' to Code. Append ' WrkString(40) type C,' to Code. Append ' FlatFile like RLGRAP-FILENAME,' to Code. Append ' RecLen type I.' to Code. Append '' to Code. Append 'Constants: myTAB Type C Value %_HORIZONTAL_TAB.' to Code. Append '' to Code. Concatenate 'Select * From' pTable ' Into Table I_TAB.' into MyString SEPARATED BY SPACE. Append MyString to Code. Append '' to Code. Append 'IF SY-SUBRC <> 0.' to Code. Append ' MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO' to Code. Append ' WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.' to Code. Append 'ENDIF.' to Code. Append '' to Code. * Change c:\ to any Win32 or Unix Directory with trailing Slash Concatenate 'Concatenate ''c:\' '@' pTable '!_' into MyString. Replace '@' in MyString with ''' '''. Replace '!_' in MyString with ''' ''_'' '. Append MyString to Code. Append ' Sy-Datum ''_'' Sy-Uzeit ''.dat'' into FlatFile.' to Code. Append '' to Code. Append 'Open Dataset FlatFile For Output In Text Mode Encoding Default.' to Code. Append '' to Code. Append 'Loop At I_TAB.' to Code. Append ' RecString = ''''.' to Code. SELECT * FROM DD03L WHERE TABNAME = MYTABLE-TABNAME AND AS4LOCAL = MYTABLE-AS4LOCAL AND AS4VERS = MYTABLE-AS4VERS. if DD03L-FIELDNAME <> '.INCLUDE'. If DD03L-INTTYPE = 'C'. Concatenate 'Concatenate RecString myTAB I_TAB-' DD03L-FIELDNAME ' into RecString.' into MyString. Append MyString to Code. Else. Concatenate 'Write I_TAB-' DD03L-FIELDNAME ' to WrkString.' into MyString. Append MyString to Code. Append 'Replace All Occurrences Of '','' in WrkString with ''''.' to Code. Append 'Condense WrkString.' to Code. Append 'Concatenate RecString myTAB WrkString into RecString.' to Code. EndIf. EndIf. ENDSELECT. Append '' to Code. Append ' RecLen = strlen( RecString ).' to Code. Append ' Subtract 1 from RecLen.' to Code. Append ' Transfer RecString+1(RecLen) to FlatFile.' to Code. Append '' to Code. Append 'EndLoop.' to Code. Append '' to Code. Append 'Close Dataset FlatFile.' to Code. Append '' to Code. * Using Tcode SM69 create ZCOMPRESS as the compress utility of your choice Append 'DATA: ld_comline LIKE sxpgcolist-name,' to Code. Append ' ld_param LIKE sxpgcolist-parameters,' to Code. Append ' ld_status LIKE extcmdexex-status,' to Code. Append ' ld_output LIKE btcxpm OCCURS 0 WITH HEADER LINE,' to Code. Append ' ld_subrc LIKE sy-subrc.' to Code. Append '' to Code. Append ' Refresh ld_output.' to Code. Append ' Move FlatFile to ld_param.' to Code. Append ' Move ''ZCOMPRESS'' to ld_comline. "Maintained using trans SM69' to Code. Append '' to Code. Append ' CALL FUNCTION ''SXPG_COMMAND_EXECUTE''' to Code. Append ' EXPORTING' to Code. Append ' commandname = ld_comline' to Code. Append ' additional_parameters = ld_param' to Code. Append ' IMPORTING' to Code. Append ' status = ld_status' to Code. Append ' TABLES' to Code. Append ' exec_protocol = ld_output.' to Code. Append '' to Code. Append ' IF SY-SUBRC <> 0.' to Code. Append ' MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO' to Code. Append ' WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.' to Code. Append ' ENDIF.' to Code. Append '' to Code. Append 'EndForm. "DoExport' to Code. * To take out the generated code for further editing * CALL FUNCTION 'GUI_DOWNLOAD' * EXPORTING * FILENAME = 'c:\jnc.ab4' * TABLES * DATA_TAB = CODE. * * IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. * ENDIF. GENERATE SUBROUTINE POOL code NAME prog MESSAGE msg LINE lin WORD wrd OFFSET off. IF SY-SUBRC NE 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. PERFORM DoExport IN PROGRAM (prog). IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDIF.