본문 바로가기
ERP-SAP/ABAP

<ABAP> Itab 을 excel 첨부후 메일 전송(internal table to excel attached and send mail)

by 행복한워니의 기록 2024. 3. 6.
728x90
반응형


*미리말해두는 부분*
text 하드코딩은 하지 않는게 좋다..
물론 난 코드에 해뒀는데 사실 text심볼에 넣는게 맞다.
텍스트 하드코딩 하면 하수란 소리를 듣는다..
그래서 하수코딩을 하였다... ㅎ
그러니 이걸 정보로 만드는 초중고급자분들은
나와같이 짜지말고 text symbol을 쓰자..
(사실 업그레이드 계획이있어서  ...)


*요약 포인트*

사용한 주요 펑션(key function..)
1. so_folder_root_id_get
2. so_new_document_att_sendapi1 (mail용)
3. so_document_insert_api1 (저장용)
-----'아래는 alv 조회 후 다운할때 씀
4. so_document_read_api1 (읽어오는용)
5. so_object_download (pc저장)

사실 전표 관련해서는 기존 프로그램에 gos attach들을 많이 쓰기에 쉬울줄 알았으나 이건 그냥 자료 취합 후 파일저장 / 읽어오기가 전부이므로
gos를 붙일 필요가 없었다..

이 프로그램은 여기저기서 정보를 끌어 itab 만든후
이메일 쏘면서 첨부로 붙여주는게 목적이므로....
그냥 itab to excel and attach 만 하면된다.
그러나 혹시 몰라 저장도 해두는것이다 .
(sost 전송메일에 가면 사실 excel도 재 다운가능하다만...)

1. 우선 내가 보낼 정보는 ITAB에 담았다.
2-1 이메일 수신자 셋팅하기
get email addr부분안에서 만들건데
결국 이메일 주소 넣기가 끝이다.. 2번째 사진 참고

receiver_email type wt_email.
즉 receiver_email = 'asaa@bbb.com'.
같은게 들어감 된다.


2-2 메일 본문 생성
form email contents 부분이다.

이게 본문으로 들어간다....



2-3 itab으로 email 첨부할 excel data 를 만들어준다.


3. 메일 전송할 패킹리스트를 만들어준다.
이 부분은 메일에 제목은 뭔지 / 본문은 뭔지 / 첨부는 뭔지 붙여넣는 부분이다...

위에 이어서...

4. 메일을 전송한다.
(commit work 에 체크해라. 따로 펑션아래 할 필요없다.  또한 submit rsconn01 로 바로 메일전송 레포트를 실행한다.. sost에서 바로 보임)


5. 위 이메일에서 만든 정보를 이용하여 sap 에 저장한다. (이 부분은 파일서버에 해도되나 open dataset 하며 만들어 주는게 더 불필요한 생각이 들었다.  코드도 더 길어지고.. 어짜피 메일첨부로 만든거..)

여기서 point는
결국 doc_id만 잘 저장해 두면 추후에 잘 빼둘 수 있으므로 log db를 만들어 저장해 두었다...

(전송일시 파일라인수 doc id  메일전송 리턴값 등등 대충 log 만듬...)

메일전송에 파일 저장까지 끝났다...


======doc id  excel pc download
이제부터는 저장한 파일 불러와서 내 pc로 다운도 되게 만들꺼다...

display 화면은 귀찮아서 salv로 만들고 double click event 넣어 해당 필드 더블클릭하면 다운로드 하게 만들었다.

이 부분은 alv 부분들이니 스킵하고 조회 및 다운 코드만 넣겠다.


이렇게 하면 pc로 직접 디렉토리 지정해서 다운로드 할 수 있다.

아래 들어가서 한번씩 보면 위 컨셉이 이해가 간드.
코딩 카피는 아래에서 하시라....
우린 카피도 안되고 다 직쩝 짜야해서... ㅎㅎ


코딩힌트 외국사이트
https://abapexample.com/how-to-send-email-with-excel-file-attachment-from-itab-in-abap/


아래는 gos 힌트
https://sapintegrationhub.com/abap/attach-any-file-sap-business-document-gos/


첨부 힌트코드
https://community.sap.com/t5/application-development-blog-posts/read-gos-attachment-from-business-object-and-convert-to-xstring-and/ba-p/13509494

728x90
반응형