ABAP 中的 HTML 模板

2022-10-29 10:39发布

ABAP 中的 HTML 模板是一个强大的工具,可以在 SAP 中以 HTML 格式保存文档、SAP 长文本和电子邮件的模板。

SAP HTML 模板不仅包含具有布局和数据参考的内容,还可以生成动态电子邮件和/或富文本。

这些字段将被相应的值替换。

SAP HTML 模板 Tcode

首先,您必须实现 HTML 模板。使用 WYSWYG 工具甚至记事本编辑器。
在此处查看如何在 Notepad++ 中设置 ABAP Synthax

准备好 HMTL 文件后,运行 tcode SMW0以进入SAP Web Repository

SMW0 Tcode 可用于存储 HMTL 模板以及上传二进制数据(如图片、PDF……)

对于 HTML 文件,选择第一个选项:WebRFC 应用程序的 HTML 模板。


HTML 模板上传

  1. 单击以在 SAP Web Repository 中创建新的 HTML 文件。

  2. 填写名称和描述

  3. 上传创建的 HTML

这是一个简单的电子邮件 HTML 模板

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

 

<HEAD>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

<META content="MSHTML 6.00.2800.1400" name=GENERATOR>

<STYLE></STYLE>

</HEAD>

 

<BODY bgColor=#ffffff>

<DIV><FONT face=Verdana size=3><STRONG>HANDLING HTML TEMPLATE in ABAP / SAP </STRONG></FONT></DIV>

<FONT face="Verdana,Arial,Helvetica" size=2>

 

<DIV>&nbsp;</DIV>

<DIV>Hello;</DIV>

<DIV>&nbsp;</DIV>

<DIV>This is a test for HTML Template in SAP </DIV>

<DIV>&nbsp;</DIV>

<DIV>Your SAP UserId is <strong>!USERID!</strong></DIV>

<DIV>The date is <strong>!DATE!</strong></DIV>

<DIV>&nbsp;</DIV>

 

</FONT> </BODY>

</HTML>

SAP 模板属性

上传后,系统会为 HTML 生成一些属性,例如:

  • 文件扩展名.html

  • 文件名C:tempHTML_TEMPLATE.html

  • 文件大小693

  • mimetype文本/html

  • 版本00001

您可以添加自己的属性(例如处理语言)

在 ABAP 中处理 HTML 模板

SAP 提供了一个功能模块来合并两个 HTML。

功能模块WWW_HTML_MERGER可以用它们的值替换 HTML 模板中声明的变量。

输入

  • TEMPLATE : SAP Web Repository 中模板的名称

  • MERGE_TABLE:是包含变量及其值的表:

    • “?” -替换占位符行(默认)

    • 'b'在占位符行之前插入

    • ' a' 在占位符行之后插入

    • 'r'仅替换占位符

    • 名称(30):变量的名称:占位符:'<!list!>'

    • w3html之类的html出现100,”要插入的HTML代码(是表格!)

    • command:合并时发生的动作。

输出

  • HTML_TABLE : 输入 SWWW_T_HTML_TABLE 并包含 HTML 行 (255)

ABAP 示例 如何在 SAP 中处理 HTML 模板

这是一个 ABAP 教程示例代码,用于检索模板并与数据交换变量。

*&---------------------------------------------------------------------*
*& ABAP CODE : HOW TO HANDLE HTML TEMPLATE IN ABAP
*& REMPLACE THE VARIABLES IN HTML WITH VALUE
*&---------------------------------------------------------------------*

REPORT ZTEST_HTML_TEMPLATE.


" Declare the SWWW Type-Pool
TYPE-POOLS: swww.

" Data Declarations
DATA: lt_merge_table  TYPE  swww_t_merge_table.
DATA: lt_html_table   TYPE  swww_t_html_table.
DATA: ls_merge_table  LIKE LINE OF lt_merge_table.
DATA: ls_html_table   LIKE LINE OF lt_html_table.

DATA: lv_string       TYPE string.


" Selection Screen
PARAMETERS: p_temp TYPE swww_t_template_name DEFAULT 'ZZ_HTML_TEMPLATE_TEST'.
PARAMETERS: p_user TYPE syuname DEFAULT sy-uname.
PARAMETERS: p_date TYPE sydatum DEFAULT sy-datum.

START-OF-SELECTION.

  REFRESH lt_html_table.

  " Remplace USERID with its value
  CLEAR ls_merge_table.
  ls_merge_table-name    = '!USERID!'.
  ls_merge_table-command = 'R'.
  lv_string              = p_user.
  APPEND LV_string to ls_merge_table-html[].
  APPEND ls_merge_table TO lt_merge_table.

  " Remplace DATE with its value
  CLEAR ls_merge_table.
  ls_merge_table-name    = '!DATE!'.
  ls_merge_table-command = 'R'.
  lv_string              = p_date.
  APPEND LV_string to ls_merge_table-html[].
  APPEND ls_merge_table TO lt_merge_table.


  " Call the HTML MERGE function
  CALL FUNCTION 'WWW_HTML_MERGER'
    EXPORTING
      template    = p_temp
    IMPORTING
      html_table  = lt_html_table[]
    CHANGING
      merge_table = lt_merge_table[].


END-OF-SELECTION.

  LOOP AT lt_html_table INTO ls_html_table.
    WRITE / ls_html_table-line.
  ENDLOOP.


SAP 传输 HTML 模板

在 SAP Web 存储库中保存 HTML 模板时,系统会要求您选择传输。您也可以在进行一些 ABAP 测试时将它们保存在本地。

在运输中,与模板对应的行:

  • 描述:Web 报告/Internet 事务服务器 HTML 模板

  • 程序编号R3TR

  • 对象类型W3HT

  • 对象名称:ZZ_HTML_TEMPLATE_TEST

如果您想更深入地了解 HTML 模板,请访问help.sap.com 上的官方文档


赞赏支持