配置副作用
学习目标
配置副作用,以便在 UI 中发生某些更改后立即更新特定的 UI 字段。
对象页面上的副作用
在使用 Edit 和 Create 模式时,某些用户操作或某个字段中的更新可能需要立即更新其他 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 官方交互式练习)
步骤
向差旅添加一项新预订,并检查应用程序的行为。
选择页面顶部的图钉图标,然后选择 Edit。
选择 Create。
打开新预订的 Input Help,并从列表中选择一个项目。
请注意,草稿已随新预订一起更新,但对象页面页眉中的 Total Price 保持不变。
保存草稿。请注意,Total Price 只有在保存新版本后才会更新。
为预订添加副作用。
在 SAP Business Application Studio 中打开
layouts.cds。使用
@Common.SideEffects注解TravelService.Travel。
annotate TravelService.Travel @(Common.SideEffects #ReactonItemCreationOrDeletion: {
SourceEntities : [to_Booking],
TargetProperties: ['TotalPrice']
});
检查结果。
像在第一步中那样添加一项新预订。
请注意,Total Price 字段会立即更新。
保存草稿。请注意,Total Price 不再发生变化,因为它已经被更新过了。
结果
在本课中,您学习了如何添加和使用副作用,以便在添加新预订后立即更新差旅总价。
注意
您可以在 GitHub 上找到本练习的解决方案。
解决方案分支是 solution/use-side-effects-to-update-total-price 。
您可以在 GitHub 上查看与上一个分支相比的代码更改。
后续步骤
有关更多信息,请参阅:
Side Effects
Side Effect Annotations: Examples