안녕하세요
메일 문의나 자료실에 찾아봤는데
더 자세한 설명이 필요해서 이렇게 문의하게 되었습니다.
모듈풀 프로그램에서 실행이 잘된 경우 그 화면을 참조 파일로 보낼 수 없는지 궁금해서 문의 드리게 되었습니다.
스탠다드 기능 중에 ALV GIRD, LIST인 경우 그 데이타를 참조파일로 저장을 해서 보내는 기능이 있던데..
그것을 이용하여 만들었더니.. ALV로 만든 데이터가 아니라서 그런지 안되더군요..
혹시 그 기능이 가능한지 알 수 없나요??
댓글 4
-
비안개
2008.04.11 02:23
-
activeman
2008.04.11 08:26
참고하세요..
내부 메일로 보낼때는 상관없지만 외부 인터넷 메일 혹은 팩스로 보낼때는
BC SCOT에서 셋팅해줘야 한다.
관련 문서는 다른 게시물을 참고.
* MAIL 출력 변수 시작***********************************************
DATA Z_EMAIL TYPE TXT50.
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE,
OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE,
DOC_CHNG LIKE SODOCCHGI1,
RIGHE_ATTACHMENT TYPE I,
RIGHE_TESTO TYPE I.
DATA : TRANSFER_BIN TYPE SX_BOOLEAN,
CONTENT_TXT TYPE SOLI_TAB,
CONTENT_BIN TYPE SOLIX_TAB,
OBJHEAD TYPE SOLI_TAB,
P_FM_NAME TYPE RS38L_FNAM,
P_E_DEVTYPE TYPE RSPOPTYPE,
P_OUTPUT_OPTIONS TYPE SSFCOMPOP,
P_JOB_OUTPUT_INFO TYPE SSFCRESCL,
P_LANGUAGE TYPE SFLANGU,
P_CONTROL_PARAMETERS TYPE SSFCTRLOP ,
P_BIN_FILESIZE TYPE I,
P_BIN_FILE TYPE XSTRING,
WA_OTF LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
LEN_IN LIKE SOOD-OBJLEN,
P_OTF LIKE ITCOO OCCURS 0 WITH HEADER LINE,
P_LINES LIKE TLINE OCCURS 0 WITH HEADER LINE.
*MAIL 출력변수 끝*****************************************************
CALL FUNCTION l_fmname
EXPORTING
control_parameters = p_control_parameters
output_options = p_output_options
user_settings = 'X'
zebeln = gt_display-ebeln
zlifnr = gt_display-lifnr
ztelf1 = gt_display-telf1
ztelfx = gt_display-telfx
zekgrp = gt_display-ekgrp
zverkf = zverkf
zname1 = gt_display-name1
zstcd2 = gt_display-stcd2
zinco1 = gt_display-inco1
zinco2 = gt_display-inco2
zzterm = gt_display-zterm
ztext1 = gt_display-text1
zhtext1 = gt_display-htext1
zpacking = gt_display-packing
zship = gt_display-ship
zoffer = gt_display-offer
zcnt = l_cnt
znetwr_sum = l_netwr_sum
zwaers = gt_display-waers
IMPORTING
job_output_info = p_job_output_info
TABLES
it_01 = it_ekpo.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR: p_otf[], p_bin_filesize, p_bin_file,
p_lines, p_lines[], content_txt, content_txt[],
content_bin[], content_txt[], len_in, transfer_bin.
p_otf[] = p_job_output_info-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = p_bin_filesize
bin_file = p_bin_file
TABLES
otf = p_otf
lines = p_lines.
LOOP AT p_otf.
CONCATENATE p_otf-tdprintcom p_otf-tdprintpar INTO wa_otf.
APPEND wa_otf TO content_txt.
ENDLOOP.
CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'
EXPORTING
format_src = 'OTF'
format_dst = 'PDF'
devtype = 'PRINTER'
CHANGING
transfer_bin = transfer_bin
content_txt = content_txt
content_bin = content_bin
objhead = objhead
len = len_in
EXCEPTIONS
err_conv_failed = 1
OTHERS = 2.
* 다운로드 기능 시작 ************************************
* DATA: a TYPE i,
* l_vend type string.
* CONCATENATE 'c:TEMP' gt_display-lifnr '.PDF' INTO l_vend.
* a = len_in.
* CALL FUNCTION 'GUI_DOWNLOAD'
* EXPORTING
* bin_filesize = a
* filename = l_vend
* filetype = 'BIN'
* TABLES
* data_tab = content_bin.
* 다운로드 기능 끝 ************************************
*
* 메일 세팅 시작
DESCRIBE TABLE content_bin LINES righe_attachment.
objtxt = '안녕하세요?'.APPEND objtxt.
objtxt = '발주서 파일 첨부합니다.'.APPEND objtxt.
objtxt = '수고하십시오!.'.APPEND objtxt.
DESCRIBE TABLE objtxt LINES righe_testo.
doc_chng-obj_name = 'URGENT'.
doc_chng-expiry_dat = sy-datum + 10.
doc_chng-obj_descr = 'PDF 테스트메일입니당.'.
doc_chng-sensitivty = 'O'.
doc_chng-doc_size = righe_testo * 255.
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = righe_testo.
objpack-doc_type = 'RAW'.
APPEND objpack.
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = righe_attachment.
objpack-doc_type = 'PDF'.
objpack-obj_name = 'TEST'.
objpack-obj_descr = '발주서'. "파일이름
objpack-doc_size = righe_attachment * 255.
APPEND objpack.
CLEAR RECLIST.
reclist-copy = ' '.
reclist-receiver = gt_display-SMTP. "메일 주소
reclist-express = 'X'.
reclist-rec_type = 'U'.
reclist-notif_del = 'X'. " request delivery notification
reclist-notif_ndel = 'X'. " request not delivered notification
APPEND reclist.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
put_in_outbox = 'X'
TABLES
packing_list = objpack
object_header = objhead
contents_hex = content_bin "PDF데이타
contents_txt = objtxt
receivers = reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8. -
비안개
2008.04.11 18:33
감사합니다. 보여주신 소스로 메일기능 추가한번 해봐야겠네요
-
비안개
2008.04.11 18:40
답변 주신 점 감사드립니다.
주신 소스 중에 L_FMNAME Function함수가 없던데??
sap 버전 몇일 때 있는건가요?
추가로 SO_NEW_DOCUMENT_SEND_API1 모듈 사용법과
스탠다드에서 사용되는 SAVE_LIST로 현재 보여지는 리스트를 참조파일로 만드는 방법처럼...
모듈풀[스크린화면에서 그리는]프로그램을 참조파일로 만드는 방법이나 아니면 TEST 프로그램을 아시면 알려주시면 감사하겠습니다.