cancel
Showing results for 
Search instead for 
Did you mean: 

PO form create PDF file send by email.

Former Member
0 Kudos

Hi Team,

the PO form should be created as PDF file and sent by email to the buyer who created the purchase order. Please help me.How to do it.Please send me the code for that(example) , Thanks

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Thanks Rasheed salman, It is very helpful ans.

Former Member
0 Kudos

Hi,

Use CONVERT_OTF - to convert SF to PDF

SO_NEW_DOCUMENT_ATT_SEND_API1 for Email

Regards

Former Member
0 Kudos

Hi ,

See this code as an example and change accroding to ur requirement

{

DATA : lv_tt(300),lv_pt(300).
  DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
  i_tline TYPE TABLE OF tline WITH HEADER LINE,
  i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
  i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
* Objects to send mail.
  i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
  i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
  i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
  i_reclist TYPE STANDARD TABLE OF  somlreci1," OCCURS 0 WITH HEADER LINE,
  w_reclist TYPE somlreci1,
* Work Area declarations
  wa_objhead TYPE soli_tab,
  w_ctrlop TYPE ssfctrlop,
  w_compop TYPE ssfcompop,
  w_return TYPE ssfcrescl,
  wa_doc_chng TYPE sodocchgi1,
  w_data TYPE sodocchgi1,
  wa_buffer TYPE string, "To convert from 132 to 255
* Variables declarations
  v_form_name TYPE rs38l_fnam,
  v_len_in LIKE sood-objlen,
  v_len_out LIKE sood-objlen,
  v_len_outn TYPE i,
  v_lines_txt TYPE i,
  v_lines_bin TYPE i.
  DATA: lv_t(100).
  CONCATENATE text-003 gv_prueflos1 INTO lv_t.
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = 'ZQM_F_INWARD_REJECTION'
    IMPORTING
      fm_name            = v_form_name
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  w_ctrlop-getotf = 'X'.
  w_ctrlop-no_dialog = 'X'.
  w_compop-tdprinter = 'PDF1'.
  CALL FUNCTION v_form_name
    EXPORTING
      control_parameters = w_ctrlop
      output_options     = w_compop
      user_settings      = 'X'
      wa_head            = wa_head
    IMPORTING
      job_output_info    = w_return
    TABLES
      it_final           = it_final
    EXCEPTIONS
      formatting_error   = 1
      internal_error     = 2
      send_error         = 3
      user_canceled      = 4
      OTHERS             = 5.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  i_otf[] = w_return-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
      OTHERS                = 4.
  IF sy-subrc <> 0.
  ENDIF.
  LOOP AT i_tline.
    TRANSLATE i_tline USING '~'.
    CONCATENATE wa_buffer i_tline INTO wa_buffer.
  ENDLOOP.
  TRANSLATE wa_buffer USING '~'.
  DO.
    i_record = wa_buffer.
    APPEND i_record.
    SHIFT wa_buffer LEFT BY 255 PLACES.
    IF wa_buffer IS INITIAL.
      EXIT.
    ENDIF.
  ENDDO.
* Attachment
  REFRESH: i_reclist,
  i_objtxt,
  i_objbin,
  i_objpack.
  CLEAR wa_objhead.
  i_objbin[] = i_record[].
* Create Message Body Title and Description
  i_objtxt =  text-011. "'Dear Sir/Madam,'."     '."'test with pdf-Attachment!'.
  APPEND i_objtxt.

  i_objtxt = text-012. "'Please find the Inward Rejection Report as an PDF attachment'."     '."'test with pdf-Attachment!'.
  APPEND i_objtxt.

  i_objtxt = text-013. "'Warm Regards'."     '."'test with pdf-Attachment!'.
  APPEND i_objtxt.

  i_objtxt = wa_head-inspected_by."     '."'test with pdf-Attachment!'.
  APPEND i_objtxt.

  DESCRIBE TABLE i_objtxt LINES v_lines_txt.
  READ TABLE i_objtxt INDEX v_lines_txt.
  wa_doc_chng-obj_name = lv_t."'smartform'.
  wa_doc_chng-expiry_dat = sy-datum + 10.
  wa_doc_chng-obj_descr = lv_t." 'smartform'.
  wa_doc_chng-sensitivty = 'F'.
  wa_doc_chng-doc_size = v_lines_txt * 255.
* Main Text
  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.
* Attachment (pdf-Attachment)
  i_objpack-transf_bin = 'X'.
  i_objpack-head_start = 1.
  i_objpack-head_num = 0.
  i_objpack-body_start = 1.
  DESCRIBE TABLE i_objbin LINES v_lines_bin.
  READ TABLE i_objbin INDEX v_lines_bin.
  i_objpack-doc_size = v_lines_bin * 255 .
  i_objpack-body_num = v_lines_bin.
  i_objpack-doc_type = 'PDF'.
  i_objpack-obj_name = 'smart'.
  i_objpack-obj_descr = lv_t ."'test'.
  APPEND i_objpack.

  REFRESH  i_reclist.
  LOOP AT it_email INTO wa_email.

    w_reclist-receiver = wa_email-smtp_addr.
    w_reclist-rec_type = 'U'.
    APPEND w_reclist TO i_reclist.
  ENDLOOP.

  LOOP AT it_eplant INTO wa_eplant.
    w_reclist-receiver = wa_eplant-email_add.
    w_reclist-rec_type = 'U'.

    IF wa_eplant-cc1 = 'X'.
      w_reclist-copy = 'X'.
    ENDIF.

    IF wa_eplant-bcc = 'X'.
      w_reclist-blind_copy = 'X'.
    ENDIF.
    APPEND w_reclist TO i_reclist.
  CLEAR w_reclist.
  ENDLOOP.




  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = wa_doc_chng
      put_in_outbox              = 'X'
      commit_work                = 'X'
    TABLES
      packing_list               = i_objpack
      object_header              = wa_objhead
      contents_bin               = i_objbin
      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 'Error When Sending the File' TYPE 'E' DISPLAY LIKE 'S'.
*  ELSE.
*    CONCATENATE 'Mail Sent to' wa_eplant-email_add INTO lv_tt.
*    MESSAGE lv_tt TYPE 'S' DISPLAY LIKE 'S'.
  ENDIF.
*ENDIF.
  CLEAR lv_tt.

}

Edited by: Rasheed salman on Dec 14, 2009 7:23 AM

Edited by: Rasheed salman on Dec 14, 2009 7:23 AM