Smartform导出为PDF并且作为附加资料进行邮件发送_第1页
Smartform导出为PDF并且作为附加资料进行邮件发送_第2页
Smartform导出为PDF并且作为附加资料进行邮件发送_第3页
Smartform导出为PDF并且作为附加资料进行邮件发送_第4页
Smartform导出为PDF并且作为附加资料进行邮件发送_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Smartform导出为 PDF 并且作为附件进行邮件发送1 、首先获取 Smartform 生成的功能函数,CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGformname= c_formnameIMPORTINGfm_name= v_fm_nameEXCEPTIONSno_formno_function_module = 2OTHERS= 3.2 、调用该函数并且在参数中设定获取 OTF 数据st_control_parameters-no_dialog = 'X'.st_control_parameters

2、-getotf = 'X'.CALL FUNCTION v_fm_nameEXPORTINGcontrol_parameters= st_control_parametersoutput_options= st_output_optionserr_max_linewidth= 1IMPORTINGdocument_output_info = st_document_output_infojob_output_options= st_job_output_optionsTABLESpt_data= gt_dataEXCEPTIONSformatting_errorinternal

3、_errorsend_erroruser_canceledOTHERS= 5.3 、将 OTF 数据转换成PDF 文件CALL FUNCTION 'CONVERT_OTF'EXPORTINGformat= 'PDF'IMPORTINGbin_filesize= v_bin_filesizebin_file= g_binfileTABLESotf= st_job_output_info-otfdatadoctab_archive= it_docslines= it_linesEXCEPTIONSerr_format= 2err_conv_not_possible

4、= 3 err_bad_otf= 5.OTHERSIF g_binfile IS NOT INITIAL.CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'EXPORTINGbuffer= g_binfileIMPORTINGoutput_length = v_bin_filesizeTABLESbinary_tab= gt_record.ENDIF.4、处理邮件主题,附件,收件人,发件人(默认会是登陆用户配置的邮箱)APPEND LINES OF GT_record TO i_objbin.*Mail Body i_objtxt-line = 

5、9; 邮件正文 '.APPEND i_objtxt.DESCRIBE TABLE i_objtxt LINES v_lines_txt.wa_doc-obj_langu = SY-LANGU.wa_doc-obj_name = 'smartform'.wa_doc-expiry_dat = sy-datum + 10.wa_doc-obj_descr = ' 邮件标题题题题题题题题题 '.wa_doc-sensitivty = 'F'.wa_doc-doc_size = v_lines_txt * 255 + v_bin_filesize

6、.* Main TextCLEAR i_objpack-transf_bin.i_objpack-head_start = 1.i_objpack-head_num = 0.i_objpack-body_start = 1.i_objpack-body_num = v_lines_txt.i_objpack-doc_type = 'RAW'.APPEND i_objpack.* Attachment (pdf-Attachment)CLEAR v_lines_bin.i_objpack-transf_bin = 'X'.i_objpack-head_start

7、= 1.i_objpack-head_num = 1.i_objpack-body_start = 1.i_objpack-doc_size = v_bin_filesize .i_objpack-body_num = v_lines_bin.DESCRIBE TABLE i_objbin LINES v_lines_bin.i_objpack-doc_type = 'PDF'.i_objpack-obj_name = 'smart'.i_objpack-obj_descr = 'PDF'.”这里是附件名APPEND i_objpack.CLEA

8、R i_reclist.i_reclist-rec_type = 'U'.i_reclist-receiver = 'xxx'.收件人地址APPEND i_reclist.5、调用发送邮件的函数CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'EXPORTINGdocument_data= wa_docput_in_outboxcommit_work= 'X'TABLESpacking_list= i_objpackreceivers= i_reclistobject_header= wa_

9、objhead= i_objbin= i_objtxtcontents_bincontents_txtEXCEPTIONStoo_many_receiversdocument_not_sentdocument_type_not_existoperation_no_authorization = 4parameter_errorx_errorenqueue_error= 8.OTHERS 邮件发送后可在 sost 中查看到、 6 、如果需要保存 PDF 到本地GET THE FILE NAME TO STORE*CONCATENATE 'smrt' '.pdf'

10、INTO v_name.*CREATE OBJECT v_guiobj.*CALL METHOD v_guiobj->file_save_dialogEXPORTINGdefault_extension = 'pdf'default_file_name = v_namefile_filter= v_filterCHANGINGfilename= v_namepath= v_pathfullpath= v_fullpathuser_action= v_uact.*IF v_uact = v_guiobj->action_cancel.EXIT.*ENDIF.*DOWN

11、LOAD AS FILE*MOVE v_fullpath TO v_filename.*CALL FUNCTION 'GUI_DOWNLOAD'EXPORTINGbin_filesize= v_bin_filesizefilename= v_filenamefiletype= 'BIN'TABLESdata_tab= it_linesEXCEPTIONSfile_write_errorno_batchgui_refuse_filetransfer = 3invalid_typeno_authorityunknown_errorheader_not_allowed

12、separator_not_allowed= 8filesize_not_allowedheader_too_long= 10dp_error_create= 11dp_error_send= 12dp_error_write= 13unknown_dp_error= 14access_denied= 15dp_out_of_memory= 16disk_full= 17dp_timeout= 18file_not_found= 19dataprovider_exception= 20control_flush_error= 21OTHERS= 22.完整代码请见下面:*&*&

13、 Report ZTEST_MAIL3*&*& *&*&*&-REPORT ztest_mail3TYPES:BEGIN OF ty_data.TYPES:matkl TYPE mara-matkl,wgbez TYPE t023t-wgbez,matnr TYPE mara-matnr,maktx TYPE makt-maktx,ebeln TYPE ekko-ebeln,ebelp TYPE ekpo-ebelp,ekgrp TYPE ekko-ekgrp,bukrs TYPE ekko-bukrs,werks TYPE ekpo-werks,nor

14、mt TYPE mara-normt,groes TYPE mara-groes,kdatb TYPE ekko-kdatb,kdate TYPE ekko-kdate,jiaohuo(30),waibu(30),*增加物料基本单位,订单单位DATA:gt_data TYPE TABLE OF ty_data WITH HEADER LINE.meins(3),bstme(3),*BO C2014080601增加车间和生产线labor_t(30),spart_t(20),*EO C2014080601增加车间和生产线*BO C2014082101增加物料长文本 ,规格型号,供应商描述,采购订单

15、文beizhu(100),zeinr(22),lifnr_d(35),caigou(100),*EO C2014082101增加车间和生产线END OF ty_data.DATA:g_binfile TYPE xstring,gt_record TYPE TABLE OF solisti1 WITH HEADER LINE.* Internal table declarationDATA: it_otfTYPE STANDARD TABLE OF itcoo,it_docsTYPE STANDARD TABLE OF docs,it_linesTYPE STANDARD TABLE OF tl

16、ine WITH HEADER LINE.* Declaration of local variables.DATA:v_fullpathTYPE string,v_filterTYPE string,v_uactTYPE i,st_job_output_infoTYPE ssfcrescl,st_document_output_infoTYPE ssfcrespd,st_job_output_optionsTYPE ssfcresop,st_output_optionsTYPE ssfcompop,st_control_parametersTYPE ssfctrlop,v_len_inv_l

17、anguageTYPE sflangu VALUE 'E',v_e_devtypeTYPE rspoptype,v_bin_filesizeTYPE i,v_nameTYPE string,v_pathTYPE string,TYPE so_obj_len,v_filenameTYPE string,v_fm_nameTYPE rs38l_fnam.CONSTANTS c_formnameTYPE tdsfname VALUE'ZPVNP21_CN01'.DATA wa_buffer TYPE string. "To convert from 132

18、to 255DATA: i_record TYPE TABLE OF solisti1 WITH HEADER LINE,wa_doc TYPE sodocchgi1, i_reclist TYPE TABLE OF somlreci1 WITH HEADER LINE,* Objects to send mail.i_objpack TYPE TABLE OF sopcklsti1 WITH HEADER LINE,i_objtxt TYPE TABLE OF solisti1 WITH HEADER LINE,i_objbin TYPE TABLE OF solisti1 WITH HEA

19、DER LINE,* Work Area declarationswa_objhead TYPE soli_tab,* Variables declarationsv_lines_bin TYPE i.CALL FUNCTION 'SSF_GET_DEVICE_TYPE'EXPORTINGi_language= v_languagei_application = 'SAPDEFAULT'IMPORTINGe_devtype= v_e_devtype.st_output_options-tdprinter = v_e_devtype.st_control_para

20、meters-no_dialog = 'X'.st_control_parameters-getotf = 'X'.GET SMARTFORM FUNCTION MODULE NAMECALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGformname= c_formnameIMPORTINGfm_name= v_fm_nameEXCEPTIONSno_formno_function_module = 2OTHERS= 3.CALL SMARTFORMCALL FUNCTION v_fm_nameEX

21、PORTINGcontrol_parameters= st_control_parametersoutput_options= st_output_optionsIMPORTINGdocument_output_info = st_document_output_infojob_output_info= st_job_output_infojob_output_options= st_job_output_optionsTABLESpt_data= gt_dataEXCEPTIONSformatting_errorinternal_errorsend_erroruser_canceledOTH

22、ERS= 5.CONVERT TO OTF TO PDFCALL FUNCTION 'CONVERT_OTF'EXPORTINGformat= 'PDF'IMPORTINGbin_file= g_binfilebin_filesize= v_bin_filesizeTABLESotf= st_job_output_info-otfdatadoctab_archive= it_docslines= it_linesEXCEPTIONSerr_max_linewidth err_format err_conv_not_possible = 3 err_bad_otf

23、= 5.OTHERSIF g_binfile IS NOT INITIAL.CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'EXPORTINGbuffer= g_binfileIMPORTINGoutput_length = v_bin_filesizeTABLESbinary_tab= gt_record.ENDIF.APPEND LINES OF GT_record TO i_objbin.*Mail Body i_objtxt-line = ' 邮件正文 '.APPEND i_objtxt.DESCRIBE TABLE i_ob

24、jtxt LINES v_lines_txt.wa_doc-obj_langu = SY-LANGU.wa_doc-obj_name = 'smartform'.wa_doc-expiry_dat = sy-datum + 10.wa_doc-obj_descr = ' 邮件标题 '.wa_doc-sensitivty = 'F'.wa_doc-doc_size = v_lines_txt Main TextCLEAR i_objpack-transf_bin.i_objpack-head_start = 1.i_objpack-head_num

25、 = 0.i_objpack-body_start = 1.i_objpack-body_num = v_lines_txt.i_objpack-doc_type = 'RAW'.APPEND i_objpack. 255 + v_bin_filesize.* Attachment (pdf-Attachment)CLEAR v_lines_bin.i_objpack-transf_bin = 'X'.i_objpack-head_start = 1.i_objpack-head_num = 1.i_objpack-body_start = 1.DESCRIBE

26、 TABLE i_objbin LINES v_lines_bin.i_objpack-doc_size = v_bin_filesize .i_objpack-body_num = v_lines_bin.i_objpack-doc_type = 'PDF'.i_objpack-obj_name = 'smart'.i_objpack-obj_descr = 'PDF'.APPEND i_objpack.CLEAR i_reclist.i_reclist-rec_type = 'U'.i_reclist-to_answer =

27、'X'.i_reclist-notif_read = 'X'.i_reclist-notif_del = 'X'.i_reclist-notif_ndel = 'X'.i_reclist-receiver = 'xxx'.APPEND i_reclist.CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'EXPORTINGdocument_data= wa_docput_in_outboxcommit_work= 'X'TABLESpackin

28、g_list= i_objpackobject_header= wa_objheadcontents_bin= i_objbincontents_txt= i_objtxtreceivers= i_reclistEXCEPTIONStoo_many_receiversdocument_not_sentdocument_type_not_existoperation_no_authorization = 4parameter_errorx_errorenqueue_errorOTHERS= 8.IF sy-subrc = 0.*start SAPconnect process immediatelySUBMIT rsconn01 WITH mode EQ 'INT' AND RETURN.COMMIT WORK.ENDIF.GET THE FILE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论