2012 Oct 29 4:18 AM
Hello Experts,
I want to send a smartforms as PDF with some dynamic email-body. The email functionality is working fine but the Email body is coming same for all the email.
Details Scenario --> I have a report where i am giving Delivery Group where we have more than one delivery number . Now i want to send different mail for different delivey number and Delivry number should be printed on Email body .
Probelm : Email with correct attachment is sending to the correct person but in the every email body the delivery is coming same which should be different .I am giving the code please have a look into it and let me know if i missed something .
swc_clear_container container.
CLEAR l_text.
CONCATENATE 'STO No.:'(003) vbdkl-vgbel
INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR l_text.
CONCATENATE 'Shipping From'(004) vbdkl-vstel 'To'(005) vbdkl-werks
INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR: l_text,
l_date.
WRITE vbdkl-lfdat TO l_date.
CONCATENATE 'Delivery date:'(006) l_date INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR l_text.
CONCATENATE 'Group No.:'(007) vbsk-sammg INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR l_text.
IF l_cust_email_not_maintained = gc_x.
CONCATENATE 'Email not maintained for Customer'(008) l_kunnr INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
ELSE.
IF vbdkl-werks CP lc_u OR vbdkl-werks CP lc_a.
CLEAR l_text.
CONCATENATE 'Stock Transport Order to be dispatched by'(011) vbdkl-vstel INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
CLEAR l_text.
ELSE.
ls_body-tdline = 'Please prepare this load to be collected.'(009).
ENDIF.
ENDIF.
APPEND ls_body TO lt_email_body_tab.
swc_set_element container 'NOTETEXT' lt_email_body_tab.
swc_call_method ls_recipient 'ADDNOTE' container.
* Persistent RECIPIENT object
swc_object_to_persistent ls_recipient ls_mail_rec_obj.
* Prepare Subject and PDF name.
CONCATENATE 'Delivery:'(010) vbdkl-vbeln INTO l_subject
SEPARATED BY space.
gs_output_options-tdtitle = l_subject.
gs_control_parameters-device = gc_mail.
CALL FUNCTION gv_fm_name
EXPORTING
mail_recipient = ls_mail_rec_obj
mail_sender = ls_mail_sen_obj
control_parameters = gs_control_parameters
output_options = gs_output_options
user_settings = ''
gv_version = gv_version
g_trade = g_trade
g_unnum = g_unnum
g_dg_class = g_dg_class
gv_text2 = gv_text2
gs_emergency_no = /lgc/sdtdelivery-zemergency
gs_vbdkl = vbdkl
gs_vbsk = vbsk
gs_sdtvadd = /lgc/sdtvadd
gs_sdtvadd_s = */lgc/sdtvadd
gv_text1 = gv_text1
gs_sdtms71 = /lgc/sdtms71
gs_vbdpl = gt_tvbdpl
gs_sadr_s = *sadr
gs_sadr = sadr
gs_vbco3 = vbco3
g_dgs_flg = gs_dgs_flg
TABLES
gt_item_data = gt_item_data_ct
gt_item_data_pl = gt_item_data_pl
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc = 0.
* commit work is required to send the email for these custom programs.
IF sy-tcode = gc_tcode
OR sy-tcode = gc_tcode1 .
COMMIT WORK.
ENDIF.
Thanks,
Satya
Hello Experts,
I want to send a smartforms as PDF with some dynamic email-body. The email functionality is working fine but the Email body is coming same for all the email.
Details Scenario --> I have a report where i am giving Delivery Group where we have more than one delivery number . Now i want to send different mail for different delivey number and Delivry number should be printed on Email body .
Probelm : Email with correct attachment is sending to the correct person but in the every email body the delivery is coming same which should be different .I am giving the code please have a look into it and let me know if i missed something .
swc_clear_container container.
CLEAR l_text.
CONCATENATE 'STO No.:'(003) vbdkl-vgbel
INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR l_text.
CONCATENATE 'Shipping From'(004) vbdkl-vstel 'To'(005) vbdkl-werks
INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR: l_text,
l_date.
WRITE vbdkl-lfdat TO l_date.
CONCATENATE 'Delivery date:'(006) l_date INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR l_text.
CONCATENATE 'Group No.:'(007) vbsk-sammg INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
APPEND ls_body TO lt_email_body_tab.
CLEAR l_text.
IF l_cust_email_not_maintained = gc_x.
CONCATENATE 'Email not maintained for Customer'(008) l_kunnr INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
ELSE.
IF vbdkl-werks CP lc_u OR vbdkl-werks CP lc_a.
CLEAR l_text.
CONCATENATE 'Stock Transport Order to be dispatched by'(011) vbdkl-vstel INTO l_text SEPARATED BY space.
ls_body-tdline = l_text.
CLEAR l_text.
ELSE.
ls_body-tdline = 'Please prepare this load to be collected.'(009).
ENDIF.
ENDIF.
APPEND ls_body TO lt_email_body_tab.
swc_set_element container 'NOTETEXT' lt_email_body_tab.
swc_call_method ls_recipient 'ADDNOTE' container.
* Persistent RECIPIENT object
swc_object_to_persistent ls_recipient ls_mail_rec_obj.
* Prepare Subject and PDF name.
CONCATENATE 'Delivery:'(010) vbdkl-vbeln INTO l_subject
SEPARATED BY space.
gs_output_options-tdtitle = l_subject.
gs_control_parameters-device = gc_mail.
CALL FUNCTION gv_fm_name
EXPORTING
mail_recipient = ls_mail_rec_obj
mail_sender = ls_mail_sen_obj
control_parameters = gs_control_parameters
output_options = gs_output_options
user_settings = ''
gv_version = gv_version
g_trade = g_trade
g_unnum = g_unnum
g_dg_class = g_dg_class
gv_text2 = gv_text2
gs_emergency_no = /lgc/sdtdelivery-zemergency
gs_vbdkl = vbdkl
gs_vbsk = vbsk
gs_sdtvadd = /lgc/sdtvadd
gs_sdtvadd_s = */lgc/sdtvadd
gv_text1 = gv_text1
gs_sdtms71 = /lgc/sdtms71
gs_vbdpl = gt_tvbdpl
gs_sadr_s = *sadr
gs_sadr = sadr
gs_vbco3 = vbco3
g_dgs_flg = gs_dgs_flg
TABLES
gt_item_data = gt_item_data_ct
gt_item_data_pl = gt_item_data_pl
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc = 0.
* commit work is required to send the email for these custom programs.
IF sy-tcode = gc_tcode
OR sy-tcode = gc_tcode1 .
COMMIT WORK.
ENDIF.
Thanks,
Satya
2012 Oct 29 5:46 AM
Hello Satya,
Are you storing multiple delivery number in an internal table.
If not store it in internal table , loop it and pick one by one delivery number and then form mssage body then send the email.
Happy coding
Regards
Sandeep
2012 Oct 29 5:54 AM
Hi Sandeep,
Yes i am doing the same. But still i am not getting the body correctly.
Thanks,
Satya
2012 Oct 29 6:41 AM
Hello Satya
Are you passing the work area of an internal table?
Can you paste your code from Loop statement to endloop.?
Thanks
Sandeep