2012 Sep 28 6:52 PM
Hello,
I am working on a program where I have an internal table and I need to convert that into an .xls internally. All the function modules that I have looked so far are trying to download the file to some location but all I need is to convert the internal table into an excel file internally,
Thanks,
Hello,
I am working on a program where I have an internal table and I need to convert that into an .xls internally. All the function modules that I have looked so far are trying to download the file to some location but all I need is to convert the internal table into an excel file internally,
Thanks,
2012 Sep 28 7:29 PM
Rahul,
I'm sending email with attachment I_final internal table as .Xls file. Verify once this code.
FORM SEND_MAIL_TO_CUSTOMER .
DATA : LIT_BINARY_CONTENT TYPE SOLIX_TAB.
DATA : XL_CONTENT TYPE XSTRING ,
L_OUTPUT TYPE STRING,
L_RESULT_CONTENT TYPE STRING ,
SEND_REQUEST TYPE REF TO CL_BCS VALUE IS INITIAL,
DOCUMENT TYPE REF TO CL_DOCUMENT_BCS VALUE IS INITIAL,
SENDER TYPE REF TO IF_SENDER_BCS VALUE IS INITIAL,
RECIPIENT TYPE REF TO IF_RECIPIENT_BCS VALUE IS INITIAL,
BCS_EXCEPTION TYPE REF TO CX_BCS. "#EC NEEDED
DATA : LIT_TEXT TYPE SOLI_TAB,
L_SUBJECT TYPE SO_OBJ_DES,
L_ATTA_SUB TYPE SO_OBJ_DES,
L_CONLENGTHS TYPE SO_OBJ_LEN,
L_TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,
L_NEWLINE TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>NEWLINE,
L_SENT_TO_ALL TYPE OS_BOOLEAN. "#EC NEEDED
CLEAR L_OUTPUT.
LOOP AT I_FINAL INTO WA_FINAL.
IF SY-TABIX EQ 1.
*Populating header information-----------------------------------------------------------------------------------------
CONCATENATE
'VENDOR NO'
'VENDOR NAME'
'COMPANY CODE'
'CREATED ON'
'PAYMENT TERM'
L_NEWLINE
INTO L_OUTPUT SEPARATED BY L_TAB.
ENDIF.
CONCATENATE L_OUTPUT
WA_FINAL-LIFNR
L_TAB
WA_FINAL-NAME1
L_TAB
WA_FINAL-BUKRS
L_TAB
WA_FINAL-ERDAT
L_TAB
WA_FINAL-ZTERM
L_TAB
L_NEWLINE
INTO L_OUTPUT.
ENDLOOP.
CLEAR: XL_CONTENT .
CALL FUNCTION 'HR_KR_STRING_TO_XSTRING' "#EC FB_RC
EXPORTING
CODEPAGE_TO = '8300'
UNICODE_STRING = L_OUTPUT
IMPORTING
XSTRING_STREAM = XL_CONTENT
EXCEPTIONS
INVALID_CODEPAGE = 1
INVALID_STRING = 2
OTHERS = 3.
REFRESH LIT_BINARY_CONTENT .
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = XL_CONTENT
TABLES
BINARY_TAB = LIT_BINARY_CONTENT.
REFRESH LIT_TEXT .
CLEAR L_RESULT_CONTENT .
CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
EXPORTING
TEXT = L_RESULT_CONTENT
TABLES
FTEXT_TAB = LIT_TEXT.
TRY.
L_SUBJECT = 'VENDOR COMPANY CODE DETAILS'.
CLEAR SEND_REQUEST .
SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
CLEAR DOCUMENT .
DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = 'HTM'
I_TEXT = LIT_TEXT
I_LENGTH = L_CONLENGTHS
I_SUBJECT = L_SUBJECT ).
L_ATTA_SUB = 'VENDOR COMPANY CODE DETAILS'.
CALL METHOD DOCUMENT->ADD_ATTACHMENT
EXPORTING
I_ATTACHMENT_TYPE = 'XLS'
I_ATTACHMENT_SUBJECT = L_ATTA_SUB
I_ATT_CONTENT_HEX = LIT_BINARY_CONTENT.
* Add document to send request
CALL METHOD SEND_REQUEST->SET_DOCUMENT( DOCUMENT ).
CLEAR SENDER .
SENDER = CL_SAPUSER_BCS=>CREATE( SY-UNAME ).
CALL METHOD SEND_REQUEST->SET_SENDER
EXPORTING
I_SENDER = SENDER.
LOOP AT S_EMAIL .
PERFORM VALIDATE_ENTERED_EMAIL.
CLEAR RECIPIENT .
RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(
S_EMAIL-LOW ).
* add recipient with its respective attributes to send request
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT
I_EXPRESS = 'X'.
ENDLOOP .
CALL METHOD SEND_REQUEST->SET_STATUS_ATTRIBUTES
EXPORTING
I_REQUESTED_STATUS = 'E'
I_STATUS_MAIL = 'E'.
CALL METHOD SEND_REQUEST->SET_SEND_IMMEDIATELY( 'X' ).
* ---------- send document ---------------------------------------
CALL METHOD SEND_REQUEST->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = L_SENT_TO_ALL ).
COMMIT WORK.
CATCH CX_BCS INTO BCS_EXCEPTION.
RETURN.
ENDTRY.
ENDFORM. " SEND_MAIL_TO_CUSTOMER
Hope this'll helpful to you.
Regards,
BALAJI.
2012 Sep 28 7:37 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |