内部表在邮件中作为excel文件发送

2020-08-19 04:20发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


数据:w_deli(1)C型,

w_hex TYPE x,
lv_AVGST TYPE字符串,
lv_MV_RT TYPE字符串,
lv_AVGVL TYPE字符串,
lv_dt01 TYPE字符串,
lv_dt02 TYPE字符串,
lv_dt03 TYPE字符串,< br> lv_dt04 TYPE字符串,
lv_dt05 TYPE字符串,
lv_dt06 TYPE字符串,
lv_dt07 TYPE字符串,
lv_dt08 TYPE字符串,
lv_dt09 TYPE字符串,
lv_dt10 TYPE字符串,
lv_dt11 TYPE字符串,
lv_dt12 TYPE字符串,
lv_dt13 TYPE字符串,
lv_dt14 TYPE字符串,
lv_dt15 TYPE字符串,
lv_dt16 TYPE字符串,
lv_dt17 TYPE字符串,
lv_dt18 TYPE字符串,
lv_dt19 TYPE字符串,
lv_dt20 TYPE字符串,
lv_dt21 TYPE字符串,
lv_dt22 TYPE字符串,
lv_dt23 TYPE字符串,
lv_dt24 TYPE字符串,
lv_dt25 TYPE字符串,
lv_dt26 TYPE字符串,
lv_dt27 TYPE字符串,
lv_dt28 TYPE字符串,
lv_dt29 TYPE字符串,
lv_dt30 TYPE字符串,
lv_dt31 TYPE字符串,
lv_dt32 TYPE 字符串,
gc_crlf TYPE c值cl_bcs_convert => gc_crlf,
v_string TYPE字符串,
i_binary_content TYPE如此 lix_tab,
v_size类型,so_obj_len,
send_request类型,引用,对cl_bcs,
文档,类型,参考,对cl_document_bcs,
收件人,类型,对,if_recipient_bcs,对,
bcs_exception,类型,对,cx_bcs,对,
main_text,类型 bcsy_text,
send_to_all类型os_boolean,
mailto类型ad_smtpadr,
user_email类型ad_smtpadr。
常量:wl_c09(2)类型n值'09'。
字段符号:类型
TYPES:ty_tab的开始,
fld TYPE字符串,
ty_tab的结尾。
数据:gt_tab ty_tab的类型标准表,
gs_tab ty_tab的类型标准。
数据:lv_head1 TYPE字符串,
lv_head2 TYPE字符串。
ASSIGN w_deli TO TYPE'X'。
w_hex = wl_c09。
= w_hex。
桌子:mara。
类型:ty_mara的开始,
matnr类型matnr,
ERNAM ERNAM类型,
ty_mara的结尾。
数据:it_mara ty_mara类型标准表,
wa_mara类型ty_mara。
数据 :lv_mail TYPE字符串。
选择选项:s_matnr表示mara-matnr。
选择matnr ERNAM从mara插入表it_mara其中matnr所在 s_matnr。

将'matnr''ernam'连接到gs_tab-fld,由w_deli分隔。
将gs_tab附加到gt_tab。

在it_mara INTO wa_mara中循环。
并置wa_mara-matnr wa_mara-ERNAM into gs_tab-fld,由w_deli分隔。
APPEND gs_tab到gt_tab。
endloop。
在gt_tab分配字段上环 ()。
CONCATENATE v_string -fld gc_crlf INTO v_string。
ENDLOOP。
TRY。
cl_bcs_convert => string_to_solix(
导出
iv_string = v_string
iv_codepage ='4103'"适用于MS Excel,对于其他文档类型,请留空'4110'
iv_add_bom ='X'"对于其他文档类型
IMPORTING
et_solix = i_binary_content
ev_size = v_size)。 >捕获cx_bcs。
消息e445(so)。
结束。

*-发送电子邮件
尝试。

*-创建持久发送请求
send_request = cl_bcs => create_persistent()。

*-使用附件创建和设置文档
*从带有文本的内部表中创建文档对象
附加"亲爱的先生,"到main_text。
附加"请找到ZMFGSTK报告excel附件。" TO main_text。
document = cl_document_bcs => create_document(
i_type ='TXT'
i_text = main_text
i_subject ='ZMFGSTK Report')。

*-添加价差 图纸作为文档对象的附件
document-> add_attachment( i_attachment_type ='XLS'
i_attachment_subject ='ZMFGSTK报告'
i_attachment_LANGUAGE = SY-LANGU
i_attachment_size = v_size
i_att_content_hex = i_binary_content)。

*-添加文档对象以发送请求
send_request-> set_document(document)。

*-添加收件人(电子邮件地址)" TO" < br>
*从tvarvc选择低到表@DATA(gt_mail),其中名称='ZSD_ZMTFILL_MAILID',低= 'ABHIJIT.COACTIVE@GMAIL。 COM '。
*如果sy-subrc =0。
*在gt_mail分配字段-SYMBOL()处循环。
*翻译-低至小写字母。< br> user_email = 'biswadeb12101995@gmail.com '。
收件人= cl_cam_address_bcs => crea te_internet_address(user_email)。
send_request-> add_recipient(
i_recipient =收件人
i_express ='X')。
* ENDLOOP。
* ENDIF。

*- 设置立即发送标志
send_request-> set_send_immediately('X')。

*-发送文档
send_to_all = send_request->发送(i_with_error_screen ='X')。
提交工作 。
如果send_to_all全部是INITIAL。
带user_email的MESSAGE i500(sbcoms)。
ELSE。
MESSAGE s022(so)。
ENDIF。

*-异常处理
捕捉cx_bcs进入bcs_exception。
消息i865(so)带有bcs_exception-> error_type。

ENDTRY。

发送邮件错误错误

----------------------------------------------- -------------------------

document-> add_attachment(
i_attachment_type ='XLS'
i_attachment_subject ='ZMFGSTK报告'
i_attachment_LANGUAGE = SY-LANGU
i_attachment_size = v_size
i_att_content_hex = i_binary_content。)

--------------------------------------------------- -----------------------------

对此代码块加注释,然后触发邮件,但不发送excel文件。

所以请尽快帮助我

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


数据:w_deli(1)C型,

w_hex TYPE x,
lv_AVGST TYPE字符串,
lv_MV_RT TYPE字符串,
lv_AVGVL TYPE字符串,
lv_dt01 TYPE字符串,
lv_dt02 TYPE字符串,
lv_dt03 TYPE字符串,< br> lv_dt04 TYPE字符串,
lv_dt05 TYPE字符串,
lv_dt06 TYPE字符串,
lv_dt07 TYPE字符串,
lv_dt08 TYPE字符串,
lv_dt09 TYPE字符串,
lv_dt10 TYPE字符串,
lv_dt11 TYPE字符串,
lv_dt12 TYPE字符串,
lv_dt13 TYPE字符串,
lv_dt14 TYPE字符串,
lv_dt15 TYPE字符串,
lv_dt16 TYPE字符串,
lv_dt17 TYPE字符串,
lv_dt18 TYPE字符串,
lv_dt19 TYPE字符串,
lv_dt20 TYPE字符串,
lv_dt21 TYPE字符串,
lv_dt22 TYPE字符串,
lv_dt23 TYPE字符串,
lv_dt24 TYPE字符串,
lv_dt25 TYPE字符串,
lv_dt26 TYPE字符串,
lv_dt27 TYPE字符串,
lv_dt28 TYPE字符串,
lv_dt29 TYPE字符串,
lv_dt30 TYPE字符串,
lv_dt31 TYPE字符串,
lv_dt32 TYPE 字符串,
gc_crlf TYPE c值cl_bcs_convert => gc_crlf,
v_string TYPE字符串,
i_binary_content TYPE如此 lix_tab,
v_size类型,so_obj_len,
send_request类型,引用,对cl_bcs,
文档,类型,参考,对cl_document_bcs,
收件人,类型,对,if_recipient_bcs,对,
bcs_exception,类型,对,cx_bcs,对,
main_text,类型 bcsy_text,
send_to_all类型os_boolean,
mailto类型ad_smtpadr,
user_email类型ad_smtpadr。
常量:wl_c09(2)类型n值'09'。
字段符号:类型
TYPES:ty_tab的开始,
fld TYPE字符串,
ty_tab的结尾。
数据:gt_tab ty_tab的类型标准表,
gs_tab ty_tab的类型标准。
数据:lv_head1 TYPE字符串,
lv_head2 TYPE字符串。
ASSIGN w_deli TO TYPE'X'。
w_hex = wl_c09。
= w_hex。
桌子:mara。
类型:ty_mara的开始,
matnr类型matnr,
ERNAM ERNAM类型,
ty_mara的结尾。
数据:it_mara ty_mara类型标准表,
wa_mara类型ty_mara。
数据 :lv_mail TYPE字符串。
选择选项:s_matnr表示mara-matnr。
选择matnr ERNAM从mara插入表it_mara其中matnr所在 s_matnr。

将'matnr''ernam'连接到gs_tab-fld,由w_deli分隔。
将gs_tab附加到gt_tab。

在it_mara INTO wa_mara中循环。
并置wa_mara-matnr wa_mara-ERNAM into gs_tab-fld,由w_deli分隔。
APPEND gs_tab到gt_tab。
endloop。
在gt_tab分配字段上环 ()。
CONCATENATE v_string -fld gc_crlf INTO v_string。
ENDLOOP。
TRY。
cl_bcs_convert => string_to_solix(
导出
iv_string = v_string
iv_codepage ='4103'"适用于MS Excel,对于其他文档类型,请留空'4110'
iv_add_bom ='X'"对于其他文档类型
IMPORTING
et_solix = i_binary_content
ev_size = v_size)。 >捕获cx_bcs。
消息e445(so)。
结束。

*-发送电子邮件
尝试。

*-创建持久发送请求
send_request = cl_bcs => create_persistent()。

*-使用附件创建和设置文档
*从带有文本的内部表中创建文档对象
附加"亲爱的先生,"到main_text。
附加"请找到ZMFGSTK报告excel附件。" TO main_text。
document = cl_document_bcs => create_document(
i_type ='TXT'
i_text = main_text
i_subject ='ZMFGSTK Report')。

*-添加价差 图纸作为文档对象的附件
document-> add_attachment( i_attachment_type ='XLS'
i_attachment_subject ='ZMFGSTK报告'
i_attachment_LANGUAGE = SY-LANGU
i_attachment_size = v_size
i_att_content_hex = i_binary_content)。

*-添加文档对象以发送请求
send_request-> set_document(document)。

*-添加收件人(电子邮件地址)" TO" < br>
*从tvarvc选择低到表@DATA(gt_mail),其中名称='ZSD_ZMTFILL_MAILID',低= 'ABHIJIT.COACTIVE@GMAIL。 COM '。
*如果sy-subrc =0。
*在gt_mail分配字段-SYMBOL()处循环。
*翻译-低至小写字母。< br> user_email = 'biswadeb12101995@gmail.com '。
收件人= cl_cam_address_bcs => crea te_internet_address(user_email)。
send_request-> add_recipient(
i_recipient =收件人
i_express ='X')。
* ENDLOOP。
* ENDIF。

*- 设置立即发送标志
send_request-> set_send_immediately('X')。

*-发送文档
send_to_all = send_request->发送(i_with_error_screen ='X')。
提交工作 。
如果send_to_all全部是INITIAL。
带user_email的MESSAGE i500(sbcoms)。
ELSE。
MESSAGE s022(so)。
ENDIF。

*-异常处理
捕捉cx_bcs进入bcs_exception。
消息i865(so)带有bcs_exception-> error_type。

ENDTRY。

发送邮件错误错误

----------------------------------------------- -------------------------

document-> add_attachment(
i_attachment_type ='XLS'
i_attachment_subject ='ZMFGSTK报告'
i_attachment_LANGUAGE = SY-LANGU
i_attachment_size = v_size
i_att_content_hex = i_binary_content。)

--------------------------------------------------- -----------------------------

对此代码块加注释,然后触发邮件,但不发送excel文件。

所以请尽快帮助我

付费偷看设置
发送
4条回答
路亽曱_Ryan
1楼-- · 2020-08-19 05:07

您好 Biswadeb Goswami

您是否尝试过将" BIN"值作为附件类型?

 i_attachment_type ='BIN'

您也可以尝试将整个文档的类型更改为" RAW"。

 document = cl_document_bcs => create_document(i_type ='RAW'  

致谢,

Mateusz

哎,真难
2楼-- · 2020-08-19 04:51

i_attachment_type ='xls',但出现相同的错误

亦是此间程序员
3楼-- · 2020-08-19 05:07

如果您真的把它写成小写...

哎,真难
4楼-- · 2020-08-19 05:15

'xls'是小写,甚至不是我问的('EXT')

( 课程:始终复制/粘贴代码,切勿手动输入)

一周热门 更多>