电子邮件是非常常见的业务需求。 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 视图,该视图应该是预先交付的,可用于在电子邮件内容(正文或主题)中提供动态变量。

文本

  1. Languages             维护不同语言的电子邮件
  2. CDS Fields             邮件内容中使用的一组 CDS 视图字段
  3. Email Subject         邮件主题
  4. Body HTML            HTML 格式的邮件正文内容
  5. 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的更多相关文章

  1. 怎么加 一个 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 ...

  2. SAP HANA 中的决策表(Decision Table)

    http://scn.sap.com/community/developer-center/hana/blog/2013/01/11/what-can-you-do-with-decision-tab ...

  3. SAP HANA中创建计算视图(Calculation View)

    [Step By Step]SAP HANA中创建计算视图(Calculation View) Demo Instruction: 该视图将两个表AUDIOBOOKS和BOOKS中的数据进行连接,并作 ...

  4. SAP HANA中的SLT简介

    在以SAP系统作为主要ERP的企业中,不同系统之间的数据库数据同步是个重要的工作.对于这种需求,除了开发ABAP接口之外,也有高效的工具可用.SLT就是其中之一. SLT是SAP的第一个ETL(Ext ...

  5. S/4 HANA中的MATDOC和MATDOC_EXTRACT

    最近做了销售和物料管理方面的一些需求,因此对S/4中的MM的数据模型有了一定的了解.目前网络已经有一些介绍物料凭证表MATDOC的文章,内容好像不是很详细,另外也没发现介绍库存变更数据表MATDOC_ ...

  6. Accept Job Offer Email Template

    Accept Job Offer Email Template <Date> <Hiring Manager’s name> <Company name> < ...

  7. S/4 HANA中发票输出切换回NAST

    在S/4 HANA中,新的输出管理Output Management叫做SAP S/4HANA output control(输出控制),是基于BRF+的,而不是原来基于NAST的.关于S4新的输出控 ...

  8. html & email template

    html & email template inline style build tools https://templates.mailchimp.com/getting-started/h ...

  9. ES6, Angular,React和ABAP中的String Template(字符串模板)

    String Template(字符串模板)在很多编程语言和框架中都支持,是一个很有用的特性.本文将Jerry工作中使用到的String Template的特性做一个总结. ES6 阮一峰老师有一个专 ...

  10. 【HANA系列】SAP HANA中null变成问号的问题

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA中null变成问 ...

随机推荐

  1. Docker理论

    一.什么是Dcoker 相信docker是什么大家都已经比较清楚了,网上有很详细的介绍,我这里只是大概描述一下. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足 ...

  2. .NET分布式Orleans - 5 - 持久化

    在分布式系统中,数据的持久化是至关重要的一环. Orleans 7 引入了强大的持久化功能,使得在分布式环境下管理数据变得更加轻松和可靠. 本文将介绍什么是 Orleans 7 的持久化,如何设置它以 ...

  3. FPT:又是借鉴Transformer,这次多方向融合特征金字塔 | ECCV 2020

    论文提出用于特征金字塔的高效特征交互方法FPT,包含3种精心设计的特征增强操作,分别用于借鉴层内特征进行增强.借鉴高层特征进行增强以及借鉴低层特征进行增强,FPT的输出维度与输入一致,能够自由嵌入到各 ...

  4. KingbaseES V8R6备份恢复案例之---sys_restore实现schema转换

    **案例说明:** sys_restore用于sys_dump备份的数据恢复,在实际的应用中有需求,将从sys_dump备份对象从原schema中转换到到另外的schema,sys_restore支持 ...

  5. UE4_C++实现TimeLine

    主要实现蓝图节点中时间轴的功能. 目前UE提供了两种实现方式,一个是使用FTimeLine其是一个时间轴的结构体:另一种方式是使用UTimeLineComponent,其是一个时间轴组件类.两者内部定 ...

  6. 自己写个网盘系列:③ 开源这个网盘编码,手把手教你windows linux 直接部署,docker本地打包部署网盘应用

    系列①②已经完成了这个项目的页面和项目的全部编码,前后端分离,这个文章将向你展示运维小伙伴如何部署到windows服务器,linux服务器,docker部署,一学就会,快来看看吧! 说明:这个系列准备 ...

  7. 京东一面挂在了CAS算法的三大问题上,痛定思痛不做同一个知识点的小丑

    写在开头 在介绍synchronized关键字时,我们提到了锁升级时所用到的CAS算法,那么今天我们就来好好学一学这个CAS算法. CAS算法对build哥来说,可谓是刻骨铭心,记得是研二去找实习的时 ...

  8. 高抗干扰抗噪,段码LCD液晶低功耗驱动IC-VK2C23B,兼容市面上16C23

    VK2C23是一个点阵式存储映射的LCD驱动器,可支持最大224点(56SEGx4COM)或者最大416点(52SEGx8COM)的LCD屏. 单片机可通过I2C接口配置显示参数和读写显示数据,也可通 ...

  9. yml和properties打印SQL日志信息

    1.配置文件里面配置 第一种是properties类型如下 logging.level.com.datayes.mdi.dao.rdb.mommp.**=debug其中 com.datayes.mdi ...

  10. #博弈论#Poj 2484 A Funny Game

    题目 \(n\)个石子排成一圈,每次可以取一个或相邻的一对, 取完为胜,问先手是否必胜 分析 无论先手如何取,后手都能模仿先手的取法. 比如说,当石子个数为奇数时先手取相邻的一对,后手可以将对面的那一 ...