300x250
# 시작하기 전
# 나머지 로직들은..
2023.04.14 - [.SAP/..ABAP] - SAP E-Mail(이메일) 발송
# 이번에 알아볼 것은 기본 이메일 발송에 첨부파일이 들어가는 로직을 만드는 것이다.
# 첨부파일 들어갈 곳은 다음과 같다.
# 첨부파일 설정
# 첨부파일에 필요한 정보들은
1. 파일 명
2. 파일 용량
3. 파일 데이터(16진수)
이것이 없으면 첨부파일이 에러 발생할 것이다.
# 첨부파일 엑셀( EXCEL )
*--------------------------------------------------------------------*
* EXCEL 첨부파일 넣기
*--------------------------------------------------------------------*
" 파일 명 "
ATTACHMENT_SUBJECT = '감자_템플릿.xlsx'.
CONCATENATE '&SO_FILENAME=' ATTACHMENT_SUBJECT INTO WA_ATTACHMENT_HEADER.
APPEND WA_ATTACHMENT_HEADER TO T_ATTACHMENT_HEADER.
CLEAR:
WA_ATTACHMENT_HEADER.
" 파일 용량 "
SOOD_BYTECOUNT = ' '.
" 파일 데이터( 16진수 ) "
DATA:
LT_ROWREC TYPE SOLIX_TAB.
LT_ROWREC = '3571892943827~~'.
" EXCEL 첨부파일 설정 "
CL_DOCUMENT->ADD_ATTACHMENT(
I_ATTACHMENT_TYPE = 'XLS'
I_ATTACHMENT_SUBJECT = ATTACHMENT_SUBJECT
I_ATTACHMENT_SIZE = SOOD_BYTECOUNT
I_ATT_CONTENT_HEX = LT_ROWREC
I_ATTACHMENT_HEADER = T_ATTACHMENT_HEADER ).
# 엑셀 첨부파일 같은 경우에는 다음과 같이 넣으면 끝이다.
# 첨부파일( PDF )
*--------------------------------------------------------------------*
* PDF 첨부파일 넣기
*--------------------------------------------------------------------*
" 파일 명 "
ATTACHMENT_SUBJECT = '감자_템플릿.PDF'.
CONCATENATE '&SO_FILENAME=' ATTACHMENT_SUBJECT INTO WA_ATTACHMENT_HEADER.
APPEND WA_ATTACHMENT_HEADER TO T_ATTACHMENT_HEADER.
CLEAR:
WA_ATTACHMENT_HEADER.
" 파일 용량 "
SOOD_BYTECOUNT = ' '.
" 파일 데이터( 16진수 ) "
DATA:
LT_ROWREC TYPE SOLIX_TAB.
LT_ROWREC = '3571892943827~~'.
" EXCEL 첨부파일 설정 "
CL_DOCUMENT->ADD_ATTACHMENT(
I_ATTACHMENT_TYPE = 'PDF'
I_ATTACHMENT_SUBJECT = ATTACHMENT_SUBJECT
I_ATTACHMENT_SIZE = SOOD_BYTECOUNT
I_ATT_CONTENT_HEX = LT_ROWREC
I_ATTACHMENT_HEADER = T_ATTACHMENT_HEADER ).
# PDF는 다음과 같이 파일 명과, 타입을 바꾸어주면 끝이다.
# 전체적인 로직
DATA: BCS_EXCEPTION TYPE REF TO CX_BCS,
ERRORTEXT TYPE STRING,
CL_SEND_REQUEST TYPE REF TO CL_BCS,
CL_DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
CL_RECIPIENT TYPE REF TO IF_RECIPIENT_BCS,
T_ATTACHMENT_HEADER TYPE SOLI_TAB,
WA_ATTACHMENT_HEADER LIKE LINE OF T_ATTACHMENT_HEADER,
ATTACHMENT_SUBJECT TYPE SOOD-OBJDES,
SOOD_BYTECOUNT TYPE SOOD-OBJLEN,
MAIL_TITLE TYPE SO_OBJ_DES,
T_MAILTEXT TYPE SOLI_TAB,
WA_MAILTEXT LIKE LINE OF T_MAILTEXT,
SEND_TO TYPE ADR6-SMTP_ADDR,
SENT TYPE ABAP_BOOL.
*--------------------------------------------------------------------*
* 메일 타이틀
*--------------------------------------------------------------------*
MAIL_TITLE = '메일 타이틀 테스트 '.
*--------------------------------------------------------------------*
* 메일 글
*--------------------------------------------------------------------*
WA_MAILTEXT = '안녕하세요. 감자입니다.'.
APPEND WA_MAILTEXT TO T_MAILTEXT.
CLEAR WA_MAILTEXT.
WA_MAILTEXT = '감사합니다.'.
APPEND WA_MAILTEXT TO T_MAILTEXT.
CLEAR WA_MAILTEXT.
TRY.
CL_SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
CL_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT( I_TYPE = 'RAW'
I_TEXT = T_MAILTEXT " 메일 글 넣기 "
I_SUBJECT = MAIL_TITLE ). " 메일 타이틀 넣기 "
CL_SEND_REQUEST->SET_DOCUMENT( CL_DOCUMENT ).
*--------------------------------------------------------------------*
* EXCEL 첨부파일 넣기
*--------------------------------------------------------------------*
" 파일 명 "
ATTACHMENT_SUBJECT = '감자_템플릿.xlsx'.
CONCATENATE '&SO_FILENAME=' ATTACHMENT_SUBJECT INTO WA_ATTACHMENT_HEADER.
APPEND WA_ATTACHMENT_HEADER TO T_ATTACHMENT_HEADER.
CLEAR:
WA_ATTACHMENT_HEADER.
" 파일 용량 "
SOOD_BYTECOUNT = ' '.
" 파일 데이터( 16진수 ) "
DATA:
LT_ROWREC TYPE SOLIX_TAB.
LT_ROWREC = '3571892943827~~'.
" EXCEL 첨부파일 설정 "
CL_DOCUMENT->ADD_ATTACHMENT(
I_ATTACHMENT_TYPE = 'XLS'
I_ATTACHMENT_SUBJECT = ATTACHMENT_SUBJECT
I_ATTACHMENT_SIZE = SOOD_BYTECOUNT
I_ATT_CONTENT_HEX = LT_ROWREC
I_ATTACHMENT_HEADER = T_ATTACHMENT_HEADER ).
*--------------------------------------------------------------------*
* PDF 첨부파일 넣기
*--------------------------------------------------------------------*
" 파일 명 "
ATTACHMENT_SUBJECT = '감자_템플릿.PDF'.
CONCATENATE '&SO_FILENAME=' ATTACHMENT_SUBJECT INTO WA_ATTACHMENT_HEADER.
APPEND WA_ATTACHMENT_HEADER TO T_ATTACHMENT_HEADER.
CLEAR:
WA_ATTACHMENT_HEADER.
" 파일 용량 "
SOOD_BYTECOUNT = ' '.
" 파일 데이터( 16진수 ) "
DATA:
LT_ROWREC TYPE SOLIX_TAB.
LT_ROWREC = '3571892943827~~'.
" EXCEL 첨부파일 설정 "
CL_DOCUMENT->ADD_ATTACHMENT(
I_ATTACHMENT_TYPE = 'PDF'
I_ATTACHMENT_SUBJECT = ATTACHMENT_SUBJECT
I_ATTACHMENT_SIZE = SOOD_BYTECOUNT
I_ATT_CONTENT_HEX = LT_ROWREC
I_ATTACHMENT_HEADER = T_ATTACHMENT_HEADER ).
*--------------------------------------------------------------------*
* 수신자 TO 넣기
*--------------------------------------------------------------------*
SEND_TO = '감자@naver.com'.
CL_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( SEND_TO ).
CL_SEND_REQUEST->ADD_RECIPIENT( CL_RECIPIENT ).
SENT = CL_SEND_REQUEST->SEND( I_WITH_ERROR_SCREEN = 'X' ).
IF SENT = ABAP_TRUE.
COMMIT WORK.
" 성공메시지 "
* MESSAGE S001 WITH send_to '로 발송 되었습니다.' .
ELSE.
ROLLBACK WORK.
" 에러메시지 "
ENDIF.
CATCH CX_BCS INTO BCS_EXCEPTION.
ERRORTEXT = BCS_EXCEPTION->IF_MESSAGE~GET_TEXT( ).
MESSAGE ERRORTEXT TYPE 'I'.
ENDTRY.
도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!
728x90
'.SAP > ..ABAP' 카테고리의 다른 글
SAP VALUE # 정리 ( Append New Syntax ) (4) | 2024.11.13 |
---|---|
SAP Function Module 에서 Commit Work 하기 (0) | 2024.11.11 |
SAP Function Module - 2 정리 (0) | 2024.11.10 |
SAP 타임스태프( 엑셀 -> SAP ) 변경 (1) | 2024.11.09 |
SAP Package CTS 따기 (0) | 2024.11.08 |