ABAP 发邮件(三)

2023-11-10

【转自http://blog.sina.com.cn/s/blog_7c7b16000101bnxk.html】
SAP ABAP 发邮件方法三(OO)


*&---------------------------------------------------------------------*
*& Report ZSENDEMAIL08
*&
*&---------------------------------------------------------------------*

REPORT zsendemail08.

CONSTANTS:
gc_tab TYPE c VALUE cl_bcs_convert=>gc_tab, "CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
gc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf. "CL_ABAP_CHAR_UTILITIES=>CR_LF

PARAMETERS: mailto TYPE ad_smtpadr DEFAULT 'justin.ding@usisz.com.cn'. " 收件人

DATA send_request TYPE REF TO cl_bcs.
DATA document TYPE REF TO cl_document_bcs.
DATA recipient TYPE REF TO if_recipient_bcs.
DATA bcs_exception TYPE REF TO cx_bcs.

DATA main_text TYPE bcsy_text.
DATA binary_content TYPE solix_tab.
DATA size TYPE so_obj_len.
DATA sent_to_all TYPE os_boolean.


START-OF-SELECTION.

PERFORM create_content.
PERFORM send.

*&---------------------------------------------------------------------*
*& Form create_content
*&---------------------------------------------------------------------*
* Create Example Content
* 1) Write example text into a string
* 2) convert this string to solix_tab
*----------------------------------------------------------------------*
FORM create_content.

DATA lv_string TYPE string.
DATA ls_t100 TYPE t100.

* --------------------------------------------------------------
* as example content we use some system messages out of t100
* get them for all installed languages from db
* and write one line for each language into the spread sheet
* columns are separated by TAB and each line ends with CRLF

CONCATENATE 'This Is Just Example Text!'
gc_crlf gc_crlf
INTO lv_string.

DO 10 TIMES.
CONCATENATE lv_string
'1111111111111111111111111111111111111111111111111111111111111' gc_tab
'2222222222222222222222222222222222222222222222222222222222222' gc_tab
'3333333333333333333333333333333333333333333333333333333333333' gc_tab
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' gc_tab
'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb' gc_tab
'ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc' gc_tab
'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd' gc_tab
'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' gc_tab
'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' gc_tab
'ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg' gc_tab
'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh' gc_tab
'iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii' gc_tab
'jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj' gc_tab
'kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' gc_crlf
INTO lv_string.
ENDDO.
* --------------------------------------------------------------
* convert the text string into UTF-16LE binary data including
* byte-order-mark. Mircosoft Excel prefers these settings
* all this is done by new class cl_bcs_convert (see note 1151257)

TRY.
cl_bcs_convert=>string_to_solix(
EXPORTING
iv_string = lv_string
iv_codepage = '4103' "suitable for MS Excel, leave empty
iv_add_bom = 'X' "for other doc types
IMPORTING
et_solix = binary_content
ev_size = size ).
CATCH cx_bcs.
MESSAGE e445(so).
ENDTRY.

ENDFORM. "create_content

*---------------------------------------------------------------
* NOTES:
*---------------------------------------------------------------
* UTF-16LE including the BOM (Byte order mark)
* is preferred by Microsoft Excel. If you want to create
* other binary content you may choose another codepage (e.g.
* '4110' (UTF-8) which is standard for e-mails).
* Find SAP codepage names in the drop down list
* for the codepage setting of node SMTP in transaction SCOT.
* Or: leave iv_codepage and iv_add_bom empty. Then the target
* codepage is set according to SAPconnect settings
*
* Important:
* SAP neither guarantees that the attachment created
* by this report can be opened by all Excel Versions nor
* that it can be opened by any 3rd party software at all

*&---------------------------------------------------------------------*
*& Form send
*&---------------------------------------------------------------------*
FORM send.

TRY.

* -------- create persistent send request ------------------------
send_request = cl_bcs=>create_persistent( ).

* -------- create and set document with attachment ---------------
* create document object from internal table with text
APPEND 'Hello world!' TO main_text. " 邮件内容
document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = main_text
i_subject = 'Test Created By BCS_EXAMPLE_7' ). " 邮件主题名

* add the spread sheet as attachment to document object
document->add_attachment(
i_attachment_type = 'xls' " 附件格式
i_attachment_subject = 'ExampleSpreadSheet' " attachment name
i_attachment_size = size "附件大小
i_att_content_hex = binary_content ). "附件内容

* add document object to send request
send_request->set_document( document ).

* --------- add recipient (e-mail address) -----------------------
* create recipient object
recipient = cl_cam_address_bcs=>create_internet_address( mailto ).

* add recipient object to send request
send_request->add_recipient( recipient ).

* ---------- send document ---------------------------------------
sent_to_all = send_request->send( i_with_error_screen = 'X' ).

COMMIT WORK.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
IF sent_to_all IS INITIAL.
MESSAGE i500(sbcoms) WITH mailto.
ELSE.
MESSAGE s022(so).
ENDIF.
* ------------ exception handling ----------------------------------
* replace this rudimentary exception handling with your own one !!!
CATCH cx_bcs INTO bcs_exception.
MESSAGE i865(so) WITH bcs_exception->error_type.
ENDTRY.

ENDFORM. "send

转载于:https://www.cnblogs.com/rainysblog/p/4135966.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ABAP 发邮件(三) 的相关文章

  • img图片在限定尺寸下等比缩放;点击查看原图

    一 图片等比缩放 效果 html div class row img src div div class row div 查看原图 div div css 对img外层div尺寸限制 img长宽自适应 imgbox max width 10
  • Vue脚手架

    安装 前提 Node js安装 打开想要建脚手架的文件夹 把文件夹的地址改为cmd打开终端输入以下代码 1 执行npm install g vue cli安装脚手架 2 安装完成后 可以使用vue version 3 我们测试下 在桌面创建
  • 微软网盘onedrive

    将微软网盘 做成一个共享网站 好处就是可以分享大文件 而且还不限制下载速度 如果你受够了百度网盘的限速 可以试试这个 来看看常见的几款Onedrive网盘程序 1 OneIndex 第一个微软网盘分享程序 php编写 兼容性好 我在用 作者
  • Qt鼠标事件

    新建桌面应用程序testMouseEvent 类名MouseEvent 基类QMainWindow 通过重写鼠标事件达到跟踪鼠标位置的效果 添加2个标签做转态及位置更新用 重写鼠标事件 mouseevent h ifndef MOUSEEV
  • 早早踏入刷脸支付市场的人收获颇丰

    支付行业是永远不会萧条的行业 因为只要市场上存在交易 有资金流通就需要支付工具的支撑 不仅如此 支付行业的收入十分稳定 它产生的利润不会受商品价位变化的周期性影响 无论商家经营好坏 它的利润都是保持不变的 所以支付行业对于一些追求持续稳定利
  • 基于python的数字图像处理--学习笔记(三)

    基于python的数字图像处理 学习笔记 三 前言 一 灰度拉伸 二 幂律 伽马 变换 三 对数变换 前言 进入冈萨雷斯的第三章内容 并用python实现功能 我更改了代码源 之前找到太烂了 代码全是错 现在使用的代码很清晰 功能也很全 一
  • pytorch: where、gather函数

    一 where函数 torch where condition x y out x if condition is 1 y if condition is 0 In 29 cond torch rand 2 2 In 30 cond Out
  • Python-Numpy多维数组--切片,索引,高级索引,布尔索引

    一 Numpy 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改 就像 Python 的内置容器对象一样 如前所述 ndarray对象中的元素遵循基于零的索引 有三种可用的索引方法类型 字段访问 基本切片和高级索引 基本切
  • 苹果公司开始招人发力6G无线技术,你们怎么看?

    全球财经观察 新闻速递 看行业 根据彭博社的Mark Gurman发现的招聘信息 苹果正在招聘工程师 从事下一代6G无线技术的研发 根据Gurman的报道 这些职位位于苹果公司在硅谷和圣迭戈办公室 该公司在那里从事无线技术研发和芯片设计 新
  • 设计模式--工厂模式--抽象工厂模式

    工厂模式属于创建型模式基本原理 使用一个工厂类统一生产各种产品 主要流程 1 创建产品的基类 便于统一返回创建的产品 2 创建各种产品 继承基类 注意多态 3 创建工厂类 对每种产品进行区分创建 4 在使用时要先实例化工厂类 在调用期内生产
  • 洛谷-【入门1】顺序结构——C语言

    1 Hello World 题目描述 编写一个能够输出 Hello World 的程序 include
  • iframe 父子组件通信 vue3

    父组件
  • hadoop作业执行流程及代码简略解读

    hadoop作业执行流程及代码简略解读 本文 参考了网上的博文 出处也不知是哪里 不好意思 最近整理磁盘文档发现的好资料所以整理补充了一下供大家学习参考一下吧 1 主要组成部分 Hadoop包括hdfs与mapreduce两部分 hdfs则
  • 区块链密码学学习笔记

    一 哈希算法 哈希函数是将任意长度的二进制明文通过算法处理映射为较短且固定长度的 二进制值 映射后的值也被称为哈希值 哈希值的数据唯一 且形式紧凑 即使只是变更明文中的一个字母 最终得到的哈希值也会发生变更 由于哈希算法本身的特点 任何人都
  • 微信OAuth总结

    基本流程 首先需要登录微信公众号管理后台 配置允许跳转的域名 该域名必须是2级域名 不支持1级域名 所以数量有限 需要规划好 比如配置了a exmaple com为跳转域名 就无法再跳转到b example com了 如果这里配置错误的话
  • Android 学习笔记

    目录 一 Android入门 1 Android 概述 2 Android Studio 3 创建模拟器 4 使用外部模拟器 5 第一个app 二 app开发基础 1 开发语言 2 app工程目录结构 3 文本控件TextView 1 设置
  • 将Eclipse设置为中文

    文章目录 前言 将Eclipse设置为中文 总结 前言 Eclipse默认是英文的 本文详细描述了Eclipse的汉化过程 提示 以下是本篇文章正文内容 下面案例可供参考 将Eclipse设置为中文 语言包下载链接 www eclipse
  • Jenkins 集成Gitlab pipeline,web hook

    Jenkins 集成Gitlab Jenkins构建步骤 Jenkins pipeline语法 pipeline 测试 配置Jenkins 连接到 Gitlab 实现拉取代码 gitlab 创建组 项目 Jenkins Jenkins语法生
  • 抽象类的理解

    package com test basic chapter4 abstractDemo 一 java抽象类的作用 java抽象类的作用具体的可以分成以下的三点 1 抽象类通常都是用来表征对问题领域进行分析 设计中得出的抽象概念 是对大多数
  • ue4+cesium插件或者landscape去做地形

    突然想起一事 去年ue4和cesium似乎联合了 landscape也是做地形的 等到osgearth调试完后 转战ue4时 再去重点进行下

随机推荐

  • IntelliJ IDEA svn提交报错 E000060

    IntelliJ IDEA svn提交报错 E000060 IntelliJ IDE 用svn提交代码时候出现异常 导致提交不了 但是可以下载 说明与svn服务器的链接是没有问题的 提交时候错误信息如下 0 files committed
  • 【项目实战一】基于人工神经网络ANN的车牌识别

    前言 车牌识别技术的发展与推广有利于加强对道路交通的管理 与人民出行安全息息相关 该项目实战非常适合各位读者作为本科毕业设计 课程设计或者其它进行学习 相信对大家会有很大帮助 如果需要完整源码 大家可以在评论区留言 小编会在第一时间提供给你
  • 数据结构和算法(双向链表和单向环型链表-Josephu问题)

    为什么会有双向链表 单链表的缺点分析 单向链表 查找的方向只能是一个方向 而双向链表可以向前或者向后查找 单向链表不能自我删除 需要考辅助节点 而双向链表 则可以自我删除 双向链表的结构 每个节点都有next和pre指针 next指向后 p
  • Qt-信号槽

    1 信号槽的概念 信号槽是Qt基于C 语法上新增的特性 可以实现对象之间的通信 形成一定因果关系 使用信号槽的对象需要具备两个条件 通信的对象必须继承自QObject 类中要有Q OBJECT宏 信号槽是观察者模式的一种实现 或者说是一种升
  • python使用第三方库PyPDF2、PDFMiner或pdfplumber来解析PDF文件

    使用第三方库PyPDF2 PDFMiner或pdfplumber来解析PDF文件可以实现PDF文件的内容提取 搜索和修改等功能 下面是使用PDFMiner来解析PDF文件的安装说明和代码示例 PDFMiner 下面是一些PDFMiner的常
  • IP总数,子网掩码查询表

    IP总数 子网掩码查询表 不同位数的网络号对应的子网以及主机数
  • 刷脸支付面向全国诚招实力合作商政策置顶

    刷脸支付在各大商店 餐馆逐渐铺开 消费者在购物付款时 不用打开手机二维码 只是看一眼支付设备就能轻松完成付款 从到地方的媒体 都在关注 刷脸支付 甚至会认为刷脸支付会代替现在的流行的二维码支付 成为未来支付的主流 刷脸支付正在掀起新零售新浪
  • 2022人生除生死外,无大事——一边治愈,一边前行!

    今天看完了 人生大事 这个电影 灵动的小姑娘 痞帅的朱一龙 一个殡葬师的生活在这个小姑娘的闯入后 开始有了波澜 活力 他逐渐找到了生活的意义和方向 挺好评的一部电影 虽然是关于离别 死亡 却是在很欢快嘈杂的情境下穿插着的 有泪有笑有温情 人
  • NRF24L01 一对三通信

    注意 NRF24L01 无论是一对一通信 还是一对多通信 其实本质上同一时刻是一对一通信 它是属于半双工通信 你只需要先调通一对一的通信 无论是一对2 一对六也是同一个原理 基础SPI知识和NRF24L01基础知识不多说 一 项目背景 1
  • jupyter lab使用

    记录一下使用过程中遇到的问题以及解决方法 网上资料感觉说的不是很明白 还是截图好用 增加行序号 自动换行 折叠代码 查找及替换 malplotlib 增加行序号 自动换行 折叠代码 打开setting 进入setting editor页面
  • xtrabackup 全量备份、恢复数据

    1 全量备份 root localhost lib innobackupex defaults file defaults file user mysql username password mysql password stream ta
  • seaborn.distplot()

    参考https www cntofu com book 172 docs 24 md 一 函数 seaborn distplot a bins None hist True kde True rug False fit None hist
  • 在家干什么副业好?工作之余做什么副业比较好

    现在真的到了一个副业时代 人人都可以做副业 不仅可以增加一份收入 还可以拓宽视野 增加阅历 如果是在家里做副业的话 那么还是推荐网络短视频 直播和写作 这也是普通人最容易上手的副业 1 拍游戏视频 既然大家这么喜欢玩游戏 那就把平时刷视频的
  • layui的layer弹出层和form表单

    参考文献 含代码 http www shagua wiki project 3 p 113
  • 【Git】如何在Vscode中使用码云(Gitee)实现远程代码仓库与本地同步?(新手图文教程)

    一 安装git 直接参照下面的链接就OK Git Git的下载 安装与配置教程 图文 敦厚的曹操的博客 CSDN博客 git下载教程 Git Git的下载与安装教程 图文https blog csdn net dxnn520 article
  • 高防CDN和高防IP防护的不同之处

    网站的运行离不开服务器 服务器在使用的过程中不可避免的会遇到一些攻击 需要做好相应的安全防护 那么 在安全防护上 服务器使用CDN与高防IP具体有什么不同之处呢 一 IP数量 CDN是一组ip的防护 是共享的ip 高防ip独享的ip防护 二
  • 2021-10-17 stm32f103 睡眠模式唤醒

    1 开启 睡眠时钟 2 打开 WFI 3 GPIO 1 GPIO内部电路图 下面转载 https blog csdn net xiewenhao12 article details 89030398 1 根据设备原理图查看IO外部引脚连接电
  • 13.108.Spark 优化、Spark优化与hive的区别、SparkSQL启动参数调优、四川任务优化实践:执行效率提升50%以上

    13 108 Spark 优化 1 1 25 Spark优化与hive的区别 1 1 26 SparkSQL启动参数调优 1 1 27 四川任务优化实践 执行效率提升50 以上 13 108 Spark 优化 1 1 25 Spark优化与
  • pluto实现分析(5)

    本文档的Copyleft归yfydz所有 使用GPL发布 可以自由拷贝 转载 转载时请保持文档的完整性 严禁用于任何商业用途 msn yfydz no1 hotmail com 来源 http yfydz cublog cn 7 内核接口
  • ABAP 发邮件(三)

    转自http blog sina com cn s blog 7c7b16000101bnxk html SAP ABAP 发邮件方法三 OO Report ZSENDEMAIL08 REPORT zsendemail08 CONSTANT