头图

SAP 帮助文档里推荐的 XML 处理准则:

When XML data is saved in strings or internal tables, it is best to use byte strings or byte-like row types and the UTF-8 code page for the representation.

参考 SAP 文档:

  • sXML Library supports byte-like data only.
  • iXML Library and the statement CALL TRANSFORMATION support text strings and internal tables with character-like data types too.

iXML 库和 CALL TRANSFORMATION 都支持 text 字符串和内表。

当选择 UTF-8 以外的存储格式时,XML 数据必须加上 BOM 的前缀:

When saving to formats other than UTF-8, it should be noted that the XML data must be prefixed with a byte order (BOM), in accordance with the XML standard.

尤其是使用 UCS-2(这正是 ABAP 编程语言使用的) 作为 character representation 的场景。

This applies specifically when saving character-like data in the character representation UCS-2 used by the ABAP programming language. This can render XML data written as character-like data in Unicode systems as non-handleable in non-Unicode systems.

如果在 XML 语法中具有单独含义的字符出现在元素或属性的值中,则需要对其进行转义:

  • <: <
  • >: >
  • &: &
  • " in attributes delimited by ": "
  • ' in attributes delimited by ': '

SAP 自己的 Binary XML 使用二进制格式而不是字符串,并且不使用尖括号分隔标签。 得益于 sXML 库,ABAP 支持 XML 1.0 以外的更多格式。

XSL 转换是存储库中用 XSLT 编写的程序(XSLT 程序),用于 XML 数据的转换。 可以使用 CALL TRANSFORMATION 语句来调用存储库中现有的 ST 程序。 XSLT 程序在转换编辑器中进行编辑,可以使用事务 STRANS 直接访问该编辑器,也可以通过选择编辑对象 → 更多 → 转换并选择 XSLT 程序在 ABAP 工作台的对象导航器中调用。

ABAP 的 XSL transformation 是一种在 SAP ABAP 环境中使用 Extensible Stylesheet Language (XSL) 来进行数据转换和格式化的技术。通过 XSL transformation,可以将一个 XML 文档转换成另一个 XML 文档、HTML 页面或者其他格式的文档。这种技术通常用于将系统中的数据进行结构化输出,以便于展示、报表生成或者与外部系统的集成。

在 ABAP 中,XSL transformation 通过使用类 CL_XSLT_PROCESS 来实现。这个类提供了一系列方法,允许开发者加载 XSL 样式表,将 XML 数据应用于样式表进行转换,并输出转换后的结果。XSL 样式表通常定义了从源 XML 文档到目标输出的转换规则,包括数据选择、格式化和样式设定等。

在实际应用中,ABAP 的 XSL transformation 可以用于多种场景。以下是一些常见的示例:

  1. XML 数据报表生成:假设一个企业需要从 SAP 系统中提取销售数据,并生成一个格式良好的 XML 报表以供进一步分析或者与其他系统共享。开发者可以编写 ABAP 程序来提取所需数据,然后使用 XSL transformation 将数据转换成符合预期格式的 XML 文档。这个 XML 文档可以包含销售额、产品信息、客户数据等,通过定义好的 XSL 样式表,最终生成一个美观的报表页面。
  2. SAP 数据集成:在企业中,通常会有多个系统之间需要进行数据交换和集成。ABAP 的 XSL transformation 可以用于将 SAP 系统中的数据转换成外部系统所需的格式。例如,一个公司使用 SAP 系统管理其供应链,并且需要将采购订单数据发送给供应商的外部系统。开发者可以编写 ABAP 程序来提取采购订单数据,然后使用 XSL transformation 将数据转换成供应商系统所需的 XML 格式,并通过网络服务或者文件传输等方式将数据发送给供应商。
  3. 动态 HTML 生成:除了生成 XML 文档外,ABAP 的 XSL transformation 也可以用于生成动态的 HTML 页面。例如,在 SAP 系统中,一个 HR 管理员需要生成一个员工信息报表,以 HTML 格式展示给公司管理层。开发者可以编写 ABAP 程序来提取员工数据,并使用 XSL transformation 将数据转换成 HTML 格式。通过定义好的 XSL 样式表,可以对员工信息进行表格化排版、添加样式和布局等,最终生成一个漂亮的 HTML 页面供管理层查看。

总的来说,ABAP 的 XSL transformation 提供了一个强大的工具,可以实现在 SAP ABAP 环境中对 XML 数据进行灵活转换和格式化的需求。通过合理的应用,可以帮助企业更好地利用和管理其数据资源,提高系统的整体效率和灵活性。


注销
1k 声望1.6k 粉丝

invalid