配置副作用

学习目标

  • 配置副作用,以便在 UI 中发生某些更改后立即更新特定的 UI 字段。

对象页面上的副作用

在使用 EditCreate 模式时,某些用户操作或某个字段中的更新可能需要立即更新其他 UI 元素。

例如,当用户在书店应用中选择一本书时,其价格会显示在 Price 字段中。当他们选择另一本书时,Price 字段应立即显示新价格。这意味着您需要从后端获取相应的值,并更新用户界面中的相应字段。

在 SAP Fiori elements 中,这些操作称为副作用。您可以使用 @Common.SideEffects 注解来表明某些 UI 元素(称为源实体或源属性)中的更改应触发请求以更新其他 UI 元素(目标实体或目标属性)。

有一些默认副作用适用于所有应用。例如,如果用户在列表报表或对象页面中创建新实体或草稿版本,父页面的列表绑定会被刷新以显示新项。这些副作用会自动生效,您无需为其添加注解。有关更多信息,请参阅副作用

请注意,如果用户界面中存在任何验证错误,则不会触发副作用请求。在这种情况下,应先解决这些错误。

有关可添加到应用中的副作用的更多示例,请参阅副作用注解:示例

使用副作用在添加另一项预订后立即更新总价

用户界面中的某些操作可能会影响其他 UI 元素。您可以使用副作用来指定这些操作应立即触发相应字段中的更新。

任务流程

在本练习中,您将向现有差旅添加一项新预订,并注意应用程序的行为。然后,您将使用 SAP Business Application Studio 添加必要的注解。最后,您将检查结果。

前提条件

您已完成单元 配置对象页面的正文 中的练习 按需显示差旅管理数据子节(通过添加"Show More"按钮)(课程:按需隐藏可选信息)。或者,您可以检出其解决方案分支:solution/add-show-more-button-on-op

观看模拟并执行步骤

本练习包含一个模拟,它会带您完成下面描述的所有步骤。您可以跟随该模拟,并使用您自己的试用账户执行这些步骤。

练习开始练习(SAP 官方交互式练习)

步骤

  1. 向差旅添加一项新预订,并检查应用程序的行为。

  2. 选择页面顶部的图钉图标,然后选择 Edit

  3. 选择 Create

  4. 打开新预订的 Input Help,并从列表中选择一个项目。

  5. 请注意,草稿已随新预订一起更新,但对象页面页眉中的 Total Price 保持不变。

  6. 保存草稿。请注意,Total Price 只有在保存新版本后才会更新。

  7. 为预订添加副作用。

  8. 在 SAP Business Application Studio 中打开 layouts.cds

  9. 使用 @Common.SideEffects 注解 TravelService.Travel

annotate TravelService.Travel @(Common.SideEffects #ReactonItemCreationOrDeletion: {
SourceEntities  : [to_Booking],
TargetProperties: ['TotalPrice']
});
  1. 检查结果。

  2. 像在第一步中那样添加一项新预订。

  3. 请注意,Total Price 字段会立即更新。

  4. 保存草稿。请注意,Total Price 不再发生变化,因为它已经被更新过了。

结果

在本课中,您学习了如何添加和使用副作用,以便在添加新预订后立即更新差旅总价。

注意

  • 您可以在 GitHub 上找到本练习的解决方案。

  • 解决方案分支是 solution/use-side-effects-to-update-total-price 。

  • 您可以在 GitHub 上查看与上一个分支相比的代码更改。

后续步骤

有关更多信息,请参阅:

  • Side Effects

  • Side Effect Annotations: Examples