S/4 HANA 中的 Email Template
电子邮件是非常常见的业务需求。 SAP 了解这一点,并在 S/4 HANA(cloud和on premise)中引入了非常有趣的功能——Email Template。它将CDS视图和HTML模板结合了起来,提供了方便的邮件功能。 本文将提供Email Template的概述和演示。
本文链接:https://www.cnblogs.com/hhelibeb/p/16626455.html
英文原文:E-Mail Templates in S/4 HANA
Email Template是什么?
借助 S/4 HANA 输出管理,SAP 提供了要配置的电子邮件模板,这些模板会映射到 BRF+ 中的输出类型。 我们可以在这些电子邮件模板中维护不同语言的 HTML 和纯文本,还可以映射 CDS 视图以处理动态变量。 该功能可以维护电子邮件内容,并节省大量硬编码或其他常见自定义开发。 尽管在 S/4 HANA 中,SAP在输出管理中使用电子邮件模板,但我们仍然可以独立使用此功能,我们将在下面演示它的用法。
前提
- CDS视图基本知识
- 熟练掌握ABAP
- HTML基本知识
如何创建Email Template?
没有特定的事务用于创建电子邮件模板,我们可以将其创建为 SE80 事务中的存储库对象,如下所示:
1,选择包(或本地对象)并右键单击。
2,选择“创建”->“更多”->“电子邮件模板”

尽管如此,对于已有的Email Template,可以使用程序SMTG_WB_START来查看/编辑。
标题
- 需要维护电子邮件模板的名称/描述。
- 此外,我们可以维护一个 CDS 视图,该视图应该是预先交付的,可用于在电子邮件内容(正文或主题)中提供动态变量。

文本
- Languages 维护不同语言的电子邮件
- CDS Fields 邮件内容中使用的一组 CDS 视图字段
- Email Subject 邮件主题
- Body HTML HTML 格式的邮件正文内容
- Body Plain Text 纯文本邮件正文内容

邮件内容中的动态变量
为了维护动态变量,我们需要创建一个包含所需数据的 CDS 视图。 对于每个不同的电子邮件变量,可以将带有名称/值对的 CDS Key传递给电子邮件模板 API 类,并简单地地将变量替换为所需的内容。
创建一个CDS视图ZRSCDS_INVOICE_DATA(在这个示例里是Billing的抬头和行项目)
@AbapCatalog.sqlViewName: 'ZRSCDS_INVDATA'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Invoice Data Line Item wise'
//@VDM.viewType:#BASIC
define view ZRSCDS_INVOICE_DATA
as select from vbrk as zzrs_vbrk
join vbrp as zzrs_vbrp
on zzrs_vbrk.vbeln = zzrs_vbrp.vbeln
{
key zzrs_vbrk.vbeln,
key zzrs_vbrp.posnr,
zzrs_vbrk.fkart,
zzrs_vbrk.vbtyp,
@Semantics.currencyCode: true
zzrs_vbrk.waerk,
zzrs_vbrk.vkorg,
zzrs_vbrk.fkdat,
@Semantics.amount.currencyCode: 'waerk'
@DefaultAggregation: #SUM
zzrs_vbrk.netwr,
zzrs_vbrk.kunag as kunag,
zzrs_vbrp.fkimg,
zzrs_vbrp.vrkme,
zzrs_vbrp.meins,
zzrs_vbrp.matnr
}
在Email template Header中指定CDS,

在Body中使用{{}}指定CDS视图字段,类似于string template,

邮件预览
可以通过单击“预览”按钮来预览我们的电子邮件模板发送后的样子:

如何调用Email Template
到目前为止,我已经在系统中创建了电子邮件模板。 现在,我想将其集成到一个向客户发送电子邮件的程序中,电子邮件内容将从模板中获取。 为了演示,我创建了一个简单的程序,我可以在其中传递接收者电子邮件地址、电子邮件模板、语言和 CDS Key(在上面的例子中是Billing)。
SAP 提供了电子邮件模板 API 类,可以实例化并用于获取电子邮件内容。 步骤如下:
"创建 CL_SMTG_EMAIL_API 实例
DATA(lo_email_api) = cl_smtg_email_api=>get_instance( iv_template_id = p_em_id ).
"创建 CL_BCS 实例
DATA(lo_bcs) = cl_bcs=>create_persistent( ).
"准备CDS视图KEY
DATA(lt_cds_key) = VALUE ty_gt_data_key( ( name = 'vbeln' value = p_vbeln ) ).
"通过email实例集成邮件主题和正文
lo_email_api->render_bcs( io_bcs = lo_bcs iv_language = p_spras it_data_key = lt_cds_key ).
"设置发件人、收件人并发送 " Set Email Sender
DATA(lo_sender) = cl_sapuser_bcs=>create( sy-uname ). lo_bcs->set_sender( i_sender = lo_sender ). " Set Email Receiver(s)
DATA(lo_recipient) = cl_cam_address_bcs=>create_internet_address( p_rec ).
lo_bcs->add_recipient( EXPORTING i_recipient = lo_recipient ). " Send Email
lo_bcs->send( ).
选择屏幕示例

收到的动态变量被替换的邮件,

S/4 HANA 中的 Email Template的更多相关文章
- 怎么加 一个 hyperlink 到 e-mail template for CRM
Recently I had a client inquire as to how one would insert a hyperlink into a CRM email template. Wh ...
- SAP HANA 中的决策表(Decision Table)
http://scn.sap.com/community/developer-center/hana/blog/2013/01/11/what-can-you-do-with-decision-tab ...
- SAP HANA中创建计算视图(Calculation View)
[Step By Step]SAP HANA中创建计算视图(Calculation View) Demo Instruction: 该视图将两个表AUDIOBOOKS和BOOKS中的数据进行连接,并作 ...
- SAP HANA中的SLT简介
在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作.对于这种需求,除了开发ABAP接口之外,也有高效的工具可用.SLT就是其中之一. SLT是SAP的第一个ETL(Ext ...
- S/4 HANA中的MATDOC和MATDOC_EXTRACT
最近做了销售和物料管理方面的一些需求,因此对S/4中的MM的数据模型有了一定的了解.目前网络已经有一些介绍物料凭证表MATDOC的文章,内容好像不是很详细,另外也没发现介绍库存变更数据表MATDOC_ ...
- Accept Job Offer Email Template
Accept Job Offer Email Template <Date> <Hiring Manager’s name> <Company name> < ...
- S/4 HANA中发票输出切换回NAST
在S/4 HANA中,新的输出管理Output Management叫做SAP S/4HANA output control(输出控制),是基于BRF+的,而不是原来基于NAST的.关于S4新的输出控 ...
- html & email template
html & email template inline style build tools https://templates.mailchimp.com/getting-started/h ...
- ES6, Angular,React和ABAP中的String Template(字符串模板)
String Template(字符串模板)在很多编程语言和框架中都支持,是一个很有用的特性.本文将Jerry工作中使用到的String Template的特性做一个总结. ES6 阮一峰老师有一个专 ...
- 【HANA系列】SAP HANA中null变成问号的问题
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA中null变成问 ...
随机推荐
- linux查看资源使用情况
linux查看资源使用情况 top -c # 查看资源使用情况 top 输出如下内容 top - 14:54:21 up 95 days, 20:03, 3 users, load average: ...
- JDK8 ::用法(双冒号)
JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下. List<String> lt = Arrays.asList(&q ...
- 自己写个网盘系列:③ 开源这个网盘编码,手把手教你windows linux 直接部署,docker本地打包部署网盘应用
系列①②已经完成了这个项目的页面和项目的全部编码,前后端分离,这个文章将向你展示运维小伙伴如何部署到windows服务器,linux服务器,docker部署,一学就会,快来看看吧! 说明:这个系列准备 ...
- 基于rv1126 rkmeida 一路多出 原理
基于rv1126 rkmeida 一路多出的坑 首先说要的是介绍一下rkmedia 相关内容 RKMedia提供了一种媒体处理方案,可支持应用软件快速开发.RKMedia在各模块基础API上做进一 ...
- 新前言with留言板
旧博客也是会用的,但是现在只用博客园写博客,平时csdn的东西也会凑凑热闹 欢迎各位julao来留言板留言 /* ID:lemondi1 LANG:C++ TASK:test */ #include ...
- #贪心,构造#AT2266 [AGC008D] K-th K
题目 给你一个长度为 \(N\) 的整数序列 \(X\),请判断是否存在一个满足下列条件的整数序列 \(a\),如果存在,请构造一种方案 条件如下: \(a\) 的长度为 \(N^2\),并且满足数字 ...
- 中文GPTS详尽教程,字节扣子Coze插件使用全输出
今天,斜杠君和大家分享如何在字节扣子Coze中创建插件,并在创建后如何使用这个插件. 一.新建插件 首先,进入到插件页面,创建一个插件. https://www.coze.cn/home 点击左侧的个 ...
- Jetty的server模块
启用server模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=server 命令的输出,如下: INFO : server init ...
- Elasticjob 3.x 最新版本源码解读(含备注源码)
源码地址(含备注):https://gitee.com/ityml/elastic-job-zgc 官方网站: https://shardingsphere.apache.org/elasticjob ...
- 一文带你详细了解HarmonyOS折叠屏设计规范!
原文:https://mp.weixin.qq.com/s/G25IbfcX2Bq9s1IDPCELGw,点击链接查看更多技术内容. 随着新一代折叠屏手机HUAWEI Mate Xs 2发布,Harm ...