SAMRTFORMS 转换PDF 发送邮件
最终成果:

*&---------------------------------------------------------------------**& Report ZLC_FIND_EXIT*&---------------------------------------------------------------------**&根据T-CODE / 程序名查询出口、BADI增强*&---------------------------------------------------------------------*REPORT ZEDIT_G."打印参数DATA:LV_FMNAME TYPE RS38L_FNAM,LS_CTRLOP TYPE SSFCTRLOP,LS_COMPOP TYPE SSFCOMPOP,LS_RETURN TYPE SSFCRESCL,LS_INFO TYPE SSFCRESCL,LS_OPTIONS TYPE SSFCRESOP."附件参数DATA:LT_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,LT_TLINE TYPE TLINE OCCURS 0 WITH HEADER LINE,LT_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE."邮件参数DATA:LV_SIZE TYPE I, "邮件附件大小LV_LINES_TXT TYPE I, "邮件文本行数LV_LINES_BIN TYPE I, "邮件附件行数LV_BENFILE TYPE XSTRING,LV_OBJECT TYPE CHAR50, "邮件主题LV_PDFNAME TYPE CHAR50,GT_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE, "邮件内容 正文+附件GT_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE, "正文内容GT_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE, "附件内容GT_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE, "收件人LS_DOC_CHNG TYPE SODOCCHGI1. "邮件属性"打印控制LS_CTRLOP-NO_OPEN = 'X'.LS_CTRLOP-NO_CLOSE = 'X'.LS_CTRLOP-GETOTF = 'X'. "这个必须要打上标记,否则无法获取打印页面数据LS_CTRLOP-LANGU = '1'.LS_CTRLOP-NO_DIALOG = 'X'.LS_COMPOP-TDNOPREV = 'X'.CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGFORMNAME = 'ZTEST001' "创建的SMARTFORMS表单名称IMPORTINGFM_NAME = LV_FMNAMEEXCEPTIONSNO_FORM = 1NO_FUNCTION_MODULE = 2OTHERS = 3.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.CALL FUNCTION 'SSF_OPEN' "打开打印页面EXPORTINGOUTPUT_OPTIONS = LS_COMPOPCONTROL_PARAMETERS = LS_CTRLOPUSER_SETTINGS = 'X'IMPORTINGJOB_OUTPUT_OPTIONS = LS_OPTIONSEXCEPTIONSFORMATTING_ERROR = 1INTERNAL_ERROR = 2SEND_ERROR = 3USER_CANCELED = 4OTHERS = 5.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.CALL FUNCTION LV_FMNAME 调用打印表单接口函数EXPORTINGOUTPUT_OPTIONS = LS_COMPOPCONTROL_PARAMETERS = LS_CTRLOPUSER_SETTINGS = ' 'IMPORTINGJOB_OUTPUT_INFO = LS_RETURNEXCEPTIONSFORMATTING_ERROR = 1INTERNAL_ERROR = 2SEND_ERROR = 3USER_CANCELED = 4OTHERS = 5.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ELSE.ENDIF.CALL FUNCTION 'SSF_CLOSE' "关闭打印表单IMPORTINGJOB_OUTPUT_INFO = LS_INFOEXCEPTIONSFORMATTING_ERROR = 1INTERNAL_ERROR = 2SEND_ERROR = 3OTHERS = 4.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ELSE.APPEND LINES OF LS_INFO-OTFDATA TO LT_OTF.ENDIF.CALL FUNCTION 'CONVERT_OTF' "转换PDF格式EXPORTINGFORMAT = 'PDF'PDF_USERNAME = 'TIANCZ'IMPORTINGBIN_FILESIZE = LV_SIZEBIN_FILE = LV_BENFILETABLESOTF = LT_OTFLINES = LT_TLINEEXCEPTIONSERR_MAX_LINEWIDTH = 1ERR_FORMAT = 2ERR_CONV_NOT_POSSIBLE = 3ERR_BAD_OTF = 4OTHERS = 5.IF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.IF LV_BENFILE IS NOT INITIAL.CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' "转换PDF添加邮件附件EXPORTINGBUFFER = LV_BENFILEIMPORTINGOUTPUT_LENGTH = LV_SIZETABLESBINARY_TAB = LT_RECORD.ENDIF.REFRESH:GT_RECLIST,GT_OBJTXT,GT_OBJBIN,GT_OBJPACK.CLEAR: LS_DOC_CHNG."将转换后的文件添加到邮件附件APPEND LINES OF LT_RECORD TO GT_OBJBIN."添加邮件正文GT_OBJTXT = ''.APPEND GT_OBJTXT.GT_OBJTXT = '邮件测试,包含一个PDF附件'.APPEND GT_OBJTXT."邮件正文行数LV_LINES_TXT = LINES( GT_OBJTXT ).LV_OBJECT = '邮件测试'.LV_PDFNAME = 'SM转换的PDF文件.pdf'.LS_DOC_CHNG-OBJ_LANGU = SY-LANGU.LS_DOC_CHNG-OBJ_NAME = 'Email'.LS_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.LS_DOC_CHNG-OBJ_DESCR = LV_OBJECT. "邮件主题LS_DOC_CHNG-SENSITIVTY = 'F'.LS_DOC_CHNG-DOC_SIZE = LV_LINES_TXT * 255 + LV_SIZE.LS_DOC_CHNG-PRIORITY = '1'.CLEAR GT_OBJPACK-TRANSF_BIN.GT_OBJPACK-HEAD_START = 1.GT_OBJPACK-HEAD_NUM = 0.GT_OBJPACK-BODY_START = 1.GT_OBJPACK-BODY_NUM = LV_LINES_TXT.GT_OBJPACK-DOC_TYPE = 'RAW'.APPEND GT_OBJPACK.CLEAR:LV_LINES_BIN.GT_OBJPACK-TRANSF_BIN = 'X'.GT_OBJPACK-HEAD_START = 1.GT_OBJPACK-HEAD_NUM = 1.GT_OBJPACK-BODY_START = 1.LV_LINES_BIN = LINES( LT_RECORD ).GT_OBJPACK-DOC_SIZE = LV_SIZE .GT_OBJPACK-BODY_NUM = LV_LINES_BIN.GT_OBJPACK-DOC_TYPE = 'PDF'.GT_OBJPACK-OBJ_NAME = 'PO'.GT_OBJPACK-OBJ_DESCR = LV_PDFNAME.APPEND GT_OBJPACK.GT_RECLIST-RECEIVER = 'XXXXX@163.com'."收件人邮箱GT_RECLIST-REC_TYPE = 'U'.APPEND GT_RECLIST.CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'EXPORTINGDOCUMENT_DATA = LS_DOC_CHNG " 邮件属性PUT_IN_OUTBOX = ''COMMIT_WORK = 'X'TABLESPACKING_LIST = GT_OBJPACK " 邮件内容CONTENTS_BIN = GT_OBJBIN " 附件内容(二进制)CONTENTS_TXT = GT_OBJTXT " 邮件内容(直接填入)RECEIVERS = GT_RECLIST " 收件箱地址EXCEPTIONSTOO_MANY_RECEIVERS = 1DOCUMENT_NOT_SENT = 2DOCUMENT_TYPE_NOT_EXIST = 3OPERATION_NO_AUTHORIZATION = 4PARAMETER_ERROR = 5X_ERROR = 6ENQUEUE_ERROR = 7OTHERS = 8.IF SY-SUBRC = 0.MESSAGE '发送成功!' TYPE 'S'.WAIT UP TO 1 SECONDS.SUBMIT RSCONN01 WITH MODE = 'INT'WITH OUTPUT = ''AND RETURN.ELSE.MESSAGE '发送失败!' TYPE 'S'.ENDIF.
T-CODE:SOST--查看邮件发送情况:

可参考学习笔记:https://www.cnblogs.com/StephenAmell/p/17414767.html
相关文章:
SAMRTFORMS 转换PDF 发送邮件
最终成果: *&---------------------------------------------------------------------**& Report ZLC_FIND_EXIT*&---------------------------------------------------------------------**&根据T-CODE / 程序名查询出口、BADI增强*&-------…...
探讨在大数据体系中API的通信机制与工作原理
** 引言 关联阅读博客文章:深入解析大数据体系中的ETL工作原理及常见组件 关联阅读博客文章:深入理解HDFS工作原理:大数据存储和容错性机制解析 ** 在当今数字化时代,数据已经成为企业发展和决策的核心。随着数据规模的不断增长…...
算法打卡day23
今日任务: 1)39. 组合总和 2)40.组合总和II 3)131.分割回文串 39. 组合总和 题目链接:39. 组合总和 - 力扣(LeetCode) 给定一个无重复元素的数组 candidates 和一个目标数 target ,…...
每天五分钟深度学习:神经网络和深度学习有什么样的关系?
本文重点 神经网络是一种模拟人脑神经元连接方式的计算模型,通过大量神经元之间的连接和权重调整,实现对输入数据的处理和分析。而深度学习则是神经网络的一种特殊形式,它通过构建深层次的神经网络结构,实现对复杂数据的深度学习…...
基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络(CNN)在时间序列中的应用 4.2 长短时记忆网络(LSTM)处理序列依赖关系 4.3 注意力机制(Attention) 5…...
物联网监控可视化是什么?部署物联网监控可视化大屏有什么作用?
随着物联网技术的深入应用,物联网监控可视化成为了企业数字化转型的关键环节。物联网监控可视化大屏作为物联网监控平台的重要组成部分,能够实时展示物联网设备的运行状态和数据,为企业管理决策和运维监控提供了有力的支持。今天,…...
设计一个Rust线程安全栈结构 Stack<T>
在Rust中,设计一个线程安全的栈结构Stack<T>,类似于Channel<T>,但使用栈的FILO(First-In-Last-Out)原则来在线程间传送数据,可以通过使用标准库中的同步原语如Mutex和Condvar来实现。下面是一个…...
Docker Desktop 在 Windows 上的安装和使用
目录 1、安装 Docker Desktop 2、使用 Docker Desktop (1)运行容器 (2)查看容器信息 (3)数据挂载 Docker Desktop是Docker的官方桌面版,专为Mac和Windows用户设计,提供了一个简…...
2024年最受欢迎的 19 个 VS Code 主题排行榜
博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …...
突破编程_C++_网络编程(OSI 七层模型(物理层与数据链路层))
1 OSI 七层模型概述 OSI(Open Systems Interconnection)七层模型,即开放系统互联参考模型,起源于 20 世纪 70 年代和 80 年代。随着计算机网络技术的快速发展和普及,不同厂商生产的计算机和网络设备之间的互操作性成为…...
Spring boot如何使用redis缓存
引入依赖 这个是参照若依的,如果没有统一的版本规定的话,这里是需要写版本号的 <!-- redis 缓存操作 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</arti…...
红蓝色WordPress外贸建站模板
红蓝色WordPress外贸建站模板 https://www.mymoban.com/wordpress/5.html...
python爬虫----了解爬虫(十一天)
🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…...
碳素光线疗法与宠物健康
碳素光线与宠物健康 生息在地球上的所有动物、在自然太阳光奇妙的作用下、生长发育。太阳光的能量使它们不断进化、繁衍种族。现在、生物能够生存、全仰仗于太阳的光线。太阳光线中、包含有动物健康所需要的极为重要的波长。因此、和户外饲养的动物相比、在室内喂养的观赏动物、…...
展锐平台camera添加底层水印
展锐平台camera添加水印,从底层用编码覆盖图像数组,保证上层获取图像水印的一致性 时间水印diff --git a/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3HWI.cpp b/vendor/sprd/modules/libcamera/hal3_2v6/SprdCamera3HWI.cpp index f2b704f9d6..…...
OSX-02-Mac OS应用开发系列课程大纲和章节内容设计
本节笔者会详细介绍下本系统专题的大纲,以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图,因为比较重要,在这里再冗余介绍一下。开发Apple公司相关产品的软件时,主要有两个框架…...
热门IT【视频教程】-华为/思科/红帽/oracle
华为认证 网络工程师-入门基础课:华为HCIA认证课程介绍-CSDN博客 网络工程师进阶课:华为HCIP认证课程介绍-CSDN博客 职场进阶,踏上高峰——HCIE-Datacom认证-CSDN博客 华为HCIA试听课程 : 超级实用,华为VRP系统文件…...
HCTNet:一种用于乳腺超声图像分割的混合CNN-transformer
HCTNet:一种用于乳腺超声图像分割的混合CNN-transformer 摘要引言相关工作方法 Materials and methods分割方法 HCTNet_ A hybrid CNN-transformer network for breast ultrasound image segmentation 摘要 乳腺超声图像的自动分割有助于提高乳腺癌诊断的准确性。近…...
766. 托普利茨矩阵
给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。 示例 1: 输入:matr…...
基于STM32的汽车防窒息系统
文章目录 基于STM32的汽车防窒息系统系统简介材料展示视频制作硬件连接原理图PCB实物图GSM模块使用GSM模块代码 SGP30模块SGP30模块代码 步进电机驱动步进电机代码 其他模块主逻辑代码 总结 基于STM32的汽车防窒息系统 系统简介 随着社会的发展目前汽车的流行,汽车大…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
