SEND SMARTFORMS PDF MAIL IN SAP ABAP / ABAP ILE SMARTFORMS PDF MAIL GONDERME (OTF)

   data:

    i_otf     type itcoo occurs with header line,
    i_tline   type table of tline with header line,
    i_record  like solisti1 occurs with header line,
    i_objpack like sopcklsti1 occurs with header line,
    i_objtxt  like solisti1 occurs with header line,
    i_objbin  like solisti1  occurs with header line,
    i_reclist like somlreci1  occurs with header line,
    w_objhead  type soli_tab,
    w_doc_chng type sodocchgi1,
    w_buffer   type string,
    v_lines_txt type i,
    v_lines_bin type i.
constants c_formname      type tdsfname value 'ZAU_SMART_EDU'.

data:
  st_job_output_info      type ssfcrescl,
  st_document_output_info type ssfcrespd,
  st_job_output_options   type ssfcresop,
  st_output_options       type ssfcompop,
  st_control_parameters   type ssfctrlop,
  v_len_in                type so_obj_len,
  v_language              type sflangu value 'E',
  v_e_devtype             type rspoptype,
  v_bin_filesize          type i,
  v_name                  type string,
  v_path                  type string,
  v_fullpath              type string,
  v_filter                type string,
  v_uact                  type i,
  v_guiobj                type ref to cl_gui_frontend_services,
  v_filename              type string,
  v_fm_name               type rs38l_fnam.



*Device settings 
call function 'SSF_GET_DEVICE_TYPE'
    exporting
      i_language    v_language
      i_application 'SAPDEFAULT'
    importing
      e_devtype     v_e_devtype.
  st_output_options-tdprinter v_e_devtype.
  st_control_parameters-no_dialog 'X'.
  st_control_parameters-getotf 'X'.


*convert smartform name to function 
  call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
      formname           c_formname
    importing
      fm_name            v_fm_name
    exceptions
      no_form            1
      no_function_module 2
      others             3.



*call smartform with function
  call function v_fm_name
    exporting
      control_parameters   st_control_parameters
      output_options       st_output_options
*     USER_SETTINGS        = 'X'
    importing
      document_output_info st_document_output_info
      job_output_info      st_job_output_info
      job_output_options   st_job_output_options
    tables
      gt_data              gt_data[]
    exceptions
      formatting_error     1
      internal_error       2
      send_error           3
      user_canceled        4
      others               5.
  if sy-subrc <> 0.
* Implement suitable error handling here
  endif.


  i_otf[] st_job_output_info-otfdata[].


  call function 'CONVERT_OTF'
    exporting
      format                'PDF'
      max_linewidth         132
    importing
      bin_filesize          v_len_in
    tables
      otf                   i_otf
      lines                 i_tline
    exceptions
      err_max_linewidth     1
      err_format            2
      err_conv_not_possible 3
      err_bad_otf           4.
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.



  loop at i_tline.
    translate i_tline using '~'.
    concatenate w_buffer i_tline into w_buffer.
  endloop.

  translate w_buffer using '~'.


  do.
    i_record w_buffer.
    append i_record.
    shift w_buffer left by 255 places.
    if w_buffer is initial.
      exit.
    endif.
  enddo.

  refresh :
    i_reclist,
    i_objtxt,
    i_objbin,
    i_objpack.

  clear w_objhead.
  i_objbin[] i_record[].
  describe table i_objbin lines v_lines_bin.


  i_objtxt 'Smartforms with PDF attachment.'.
  append i_objtxt.
  i_objtxt 'Regards,'.
  append i_objtxt.
  i_objtxt 'Alara'.
  append i_objtxt.

  describe table i_objtxt lines v_lines_txt.


  w_doc_chng-obj_name 'Smartform'.
  w_doc_chng-expiry_dat sy-datum + 10 .
  w_doc_chng-obj_descr  'Smartform PDF mail'.
  w_doc_chng-sensitivty 'F'.
  w_doc_chng-doc_size v_lines_txt * 255.

  clear 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.

  i_objpack-transf_bin 'X'.
  i_objpack-head_start 1.
  i_objpack-head_num 1.
  i_objpack-body_start 1.
  i_objpack-body_num v_lines_bin.
  i_objpack-doc_type  'PDF'.
  i_objpack-obj_name 'Smartform'.
  concatenate 'smartform' 'pdf'
  into i_objpack-obj_descr.
  i_objpack-doc_size v_lines_bin * 255.
  append i_objpack.

  clear i_reclist.


  i_reclist-receiver 'alaraumdu@text.com.'.
  i_reclist-express  'X'.
  i_reclist-rec_type  'U'.
  append i_reclist.


  call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    exporting
      document_data              w_doc_chng
      put_in_outbox              'X'
      commit_work                'X'
    tables
      packing_list               i_objpack
      contents_bin               i_objbin
      object_header              w_objhead
      contents_txt               i_objtxt
      receivers                  i_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.
  if sy-subrc <> 0.
    message 'Mail sent failed' type 'S' display like 'E'.
  else.
    message 'Mail sent successfully' type 'S'.
  endif.

endform.




After all, you can check the mail from SOST t-code. 
One example;
















































ALARA UMDU - SAP ABAP DEVELOPER

Yorumlar