cancel
Showing results for 
Search instead for 
Did you mean: 

e-mailing packing list to the customer

Former Member
0 Kudos

Hi,

Our business process needs emailing of packing list to the customer.

The packing list output form has been developed using SMARTFORM to print bar codes on it.

We would like to utilize contact person functionality, which is available in the customer master, to store the email id of the packing list recipient.

Can you provide the details of how to send the packing list output to the customer contact using SAP email functionality? Should I need to create a separate output condition type for it?

Thanks in advance.

Regards,

Shiva

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi

Check these links for sending Smartform using Mail

/people/pavan.bayyapu/blog/2005/08/30/sending-html-email-from-sap-crmerp

Regards

Anji

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

You can use the following code to send the smartform output to email.

*********Variable Declarations *****************************

DATA: gv_form_name TYPE rs38l_fnam, " Used to store the function module generated by Smartform

gv_bin_filesize TYPE i, " Store the file size

gv_pos TYPE i,

gv_len TYPE i,

gv_tab_lines TYPE i.

********Constants *******************************************

Data : gc_text(11) type c value 'Form Output',

gc_tst(3) type c value 'TST',

gc_testing(7) type c value 'Testing'.

*********Work Area Declarations *****************************

DATA: gs_docdata TYPE sodocchgi1, " Data of an object which can be changed

gs_ctrlop TYPE ssfctrlop, " Smart Forms: Control structure

gs_outopt TYPE ssfcompop, " SAP Smart Forms: Smart Composer (transfer) options

gs_otfdata TYPE ssfcrescl, " Smart Forms: Return value at end of form printing

gs_reclist TYPE somlreci1, " SAPoffice: Structure of the API Recipient List

gs_pdf_tab TYPE tline, " Workarea for SAP Script Text Lines

gs_objbin TYPE solisti1, " SAPoffice: Single List with Column Length 255

gs_objpack TYPE sopcklsti1. " SAPoffice: Description of Imported Object Components

*********Internal tables Declarations *****************************

DATA: gt_reclist TYPE TABLE OF somlreci1, " SAPoffice: Structure of the API Recipient List

gt_pdf_tab TYPE TABLE OF tline, " SAPscript: Text Lines

gt_otf TYPE TABLE OF itcoo, " OTF Structure

gt_objbin TYPE TABLE OF solisti1, " SAPoffice: Single List with Column Length 255

gt_objpack TYPE TABLE OF sopcklsti1. " SAPoffice: Description of Imported Object Components

CLEAR : gv_form_name,

gs_ctrlop,

gs_outopt,

gs_otfdata,

gv_bin_filesize,

gv_pos,

gv_len,

gv_tab_lines.

START-OF-SELECTION.

  • Generate Function Module name

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'ZPDF_G'

IMPORTING

fm_name = gv_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.

  • Assigning values to Form Control Structure and Form Composer

gs_ctrlop-getotf = 'X'.

gs_ctrlop-no_dialog = 'X'.

gs_outopt-tdnoprev = 'X'.

  • Getting the OTFDATA

CALL FUNCTION gv_form_name

EXPORTING

control_parameters = gs_ctrlop

output_options = gs_outopt

user_settings = 'X'

IMPORTING

job_output_info = gs_otfdata

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.

  • Assigning the OTFDATA to OTF Structure table

CLEAR gt_otf.

gt_otf[] = gs_otfdata-otfdata[].

  • Convert the OTF DATA to SAP Script Text lines

CLEAR gt_pdf_tab.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF'

max_linewidth = 132

IMPORTING

bin_filesize = gv_bin_filesize

TABLES

otf = gt_otf

lines = gt_pdf_tab

EXCEPTIONS

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

OTHERS = 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.

  • Assigning the Description of the object sent in the mail

CLEAR gs_docdata.

gs_docdata-obj_name = gc_tst.

gs_docdata-obj_descr = gc_testing.

  • Assigning the email id to Structure of the API Recipient List table

CLEAR : gt_reclist, gs_reclist.

gs_reclist-receiver = 'minal.nampalliwar@wipro.com'.

gs_reclist-rec_type = 'U'.

APPEND gs_reclist TO gt_reclist.

  • Passing the SAP Script text lines to SAPoffice: Single List with Column Length 255 table

CLEAR : gs_objbin, gs_pdf_tab.

LOOP AT gt_pdf_tab INTO gs_pdf_tab.

gv_pos = 255 - gv_len.

IF gv_pos > 134. "length of pdf_table

gv_pos = 134.

ENDIF.

gs_objbin+gv_len = gs_pdf_tab(gv_pos).

gv_len = gv_len + gv_pos.

IF gv_len = 255. "length of out (contents_bin)

APPEND gs_objbin TO gt_objbin.

CLEAR: gs_objbin, gv_len.

IF gv_pos < 134.

gs_objbin = gs_pdf_tab+gv_pos.

gv_len = 134 - gv_pos.

ENDIF.

ENDIF.

ENDLOOP.

IF gv_len > 0.

APPEND gs_objbin TO gt_objbin.

ENDIF.

  • Filling the details in SAPoffice: Description of Imported Object Components table

DESCRIBE TABLE gt_objbin LINES gv_tab_lines.

CLEAR gs_objbin.

READ TABLE gt_objbin INTO gs_objbin INDEX gv_tab_lines.

IF sy-subrc = 0.

gs_objpack-doc_size = ( gv_tab_lines - 1 ) * 255 + STRLEN( gs_objbin ).

gs_objpack-transf_bin = 'X'.

gs_objpack-head_start = 1.

gs_objpack-head_num = 0.

gs_objpack-body_start = 1.

gs_objpack-body_num = gv_tab_lines.

gs_objpack-doc_type = 'PDF'.

gs_objpack-obj_name = 'ATTACHMENT'.

gs_objpack-obj_descr = 'test'.

APPEND gs_objpack TO gt_objpack.

ENDIF.

  • Sending the Form Output in the PDF format to email

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = gs_docdata

put_in_outbox = 'X'

commit_work = 'X'

TABLES

packing_list = gt_objpack

contents_bin = gt_objbin

receivers = gt_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 ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSE.

WRITE 'Sent Successfully'.

ENDIF.

SUBMIT rsconn01

WITH mode EQ 'INT'

AND RETURN.

END-OF-SELECTION.

Reward if useful.........