Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8950

Re: Send email through SO_NEW_DOCUMENT_ATT_SEND_API1 with PDF attachement of smartforms.

$
0
0

Hi Nishant,

               Please refer my below code last week only i have implemented this logic.

 

 

call function 'CONVERT_OTF'
     exporting
       format                = 'PDF'
       max_linewidth         = 132
     importing
       bin_filesize          = w_bin_filesize
     tables
       otf                   = t_otf
       lines                 = t_pdf_tab
     exceptions
       err_max_linewidth     = 1
       err_format            = 2
       err_conv_not_possible = 3
       err_bad_otf           = 4.

pdf_output[] = t_pdf_tab[].



loop at pdf_output.
     translate pdf_output using ' ~'.
     concatenate gd_buffer pdf_output into gd_buffer.
   endloop.
   translate gd_buffer using '~ '.
   do.

     it_mess_att = gd_buffer.
     append it_mess_att.
     shift gd_buffer left by 255 places.
     if gd_buffer is initial.
       exit.
     endif.

   enddo.





 

   ld_email   = p_email.
   ld_mtitle = p_mtitle.
   ld_format              = p_format.
   ld_attdescription      = p_attdescription.
   ld_attfilename         = p_filename.
   ld_sender_address      = p_sender_address.
   ld_sender_address_type = p_sender_addres_type.

*#Fill the document data.
   w_doc_data-doc_size = 1.


*#Populate the subject/generic message attributes

   w_doc_data-obj_langu = sy-langu.
   w_doc_data-obj_name  = 'SAPRPT'.
   w_doc_data-obj_descr = ld_mtitle .
   w_doc_data-sensitivty = 'F'.


*#Fill the document data and get size of attachment

   clear w_doc_data.

   read table it_attach index w_cnt.
   w_doc_data-doc_size =
      ( w_cnt - 1 ) * 255 + strlen( it_attach ).
   w_doc_data-obj_langu  = sy-langu.
   w_doc_data-obj_name   = 'SAPRPT'.
   w_doc_data-obj_descr  = ld_mtitle.
   w_doc_data-sensitivty = 'F'.
   clear t_attachment.
   refresh t_attachment.
   free t_attachment.
   t_attachment[] = it_attach[].

  clear it_attach[].
  refresh  it_attach[].
  free  it_attach[].
*#Describe the body of the message

   clear t_packing_list.
   refresh t_packing_list.
   t_packing_list-transf_bin = space.
   t_packing_list-head_start = 1.
   t_packing_list-head_num = 0.
   t_packing_list-body_start = 1.
   describe table it_message lines t_packing_list-body_num.
   t_packing_list-doc_type = 'RAW'.
   append t_packing_list.

*#Create attachment notification

   t_packing_list-transf_bin = 'X'.
   t_packing_list-head_start = 1.
   t_packing_list-head_num   = 1.
   t_packing_list-body_start = 1.
   describe table t_attachment lines t_packing_list-body_num.
   t_packing_list-doc_type   ld_format.
   t_packing_list-obj_descr  ld_attdescription.
   t_packing_list-obj_name   ld_attfilename.
   t_packing_list-doc_size   t_packing_list-body_num * 255.
   append t_packing_list.

*#Add the recipients email address
   clear t_receivers.
   refresh t_receivers.
   free t_receivers.
   clear : email.
   select single usrid_long into email from pa0105 where pernr = wa_pernr-pernr
     and subty = '0010' and seqnr = ''.
   t_receivers-receiver = email.
   t_receivers-rec_type = 'U'.
   t_receivers-com_type = 'INT'.
   t_receivers-notif_del = 'X'.
   t_receivers-notif_ndel = 'X'.
   append t_receivers.

   ld_sender_address = 'HRD1'.
   ld_sender_address_type = 'B'.

   call function 'SO_DOCUMENT_SEND_API1'

        exporting
             document_data              = w_doc_data
             put_in_outbox              = 'X'
             sender_address             = ld_sender_address
             sender_address_type        = ld_sender_address_type
             commit_work                = 'X'
        importing
             sent_to_all                = w_sent_all
        tables
             packing_list               = t_packing_list
             contents_bin               = t_attachment
             contents_txt               = it_message
             receivers                  = t_receivers
        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.

*#Populate zerror return code

   ld_error = sy-subrc.

*#Populate zreceiver return code

   loop at t_receivers.

     ld_receiver = t_receivers-retrn_code.

   endloop.




check it and Revert back .



Regards,

Thangam.P


Viewing all articles
Browse latest Browse all 8950

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>