有人向我说明了有关十六进制数据转换以创建PDF并将其发送给邮件的问题

2020-09-02 14:37发布

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

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


我有要求将假脱机输出作为PDF附件发送到邮件组。 该后台打印程序是通过使用JOB_OPEN,JOB_SUBMIT和JOB_CLOSE计划的程序生成的。

我从后台作业获得了后台打印请求,已将其传递给CONVERT_ABAPSPOOLTO_PDF功能模块,此功能模块返回一个内部表。 在调试中,我检查了十六进制格式的内部表的内容。 有人可以帮我在下面澄清一下。

1。 此内部表数据为十六进制格式。当我在Google中引用示例逻辑时,有人提到我们需要将135长度转换为255。是什么意思?

2。 如何转换这些数据并作为PDF附件发送。如果有任何示例逻辑有用。

3。 需要邮件发送程序逻辑的帮助,以将上述PDF作为通讯组列表的附件发送。

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

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


我有要求将假脱机输出作为PDF附件发送到邮件组。 该后台打印程序是通过使用JOB_OPEN,JOB_SUBMIT和JOB_CLOSE计划的程序生成的。

我从后台作业获得了后台打印请求,已将其传递给CONVERT_ABAPSPOOLTO_PDF功能模块,此功能模块返回一个内部表。 在调试中,我检查了十六进制格式的内部表的内容。 有人可以帮我在下面澄清一下。

1。 此内部表数据为十六进制格式。当我在Google中引用示例逻辑时,有人提到我们需要将135长度转换为255。是什么意思?

2。 如何转换这些数据并作为PDF附件发送。如果有任何示例逻辑有用。

3。 需要邮件发送程序逻辑的帮助,以将上述PDF作为通讯组列表的附件发送。

付费偷看设置
发送
7条回答
jovirus
1楼-- · 2020-09-02 15:01

嗨,

您可以起诉bcs_example_8作为示例。 它使用cl_bcs并发送pdf作为附件。

PDF是通过ADS生成的,但原理与其他PDF相同。

最诚挚的问候

JozsefH

compass1988
2楼-- · 2020-09-02 15:06

嗨罗西,

感谢您的答复。

内部表格的数据类似于附件格式(请参阅附件屏幕快照 pdf.png )。 我认为不是十六进制的。 如果以下FM通话中出现问题,请您纠正我。

1。 我没有将目标设备传递给FM呼叫。 它是强制性的吗?

2。 从下面的FM通话中,我正在以附件格式将数据获取到GT_PDF中。 您能建议我进入十六进制时需要做些什么...吗?

P_SPOOL =假脱机编号

GV_NODIA =空格。

CALL FUNCTION'CONVERT_ABAPSPOOLJOB_2_PDF'
导出
SRC_SPOOLID = P_SPOOL
NO_DIALOG = GV_NODIA
* DST_DEVICE =
* PDF_DESTINATION =
* NO_BACKGROUND =
= ROM_FORM '
* USE_CASCADING =''
*导入
* PDF_BYTECOUNT =
* PDF_SPOOLID =
* LIST_PAGECOUNT =
* BTC_JOBNAME =
* BTC_JOBCOUNT =
* BIN_FILE =
表格
PDF = GT_PDF
例外情况
ERR_NO_ABAP_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DEST = 4
ERR_BAD_DEST
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 11
其他= 12.
I

蓋茨
3楼-- · 2020-09-02 15:07

所有说明如何发送带有附件的电子邮件...

https://blogs.sap.com/2013/05/29/sending-mail -using-oo/

开始询问之前的SCN搜索

微wx笑
4楼-- · 2020-09-02 15:14

您正在谈论十六进制,所以我只想告诉您十六进制没有任何意义

我建议您使用CL_BCS,并在网络上找到一些现有示例,或SAP提供的一些演示程序。

渐行渐远_HoldOn
5楼-- · 2020-09-02 15:25

您好,

用于转换签出课程

cl_rmps_general_functions =>

我用了这种方法

convert_1024_to_255(导出im_tab_1024 = lt_doc接收re_tab_255 = lt_content)。

发送逻辑如下

DATA(lo_send_request)= cl_bcs => create_persistent()。
DATA(lo_document)= cl_document_bcs => create_document(i_type ='RAW'i_subject ='您的主题')。
DATA(lo_sender_request)= cl_sapuser_bcs =>创建(sy-uname)。
lo_send_request-> set_sender(i_sender = lo_sender)。 'distributionlist@yourcompany.com ')。
lo_send_request-> add_recipient(i_recipient = lo_recipient i_express ='X'i_copy =''i_blind_copy =''i_no_forward =''))。

lo_document-> add_attachment(导出i_attachment_type ='PDF'i_attachment_subject = lv_subject i_att_content_hex = lt_content)。
lo_send_request-> set_document(lo_document)。

lo_send_request-> send()。
提交工作。

SKY徐
6楼-- · 2020-09-02 15:12

嗨罗西,

感谢您的回复...

我的问题是我正在将数据以附件格式(长度为132)导入PDF内部表[IT_PDF]。 它是正确的还是任何错误。

1。 如果正确,那么我该如何继续进行操作,例如如何将132转换为255。

2。 如果出现错误,则需要进行更正。

3。 为供您参考,我正在使用功能模块(SO_NEW_DOCUMENT_SEND_API1)发送邮件,但未使用CL_BCS之类的任何类。

4。 我在下面的链接中实现自己的要求,但我无法理解其逻辑和目的。

https://wiki.scn.sap.com/wiki/display/Snippets/Convert+Spool+request+to+PDF+and+send+as+电子邮件

5。 在上方链接中,我不明白以下有关数据转换的逻辑

 * ----------------------------------------------  ----------------------- *
 *格式convert_spool_to_pdf *
 * -------------------------------------------------  -------------------- *
 格式convert_spool_to_pdf。

   通话功能'CONVERT_ABAPSPOOLJOB_2_PDF'
     出口
       src_spoolid = gd_spool_nr
       no_dialog = c_no
       dst_device = c_device
     输入
       pdf_bytecount = gd_bytecount
     桌子
       pdf = it_pdf_output
     例外情况
       err_no_abap_spooljob = 1
       err_no_spooljob = 2
       err_no_permission = 3
       err_conv_not_possible = 4
       err_bad_destdevice = 5
       user_cancelled = 6
       err_spoolerror = 7
       err_temseerror = 8
       err_btcjob_open_failed = 9
       err_btcjob_submit_failed = 10
       err_btcjob_close_failed = 11
       其他= 12。

   检查sy-subrc = 0。

 *将132长字符串转换为255长字符串
   循环到it_pdf_output。
     使用'〜'转换it_pdf_output。
     CONCATENATE gd_buffer it_pdf_output INTO gd_buffer。
   结局。

   使用'〜'转换gd_buffer。

   做。
     it_mess_att = gd_buffer。
     附加it_mess_att。
     将gd_buffer左移255个位置。
     如果gd_buffer是INITIAL。
       出口。
     万一。
   ENDDO。
 ENDFORM。  " convert_spool_to_pdf 

请参考所附的屏幕截图,让我知道。

一周热门 更多>