电子邮件是非常常见的业务需求。 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. ImageSharp 一个全新的、功能齐全的、完全托管的、跨平台的 2D 图形库

    ImageSharp 是一个全新的.功能齐全的.完全托管的.跨平台的 2D 图形库.ImageSharp 旨在简化图像处理,为您带来了一个功能强大而又非常简单的 API. 可以实现很多功能,如:缩放, ...

  2. C++中结构体的各种用法,详细版

    C++中的结构体是一种用户自定义的数据类型,可以存储不同类型的数据成员.以下是一些结构体的常见用法: 1. 定义结构体类型 结构体类型的定义可以放在函数内部或外部,例如: ``` struct Per ...

  3. 2024年:如何根据项目具体情况选择合适的CSS技术栈

    2024年:如何根据项目具体情况选择合适的CSS技术栈 (请注意,这是一篇主观且充满个人技术偏好的文章) 方案一: antd/element ui/类似竞品 适合情形: 项目没有设计师 or 大部分人 ...

  4. ES6中模块化详解

    前言 因为ES6中的模块化是将来,所以就必须有必要好好的了解一下,学习一下,这篇文章就简单总结一下ES6中模块的概念,语法和用法.纯属个人总结,不喜勿喷. 下面我将通过a.js.b.js和c.js三个 ...

  5. Android与STM32通信中巧妙解决中文乱码问题

    前言 网上一大堆都是要多种格式相互转换,并且要很大的字库文件,对于小应用工程,小容量的STM32芯片,额外多出这些开销会感到蛮不舒服的,而且绝大部分的乱码问题时发生在STM32这边,所以本文是从And ...

  6. identity4 系列————用户数据持久化篇[六]

    前言 前面的例子已经将各种情形下的例子已经介绍了一遍,那么后面就是用户数据持久化该如何处理了. 正文 例子位置: https://github.com/IdentityServer/IdentityS ...

  7. sql 语句系列(用魔法打败魔法)[八百章之第十章]

    前言 下面是一些常规的运维手段. 查询每个表的行数 SELECT a.name, a.object_id, b.rows, b.index_id FROM sys.tables AS a INNER ...

  8. 当年老夫手写的cookie

    前言 留来来只为了回忆,旧博客迁移. 正文 /** * Created by OC on 20xx/8/27. */ function setCookie(name,value,expires,pat ...

  9. NodeJs进阶开发、性能优化指南

    相信对于前端同学而言,我们去开发一个自己的简单后端程序可以借助很多的nodeJs的框架去进行快速搭建,但是从前端面向后端之后,我们会在很多方面会稍显的有些陌生,比如性能分析,性能测试,内存管理,内存查 ...

  10. axios 使用与 拦截器

    未拦截使用使用: 由于axios每个请求都是异步.例如有ABC三个请求,C需要拿到AB请求回来的值作为参数,则需同步加载才能,所以使用axios.all才好完成.... 拦截器:为了处理axios中g ...