REPORT ZPCTLIST. ************************************************************ * This little program uses the %_list internal table to * do various things with a list that is created by an * ABAP: save it on UNIX, save it on the pc, print it out * and send it out as an express mail. This method can save * a lots of hassle, because the form routines has to be * called only once, at the end of the report. *********************************************************** INCLUDE <%_LIST>. DATA: PARAMS LIKE PRI_PARAMS, VALID. DATA: BEGIN OF DATA_TAB OCCURS 20, LINE(255), END OF DATA_TAB. DATA: BEGIN OF EMAIL_DATA. INCLUDE STRUCTURE SODOCCHGI1. DATA: END OF EMAIL_DATA. DATA: BEGIN OF EMAIL_SEND OCCURS 10. INCLUDE STRUCTURE SOMLRECI1. DATA: END OF EMAIL_SEND. * Write to screen WRITE: / 'First line on the screen'. * Hundreds of lines of code ... WRITE: / 'Second line on the screen'. * Hundreds of lines of code ... WRITE: / 'Third line on the screen'. * AND AT THE AND OF THE PROGRAM: PERFORM SAVE_ON_UNIX. PERFORM SAVE_ON_PC. PERFORM PRINT_IT_OUT. PERFORM SEND_EXPERESS_MAIL. *---------------------------------------------------------------------* * FORM SAVE_ON_UNIX * *---------------------------------------------------------------------* FORM SAVE_ON_UNIX. OPEN DATASET '/usr/sap/trans/listtest' FOR OUTPUT IN TEXT MODE. LOOP AT %_LIST. TRANSFER %_LIST-LINE TO '/usr/sap/trans/listtest'. ENDLOOP. CLOSE DATASET '/usr/sap/trans/listtest'. ENDFORM. *---------------------------------------------------------------------* * FORM SAVE_ON_PC * *---------------------------------------------------------------------* FORM SAVE_ON_PC. LOOP AT %_LIST. DATA_TAB-LINE = %_LIST-LINE. APPEND DATA_TAB. ENDLOOP. CALL FUNCTION 'WS_DOWNLOAD' EXPORTING FILENAME = 'c:\listtest' TABLES DATA_TAB = DATA_TAB. ENDFORM. *---------------------------------------------------------------------* * FORM PRINT_IT_OUT * *---------------------------------------------------------------------* FORM PRINT_IT_OUT. CALL FUNCTION 'GET_PRINT_PARAMETERS' EXPORTING DESTINATION = 'AA01' LIST_NAME = 'List' LIST_TEXT = 'List from %_list' IMMEDIATELY = ' ' RELEASE = 'X' NEW_LIST_ID = 'X' NO_DIALOG = 'X' IMPORTING OUT_PARAMETERS = PARAMS VALID = VALID. IF VALID <> SPACE. NEW-PAGE PRINT ON PARAMETERS PARAMS NO DIALOG. LOOP AT %_LIST. WRITE: / %_LIST-LINE. ENDLOOP. ENDIF. NEW-PAGE PRINT OFF. ENDFORM. *---------------------------------------------------------------------* * FORM SEND_EXPERESS_MAIL * *---------------------------------------------------------------------* FORM SEND_EXPERESS_MAIL. EMAIL_DATA-OBJ_NAME = 'MESSAGE'. EMAIL_DATA-OBJ_DESCR = 'TEST MAIL THAT USES %_LIST'. EMAIL_DATA-OBJ_LANGU = 'E'. EMAIL_DATA-SENSITIVTY = 'P'. EMAIL_DATA-OBJ_PRIO = '1'. EMAIL_DATA-NO_CHANGE = 'X'. EMAIL_DATA-PRIORITY = '1'. EMAIL_SEND-RECEIVER = 'KABAIIM'. EMAIL_SEND-REC_TYPE = 'B'. EMAIL_SEND-EXPRESS = 'X'. APPEND EMAIL_SEND. CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1' EXPORTING DOCUMENT_DATA = EMAIL_DATA DOCUMENT_TYPE = 'RAW' PUT_IN_OUTBOX = 'X' TABLES OBJECT_CONTENT = DATA_TAB RECEIVERS = EMAIL_SEND. ENDFORM.