探索操作在 SAP 应用程序接口框架中的角色

学习目标

  • 定义操作

  • 确定创建操作和定义功能模块所需的关键步骤

操作定义概览

操作是一种接口构建块,其中包含 SAP 应用程序接口框架接口的业务逻辑。它至少由一个操作功能模块组成,该功能模块例如可以调用 BAPI 或功能模块来处理数据。

观看此视频,深入了解 SAP 应用程序接口框架中操作的细节,探索如何定义操作、如何将操作链接到接口,以及操作如何促进高效的数据处理。让我们了解定义操作所涉及的关键步骤,以及提交模式和提交级别这两个关键概念,它们对于无缝的事务处理必不可少。通过示例了解操作如何运作,以及它们如何助力 SAP 应用程序接口框架中有效的数据管理。

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

  • 结构: 在 SAP 应用程序接口框架中,定义良好的结构对于在接口内组织和映射数据至关重要。结构决定数据的存储、处理和传输方式,确保信息交换的一致性与效率。

  • 接口: 接口充当不同系统或组件之间的桥梁,使数据能够无缝流动。在 SAP 应用程序接口框架中,接口定义数据传输和处理所需的参数、映射和操作,促进不同实体之间的通信。

  • 操作定义: SAP 应用程序接口框架中的操作封装了可对数据执行的特定功能或运算。定义操作包括对任务进行命名、分组和结构化,使用户能够在框架内的各个接口和命名空间中执行一致的操作。

  • 提交模式和提交级别: 理解提交模式和提交级别在 SAP 应用程序接口框架中至关重要,因为它们决定了在事务处理过程中如何管理和持久化数据更改。提交模式规定何时应提交数据更改,而提交级别定义这些提交的范围或粒度,从而确保数据完整性与可靠性。

处理前的 init 函数

init 函数用于在操作处理之前执行一些预计算 / 附加数据充实。

init 函数在操作调用开始时进行处理。

应用程序接口框架提供 /AIF/FILE_TEMPL_INIT_ACTION 模板功能模块,您可以复制并重复使用。

建议:通过向前导航创建处理前的 init 函数。

操作功能配置

操作功能实现接口的业务逻辑。一个操作可以包含多个操作功能。

操作功能可以:

  • 调用 BAPI

  • 调用功能模块

  • 执行客户特定代码

一个操作可以包含不同的功能模块,在操作处理期间执行。功能编号定义功能模块的处理顺序。

操作功能出错时停止

对于每个已定义的操作功能,您都需要设置发生错误时的行为。

如果为某个操作功能选中了出错时停止处理,则在发生错误时会停止当前行的处理。您可以在以下位置选中出错时停止处理复选框:

  • 操作级别

  • 结构映射级别

在“定义功能”中出错时停止处理: 一个操作具有功能编号 5、10、20 和 30。对于功能编号 10,选中了出错时停止处理复选框。如果在执行功能编号 10 时发生错误,则不会对当前行执行功能编号 20 和 30。

在“分配操作”中出错时停止处理: 除了操作功能级别的“出错时停止处理”复选框之外,还可以在 SAP 应用程序接口框架定制中“定义结构映射”活动的“分配操作”中选中出错时停止处理复选框。在这里,该复选框的行为略有不同。操作编号 10 和操作编号 20 被分配给一个接口。对于操作编号 10,在“分配操作”中选中了“出错时停止处理”复选框。如果在处理操作编号 10 期间发生错误,则不再对当前行执行操作编号 20。

操作功能 – 始终重新启动

对于每个已定义的操作功能,您可以设置重新启动时的行为。如果您为某个操作的功能模块选中了始终重新启动复选框,则在重新启动数据消息处理时会执行该功能模块。即使该功能模块在上一次运行中已成功执行,也会执行它。

如果功能模块已成功执行且数据已提交,则在重新启动期间不会再次执行它。

如果您为某个操作选中了“始终重新启动”复选框,则在重新启动期间会再次执行该功能模块。

操作功能 – 检查

您可以为操作功能定义检查。检查在操作功能之前执行。根据检查的结果,操作会被执行或跳过。

如果检查失败,您可以设置两个选项:

  • 如果检查不成功则视为错误:不执行操作功能。而是在应用程序日志中添加一条错误消息。

  • 如果检查不成功则忽略数据:不向应用程序日志添加错误消息。而是忽略该功能。

操作功能示例

“始终重新启动”与“出错时停止”标志的组合决定了发生错误时的行为。要决定是否使用“始终重新启动”,请记住:使用内部编号的功能通常只应处理一次。

操作定义

功能模块

始终重新启动

出错时停止

FUMO_1

X

FUMO_2

内容

处理状态:FUMO_1

处理状态:FUMO_2

第 1 行

成功

成功

第 2 行

成功

错误

第 3 行

错误

成功

每个功能之后执行提交时的重新启动行为:

  • 第 1 行:已成功处理 → 不会执行任何功能。

  • 第 2 行:将执行 FUMO_1 和 FUMO_2。

  • 第 3 行:将执行 FUMO_1。

此外,如果您需要第一个功能的数据来处理第二个功能,那么在第一个功能出错后继续执行可能毫无意义。

操作定义

功能模块

始终重新启动

出错时停止

FUMO_1

X

X

FUMO_1

内容

处理状态:FUMO_1

处理状态:FUMO_2

第 1 行

成功

成功

第 2 行

成功

错误

第 3 行

错误

N

如何创建操作并使用它

在此演示中了解通过 AC_FLCUST_CREATE 操作创建新客户的流程,并使用 SAP 应用程序接口框架测试工具对其进行测试。深入了解如何设置操作、定义组件,以及在接口内测试创建流程,以实现高效的客户管理。

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

要恢复的字段

在执行操作功能期间确定的数据有时会被稍后执行的操作功能所需要。

第一个操作功能创建一个客户。对于这个新客户,您应该创建一张发票。为了创建发票,您需要客户编号。

  1. 识别关键数据与错误后果:注意示例中所示第一个功能中确定的客户编号对于创建发票的重要性。了解如果在第二个功能期间发生错误,并且未能重新启动操作功能 5,可能会丢失关键数据。

  2. 第 2 步展示了一个示例:创建客户的第一个功能成功执行。创建发票的第二个操作功能失败,因为付款条件不正确。该错误得到更正,消息被重新启动。创建客户的功能不会再次执行,因为它已被成功处理。因此,客户编号无法传递给第二个功能。

  3. 实现“要恢复的字段”以确保数据完整性:利用“要恢复的字段”来防止在重新启动操作功能时由于缺少先前确定的数据而出现后续处理错误。此字段存储关键值,确保在出错时重新处理操作功能时能够取回这些值。例如,将初始功能中的客户编号指定为“要恢复的字段”,以便在重新处理期间无缝取回和传递,从而有助于创建发票。

如何为一个接口使用多个操作

探索此演示,了解执行客户创建后操作(例如用于过账航班预订的 AC_FLBOOKING_POST)的过程。了解如何设置操作、定义组件、实现功能模块,并使用 SAP 应用程序接口框架测试工具测试该操作。按照分步说明在接口内无缝执行航班预订操作。

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

如何在操作中使用 init 函数

在此演示中,探索在执行进一步操作之前将新创建的实体链接到相关记录的过程。了解如何高效地映射数据元素,以确保实体之间的无缝集成。

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

可更改字段

在“监控和错误处理”中会显示消息内容。在某些情况下,显示的数据是不正确的。默认情况下,用户无法更改“监控和处理”中字段的值。使用可更改字段,用户可以定义在“监控和错误处理”事务中可编辑的特定字段,并重新启动更正后的消息。

可以在应用程序接口框架定制中为特定接口定义可更改字段,路径为 SAP 应用程序接口框架 → 错误处理 → 定义接口特定功能。可以在“定义可更改字段”下创建新条目。

可以针对字段级别,为在监控和错误处理工具中更改内容设置权限。

如何使用另一个操作中创建的数据

在此演示中了解如何管理返回的数据并恢复系统中的相关信息。了解为有效处理数据而创建和测试字段恢复功能的过程。

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

如何使字段可更改

了解在系统中启用数据更正和修改功能以有效解决错误的重要性。在此内容详实的演示中,探索为错误更正和数据重新处理创建可编辑字段的概念。

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

本课其余配图

Unit4_s8_f79

Unit4_s10_f80

Unit4_s13_f81

Unit4_s16_f82

Unit4_s19_f83

Unit4_s26_f86-88

Unit4_s30_f89