Professional Documents
Culture Documents
8) Automalier
8) Automalier
TYPE
TYPE
TYPE
TYPE
I,
STRING,
STRING,
XSTRING.
PERFORM GET_REPORT_OUTPUT.
PERFORM EXCEL_ZIP_SEND.
*----------------------------------------------------------------------*
***INCLUDE ZSD_SALES_REGISTER_ROUTINES .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form GET_REPORT_OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_REPORT_OUTPUT .
DATA : ITAB
TYPE TABLE OF STRING,
LV_ITAV TYPE STRING.
CONSTANTS:
CO_SEPARATER TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,
CO_NEWLINE
TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF.
REFRESH : IT_TEXT, IT_TXT.
CLEAR : WA_TEXT.
** 1. Execute the report and write ALV output to memory
SUBMIT (L_PRGNM) USING SELECTION-SET P_VARINT
EXPORTING LIST TO MEMORY AND RETURN.
IF SY-SUBRC <> 0.
MESSAGE TEXT-002 TYPE 'E'.
ENDIF.
** 2. Get ALV output from memory to internal table
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
LISTOBJECT = IT_LIST
EXCEPTIONS
NOT_FOUND = 1
OTHERS
= 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*** 3. convert output to text
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
LIST_INDEX
= -1
TABLES
LISTASCI
= IT_TEXT
LISTOBJECT
= IT_LIST
EXCEPTIONS
EMPTY_LIST
= 1
LIST_INDEX_INVALID = 2
OTHERS
= 3.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*** 4. all data to string variable
CLEAR GV_STRMSG.
LOOP AT IT_TEXT INTO WA_TEXT.
IF WA_TEXT-LINE NP '-*'.
REPLACE ALL OCCURRENCES OF '|' IN WA_TEXT WITH CO_SEPARATER.
CONCATENATE GV_STRMSG WA_TEXT CO_NEWLINE INTO GV_STRMSG.
ENDIF.
ENDLOOP.
REFRESH IT_TEXT.
" GV_STRMSG holds all data to be sent in excel.
ENDFORM.
" GET_REPORT_OUTPUT
*&---------------------------------------------------------------------*
*&
Form EXCEL_ZIP_SEND
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM EXCEL_ZIP_SEND .
** data declaration
"Object
DATA : LV_FILE
TYPE STRING,
LV_ZIPFILEHEX TYPE XSTRING,
LV_BDYMSG
TYPE STRING,
LV_BDYLEN
TYPE I,
LV_BDYLENG
TYPE SO_OBJ_LEN,
GO_ZIPPER
TYPE REF TO CL_ABAP_ZIP,
IT_BIN_CON
TYPE SOLIX_TAB,
IT_BDYMSG
TYPE BCSY_TEXT,
SEND_REQUEST TYPE REF TO CL_BCS,
DOCUMENT
TYPE REF TO CL_DOCUMENT_BCS,
LV_SUBJECT
TYPE SO_OBJ_DES,
SENT_TO_ALL TYPE OS_BOOLEAN,
RECIPIENT
TYPE REF TO IF_RECIPIENT_BCS.
*** 1. convert data from string to xstring
CLEAR GV_XSTRMSG.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
TEXT = GV_STRMSG
IMPORTING
BUFFER = GV_XSTRMSG.
.
I_EXPRESS
= 'X'.
LOOP AT SO_RECP.
"convert receipient to internet format and then add
RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( SO_RECP-LOW ).
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT
I_EXPRESS = 'X'.
ENDLOOP.
" Send mail
CALL METHOD SEND_REQUEST->SET_STATUS_ATTRIBUTES
EXPORTING
I_REQUESTED_STATUS = 'E'
I_STATUS_MAIL
= 'E'.
CALL METHOD SEND_REQUEST->SET_SEND_IMMEDIATELY( 'X' ).
CALL METHOD SEND_REQUEST->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = SENT_TO_ALL ).
IF SENT_TO_ALL = 'X'.
**
MESSAGE TEXT-003 TYPE 'S'.
MESSAGE 'The file has been sent successfully.' TYPE 'S'.
ELSE.
**
MESSAGE TEXT-004 TYPE 'E'.
MESSAGE 'Error is generated.' TYPE 'E'.
ENDIF.
COMMIT WORK.
EXIT.
ENDTRY.
ENDFORM.
" EXCEL_ZIP_SEND
************************************************************************