映射结构与字段映射

学习目标

  • 有效理解并配置结构映射与字段映射。

源结构与目标结构及字段映射

映射是 SAP 应用程序接口框架的核心组成部分之一。合作伙伴能够以 SAP 系统所需的方式提供数据,或 SAP 能够以合作伙伴所需的方式提供数据,这种情况相当少见。因此,我们经常需要映射。

第一步始终是确定源结构中的哪个字段应当用于哪个目标字段。这称为结构映射。

如果找到了相关字段,它可能可以直接使用。但我们也可能需要转换它,例如把 $ 转换为 USD,或把 10.05.2019 转换为 20191005。这种转换称为值映射。如果源结构根本无法提供某个字段,我们可能必须设置固定值,或在表中查找该值。

此外,SAP 应用程序接口框架还让我们能够使用条件,并根据这些条件采用不同的映射。这样就可以在存在匹配时使用某个特定字段,而在不存在匹配时使用更通用的字段。

结构映射通过 SAP 应用程序接口框架定制中的“定义结构映射”完成。结构映射活动包含不同的步骤。这些步骤在子流程中描述。

接口的源结构与目标结构通常不同。因此需要结构映射。结构映射定义源结构中的数据应如何传递到目标结构。为实现这一点,结构映射还需要一些其他的 SAP 应用程序接口框架对象(例如检查、值映射或固定值)。

  1. 源结构: 选择源结构。

  2. 目标结构: 分配与源结构对应的目标结构。

  3. 字段映射: 将匹配的字段从源结构映射到目标结构。

  4. 检查: 创建检查。

  5. 值映射: 从其他值派生出一个值。

  6. 固定值: 为字段分配一个固定值。

  7. 条件: 创建条件。

  8. 操作: 创建在接口处理期间执行的操作。

源结构

要映射结构,您需要选择源结构。

源结构可以是根结构,也可以是根结构的任何子结构或子表。

取决于所处理的接口是入站还是出站,源结构为:

  • 如果接口是入站接口,则为原始数据结构或其子结构/子表

  • 如果接口是出站接口,则为 SAP 数据结构或其子结构/子表

目标结构

目标结构可以是根结构,也可以是根结构的任何子结构或子表。它必须与先前选择的源结构相对应。

如果映射的结构完全相同,您可以通过“移动对应字段”功能来映射该结构的字段。在这种情况下不需要单独的字段映射,但如有需要也可以添加。

如果选中“移动对应字段”复选框,则会映射包括子结构和子表在内的完整结构。

如果在选中“移动对应字段”复选框之外还选中“仅复制字段”复选框,则只映射字段。

字段映射

如果结构不完全相同,则需要字段映射,以便将源结构中的不同字段映射到目标结构中的对应字段。

目标结构中的一个字段最多可以由源结构的五个字段构成。

您必须将源结构的字段映射到目标结构的字段。这通过字段映射完成。

要创建字段映射,至少需要目标结构中的字段以及源字段的字段名。所有其他选项都不是必需的。

在字段映射中,您可以维护以下信息:

  • 目标结构中的字段: 定义数据映射到的目标结构中的字段。

  • 源字段: 您最多可以在字段名中插入五个字段作为源字段。这些字段包含源结构中某个字段的名称。这些字段也可以包含目标结构字段的字段名。如果选择的是目标结构字段,则必须在字段名前加上 @ 符号。所定义的字段可作为参数使用,并可用于值映射或检查中。可以定义偏移量和长度,以及分隔符字符串。字段名中各字段的内容会在目标结构中按该字符或符号进行拆分。如果维护了多个字段名且未做其他设置,则这些字段的值会拼接到目标字段中。

  • 偏移量与字段长度: 指定应传递到目标字段的数据的偏移量和字段长度。

  • 用于数据链接的字段名: 如果在字段名 1 到字段名 5 中维护了多个字段,该字段指示当字段映射期间发生错误时,在监控与错误处理中错误应链接到哪个字段。如果只维护了字段名 1,则自动使用该字段创建链接。

  • 值映射函数: 为值映射维护一个函数模块。

  • 值映射: 在字段名 1 到 5 中定义的字段可作为值映射的参数使用。要使用该参数,您必须在值映射的相应字段中插入 '\(<Fieldname number>' 。在运行时, '\)’ 会被替换为该字段的当前值。它们可用于“where”条件中,或用于此值映射中定义的值映射函数中。如果在值映射中定义了错误消息,这些字段也可用于替换错误消息中的占位符。此外,它们还可以用作单个或多个值映射表的外部值。如果您输入的值映射名称不存在,系统会为您提供创建该值映射的机会。

  • 用于转换的数据元素/转换例程/转换出口方向: 在“转换例程”字段中输入转换例程(例如 ALPHA)。在 转换方向 字段中维护转换方向。除了输入转换例程,您也可以插入 用于转换的数据元素 (例如 DATS)。

  • 命名空间/检查: 您可以在此输入检查的命名空间和名称。该检查在字段映射期间执行。如果检查失败,字段映射也会失败。默认情况下,会检查 目标结构 中的字段数据。选中 映射前检查 复选框可检查源数据。

您可以直接在“字段名”字段中输入固定值。如果要在某个源字段中输入固定值,则需要在值前面加上 %。例如,如果该字段的固定值为 5,则字段输入必须为 %5。

SAP 应用程序接口框架提供了一种测试接口的工具。该工具可通过事务 /AIF/IFTEST 启动。为您的接口创建测试文件。测试从源结构到目标结构的转换。处理测试数据。

如何创建并测试结构映射

观看此演示,了解如何使用简单的映射技术为销售代理结构创建并测试映射。探索如何在接口之间高效地移动数据,并使用 SAP 应用程序接口框架测试工具验证映射。跟随演示操作,加深您对映射功能与测试流程的理解。

视频:本节含 SAP 官方视频(视频 ID 1_zw3hl1i6),需在 learning.sap.com 在线观看。

如何创建字段映射

观看此演示,了解为不同数据结构创建并测试映射的过程。探索以 1:1 方式映射客户字段,并使用 SAP 应用程序接口框架接口测试工具测试映射。了解各种测试方法,以验证数据传输的准确性并有效地监控错误。

视频:本节含 SAP 官方视频(视频 ID 1_9j47okgd),需在 learning.sap.com 在线观看。

检查

检查用于验证特定字段的内容对于给定输入是真还是假,以确定指定的条件对于给定输入值是真还是假。检查可以影响 SAP 应用程序接口框架中的处理。

您可以在不同位置分配检查,例如有条件地跳过某个映射步骤、有条件地执行操作的某个特定功能,或识别出应立即可停止处理的应用程序错误情形。

在 SAP 应用程序接口框架中,检查具有定义明确的输入(最多五个字段值)和定义明确的输出(一个指示检查结果的成功复选框),并且它们独立于使用它们的上下文。因此,检查可以很容易地被 SAP 应用程序接口框架中的多个接口重复使用。

您可以通过定义检查定制活动在 SAP 应用程序接口框架定制中创建可复用的检查。有一些简单的字段检查是预定义的,例如:

  • 检查字段是否仅包含数值、是否不为空、是否仅包含大写字母等。

  • 检查允许的字符。

  • 为字段检查定义一个运算符并配合一个模式。

  • 要检查数据库表中的数据,您必须为 选择语句 填写 表名 和 Where 条件 字段。对于数据库检查,您有两种选择:

  • 验证数据库中是否存在某条目。

  • 验证在数据库中找到的条目中某个字段是否具有特定值。

  • 如果应使用函数模块来检查数据,则该函数模块必须与所提供的 /AIF/FILE_TEMPL_CHECK 模板函数模块具有相同的签名。

  • 一个可复用的检查可以由多个单项检查组成。这些单项检查以“OR”连接,这意味着只要其中一个单项检查成功,整个检查就被视为成功。

在 SAP 应用程序接口框架中为检查定义特定的错误消息和成功消息,以提供详细的反馈。错误消息可以在创建检查时通过定义消息类、编号和变量来定制。成功消息也可以按检查进行定制,即指定消息类、编号和变量。

检查可用于哪个层级?

结构级检查:

  • 在 SAP 应用程序接口框架定制中的 分配检查 活动下定义检查。

  • 指定要检查的数据结构(原始或 SAP)以及错误行为(忽略数据或视为错误)。

  • 在使用现有检查或创建新检查之间进行选择。

字段级检查:

  • 在 定义字段映射定制 活动中定义检查。

  • 使用现有检查,或创建新检查。

  • 指定检查应在映射之前还是之后执行。

  • 如果要包含常量值,请在字段中使用 "%" 。

有两种可能:

如果检查不成功则忽略数据。如果检查失败,则忽略当前行并继续处理。会向应用程序日志中添加一条信息消息(取决于跟踪级别)。

如果检查不成功则视为错误。如果检查失败,则处理会在当前行停止。会向应用程序日志中发布一条错误消息。

如何创建不带错误消息的检查

通过此演示开始创建各种检查,并根据这些检查的结果调整值。了解如何通过实施字段检查来防止销售代理数据重复,并确保数据完整性。按照步骤有效地设置检查,并使用 SAP 应用程序接口框架测试工具测试您的配置,以获得可靠的结果。

视频:本节含 SAP 官方视频(视频 ID 1_pcre98uw),需在 learning.sap.com 在线观看。

如何创建带错误消息的检查

观看此演示,探索通过检查验证数据是否存在以及实施用户特定错误消息的过程。了解如何通过验证旅行社等实体的存在并有效处理错误来确保数据准确性。跟随演示操作,设置检查、配置错误消息,并使用示例数据测试映射过程。

视频:本节含 SAP 官方视频(视频 ID 1_grmc5umw),需在 learning.sap.com 在线观看。

固定值

在 SAP 应用程序接口框架中,固定值用于结构映射和值映射,为目标结构中的字段分配一个常量值。此外,它们也可以用于检查中以引用一个常量值。

固定值可以定义在:

  • 命名空间级别

  • 结构映射中

  • 字段映射中

在命名空间级别定义的固定值可用于不同的接口。您可以在一个接口中使用来自不同命名空间的固定值。

您可以分配一个在命名空间级别定义的可复用固定值,并将其分配到结构映射。或者,您可以直接在接口的结构映射中定义固定值。如果两者都做,则会采用可复用的固定值。

在命名空间级别定义可复用固定值并将其分配到结构映射。这样做的好处是,一旦该值需要更改,只需在一个地方进行调整。

您可以通过 SAP 应用程序接口框架定制中的定义固定值活动指定固定值。您必须定义名称、描述和值。

示例

您有多个接口,用于处理客户数据(订单、航班预订等)。目前,每个客户都获得 10% 的折扣。因此,相应的可复用固定值被分配到这些接口。之后折扣被更改,客户只能获得 5% 的折扣。由于您已将固定值定义为可复用固定值,您只需在一个地方更改该固定值,所有接口就会使用正确的折扣。

如何创建固定值映射

观看此演示,了解如何为客户折扣创建固定值映射,从而确保数据的一致性与准确性。按照步骤设置固定值,使用 SAP 应用程序接口框架测试工具测试映射,并(可选)处理数据以在接口监控器中观察结果。

视频:本节含 SAP 官方视频(视频 ID 1_371jaqus),需在 learning.sap.com 在线观看。

本课其余配图

Unit2a_1s2_f41

Unit2a_2_s4_f42

Unit2a_3_s6_f43

Unit2a_4_s8_f44

Unit2a_5_s10_f45a

Unit2a_5_s10_f45b

Unit2a_6_s14_f47

Unit2a_6_s14_f48

Unit2a_6_s14_f52

Unit2a_6_s14_f54