on 2023 Nov 13 8:29 AM
Hello everyone,
I am slightly desperate and hope that someone here can help me, as I have no idea how to solve this problem.
It's about the following:
We have a Z programme that delivers consignment messages with SAPscript expression. Now the created SAPscricpt should also be sent by email. If this option is desired, the user selects "send via email" in the programme and enters the desired email address of the recipient
In the program code, I check which medium is available (i.e. print, fax or email)
case xmedium.<br>
when '1'.<br>
nast-nacha = '1'.<br>
lf_device = 'PRINTER'.<br>
when '2'.<br>
nast-nacha = '2'.<br>
lf_device = 'TELEFAX'.<br>
cs_itcpo-tdtelenum = lfa1-telfx.<br>
cs_itcpo-tdteleland = lfa1-land1.<br>
cs_itcpo-tdsenddate = sy-datum.<br>
cs_itcpo-tdsendtime = sy-uzeit.<br>
cs_itcpo-tdfaxuser = sy-uname.<br>
if not p_faxnr is initial.<br>
cs_itcpo-tdtelenum = p_faxnr.<br>
endif.<br>
nast-telfx = cs_itcpo-tdtelenum.<br>
nast-tland = cs_itcpo-tdteleland.<br>
<br>
when '5'.<br>
nast-nacha = '5'.<br>
lf_device = 'MAIL'.<br>
cs_itcpo-tdgetotf = 'X'.<br>
endcase.<br>
if x_spcarc = 'X' and p_armod <> '1' and xmedium = '1'.<br>
cs_toa-function = 'DARA'.<br>
cs_toa-mandant = sy-mandt.<br>
cs_toa-sap_object = 'BKPF'.<br>
cs_toa-ar_object = p_docart.<br>
cs_toa-reserve = 'COMMIT'.<br>
cs_toa-object_id = i_tab-bukrs.<br>
cs_toa-object_id+4 = i_tab-belnr.<br>
cs_toa-object_id+14 = i_tab-gjahr.<br>
move-corresponding cs_toa to cs_arc.<br>
cs_itcpo-tdarmod = p_armod.<br>
endif.<br>
<br>
cs_itcpo-tdnewid = new_spool.<br>
cs_itcpo-tdpreview = pr_view. "For testing<br>
cs_itcpo-tdreceiver = p_prrec.<br>
cs_itcpo-tdautority = p_prber.<br>
cs_itcpo-tdcopies = n_pcopy.<br>
cs_itcpo-tdimmed = x_pimme.<br>
cs_itcpo-tddelete = x_prele.<br>
cs_itcpo-tdsenddate = sy-datum.<br>
cs_itcpo-tdsendtime = sy-uzeit.<br>
cs_itcpo-tdprogram = sy-repid..<br>
cs_itcpo-tdcovtitle = p_title.<br>
cs_itcpo-tddest = p_ldest.<br>
<br>
perform set_covtitle<br>
using zzbc_printf lfa1-lifnr i_tab-werks<br>
changing cs_itcpo-tdcovtitle.<br>
Next I check with nast-nacha <> 5 that everything is done as before (i.e. print and fax run as before).
However, if email is now used, i.e. nast-nacha = 5, then the new logic is applied.
elseif nast-nacha = '5'.<br>
<br>
data: p_mail_sen_obj type swotobjid,<br>
p_mail_rec_obj type swotobjid,<br>
lt_otfdata type table of itcoo with header line,<br>
options like itcpo,<br>
ls_itcpp like itcpp,<br>
gt_otf_data type table of itcoo,<br>
gt_pdf_data type table of tline,<br>
gw_comm_values type szadr_comm_values,<br>
lt_packlist type table of sopcklsti1,<br>
ls_packlist type sopcklsti1,<br>
ls_docdata type sodocchgi1,<br>
mv_subject type so_obj_des.<br>
<br>
<br>
<br>
<br>
* *Internal table to get vendor name and address number<br>
data : begin of it_vname occurs 0,<br>
lfnr like lfa1-lifnr,<br>
end of it_vname.<br>
*Internal table to get email_if with address number<br>
data : begin of it_vemail occurs 0,<br>
email type so_name,<br>
end of it_vemail.<br>
<br>
data : begin of it_nast occurs 0,<br>
parnr like nast-parnr,<br>
end of it_nast.<br>
<br>
select single parnr from nast into it_nast<br>
where parnr eq lfa1-lifnr.<br>
<br>
*Accessing name and address number of a vendor<br>
select single lifnr from lfa1 into it_vname<br>
where lifnr eq it_nast-parnr.<br>
*Accessing mail id of a vendor<br>
select single intad from lfb1 into it_vemail where lifnr eq it_vname-lfnr<br>
and bukrs eq rkwa-bukrs.<br>
if sy-subrc = 0.<br>
<br>
* lv_ip_mailaddr = <ls_intad>.<br>
* lv_et_recipient = conv #( ls_mail_recipient ).<br>
<br>
call function 'CREATE_RECIPIENT_OBJ_PPF'<br>
exporting<br>
* IP_COUNTRY =<br>
* IP_FAXNO =<br>
ip_mailaddr = it_vemail-email<br>
ip_type_id = 'U'<br>
importing<br>
ep_recipient_id = p_mail_rec_obj<br>
exceptions<br>
invalid_recipient = 1<br>
others = 2<br>
.<br>
if sy-subrc <> 0.<br>
* Implement suitable error handling here<br>
endif.<br>
endif.<br>
<br>
call function 'CREATE_SENDER_OBJECT_PPF'<br>
exporting<br>
ip_sender = sy-uname<br>
importing<br>
ep_sender_id = p_mail_sen_obj<br>
exceptions<br>
invalid_sender = 1<br>
others = 2<br>
.<br>
if sy-subrc <> 0.<br>
* Implement suitable error handling here<br>
message id sy-msgid type sy-msgty number sy-msgno<br>
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.<br>
endif.<br>
<br>
*p_mail_rec_obj = conv #( it_vemail-email ).<br>
<br>
<br>
gw_comm_values-adsmtp = conv #( it_vemail-email ).<br>
<br>
call function 'CONVERT_COMM_TYPE_DATA'<br>
exporting<br>
pi_comm_type = 'INT'<br>
pi_comm_values = gw_comm_values<br>
* PI_SCREEN =<br>
* PI_NEWID =<br>
* PI_COUNTRY =<br>
pi_repid = sy-repid<br>
* PI_SNAST =<br>
pi_mail_sender = sy-uname<br>
* PI_USE_MAILDEVICE_FOR_FAX = ' '<br>
importing<br>
pe_itcpo = cs_itcpo<br>
pe_mail_recipient = p_mail_rec_obj<br>
pe_mail_sender = p_mail_sen_obj<br>
* EXCEPTIONS<br>
* COMM_TYPE_NOT_SUPPORTED = 1<br>
* RECIPIENT_CREATION_FAILED = 2<br>
* SENDER_CREATION_FAILED = 3<br>
* OTHERS = 4<br>
.<br>
if sy-subrc <> 0.<br>
* Implement suitable error handling here<br>
endif.<br>
<br>
<br>
<br>
call function 'OPEN_FORM'<br>
exporting<br>
archive_index = cs_toa "RER, 20.01.2010<br>
archive_params = cs_arc "RER, 20.01.2010<br>
form = frm_name<br>
device = lf_device<br>
dialog = space<br>
mail_sender = p_mail_sen_obj<br>
mail_recipient = p_mail_rec_obj<br>
language = lfa1-spras<br>
options = cs_itcpo<br>
exceptions<br>
canceled = 1<br>
device = 2<br>
form = 3<br>
options = 4<br>
unclosed = 5<br>
mail_options = 6<br>
archive_error = 7<br>
others = 8.<br>
<br>
<br>
call function 'CLOSE_FORM'<br>
importing<br>
result = ls_itcpp<br>
tables<br>
otfdata = gt_otf_data[]<br>
exceptions<br>
others = 1.<br>
<br>
commit work.<br>
And this is exactly the problem. I've tried so many things, but no matter what I do, I get an error or short dump. I just don't know what to do..... Can anyone here please help me. I've searched Google etc. but I haven't found anything that solves my problem.
I would be so grateful if someone here could help me.
Thanks so much
Alex
Request clarification before answering.
User | Count |
---|---|
100 | |
12 | |
10 | |
8 | |
6 | |
4 | |
4 | |
4 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.