练习 - 使用 Dataverse 关系数据

已完成

Contoso 与许多公司一样,具有多个位置,并且允许员工在家工作。 员工偶尔需要进入办公室,需要在访问期间使用办公桌。 此前,Contoso 指示员工在到达办公室后四处寻找可用的办公桌。 随后公司发现此类共享工作区系统或办公桌轮用给 IT 支持和许可带来挑战。 因此,Contoso 最近构建 Microsoft Power Platform 解决方案,支持员工查看可用的办公桌并提前预留。

在本练习中,您将通过 Power Apps 增强画布应用。

目标

本练习旨在帮助您学习如何使用以下关系:

  • 一对多和多对一

  • 多对多

先决条件

要完成本练习,您将需要包含 Microsoft Dataverse 的环境。

练习 1:导入解决方案

在本练习中,您将起始解决方案导入测试环境,然后使用 Microsoft Power Automate 云端流加载示例数据。 本解决方案包含五个表、一个画布应用程序、一个模型驱动应用和一个云端流。

任务 1:导入起始解决方案

在本任务中,您将解决方案导入环境中。

  1. 您将需要下载 zip 文件 以便完成本练习。 在链接打开后选择下载。

  2. 导航到 Power Apps maker portal 并选择要用于本实验的环境。

  3. 选择解决方案 > 导入

    导入解决方案按钮的屏幕截图。

  4. 选择浏览

  5. 选择 ContosoHotDesking_1_0_0_0.zip 解决方案,然后选择打开

  6. 选择下一步

  7. 再次选择下一步

  8. 选择连接下拉列表中选择+ 新建连接

    选择连接下拉列表中的新建连接屏幕截图。

  9. 选择创建

  10. 提供您的凭据。

  11. 关闭连接浏览器窗口或选项卡。

  12. 选择刷新

  13. 选择导入,然后等待解决方案导入完成。

任务 2:加载示例数据

在本任务中,您将运行云端流创建示例数据。

  1. 选择解决方案,然后选择打开您导入的Contoso 办公桌轮用解决方案。

  2. 选择云端流,然后选择打开加载示例办公桌轮用数据流。

    加载示例办公桌轮用数据流按钮屏幕截图。

  3. 选择运行

  4. 选择运行流

  5. 选择完成,然后等待流运行完成。 选择刷新按钮查看流运行状态。 流运行完成时应显示成功状态。

    刷新按钮屏幕截图。

任务 3:运行应用

在本任务中,您将运行办公桌轮用管理器办公桌轮用应用程序来熟悉这些应用程序。 然后完成数据设置。

  1. 转到 Power Apps maker portal 并选择用于本实验的环境。

  2. 选择应用并选择启动办公桌轮用管理器应用程序。

    办公桌轮用管理器应用程序链接屏幕截图。

  3. 选择办公桌并确保您拥有示例数据。

  4. 选择位置并确保您拥有示例数据。

  5. 选择办公桌功能并确保您拥有示例数据。

  6. 选择位置,选择三个位置,然后选择编辑

    在可用位置下拉列表中选定三个位置的屏幕截图,其中突出显示编辑按钮。

  7. 主要联系人字段中选择用户,然后选择更改

    选定用户的主要联系人字段屏幕截图。

  8. 关闭办公桌轮用管理器应用程序。

  9. 确保您仍选定应用,选择办公桌轮用应用程序,然后选择编辑。 应用程序应在应用工作室中打开。

    突出显示编辑按钮并选定办公桌轮用应用程序的屏幕截图。

  10. 选择HomeScreen,然后选择播放

  11. 选择新建预留

  12. 选择 1 号楼封闭办公室办公桌 # 1

    Contoso 办公桌轮用预留窗体的屏幕截图。

  13. 选择未来日期,然后为 9:00 选择预订

  14. 再次选择新建预留

  15. 选择 2 号楼团队室办公桌 # 2

  16. 选择未来日期,然后为 13:00 选择预订

  17. 添加更多包含其他组合的预留。

  18. 您现在应至少有四项预留。 关闭预览。

    关闭画布应用预览按钮屏幕截图。

  19. 展开ReserveDeskScreen下拉列表,展开Gallery3,然后选择Button1

    ReserveDeskScreen 下拉列表中 Button1 控件屏幕截图。

  20. 转到公式并审阅OnSelect公式。 用户选择预订选项时,将使用 Patch() 函数创建新的预留行。 新行与办公桌和用户存在关系。 用户关系通过开始时在应用中建立的全局变量设置。

    OnSelect 按钮及其公式屏幕截图。

  21. 审阅应用程序中的其他公式,熟悉流程的工作原理。

  22. 审阅公式后选择后退按钮。

    返回应用的后退按钮屏幕截图。

  23. 请勿导航离开本页面。

练习 2:创建关系

在本练习中,您将为收藏的办公桌创建关系。 本关系将是用户与办公桌表之间的多对多关系。 本关系允许您实现用户将办公桌标记为收藏的功能。

任务:创建关系

在本任务中,您将为收藏的办公桌创建关系。

  1. 展开Dataverse并选择

  2. 搜索并选择办公桌表。

    办公桌表屏幕截图。

  3. 依次选择关系选项卡、+ 添加关系多对多

    选定多对多关系的屏幕截图。

  4. 相关(多)表选择用户,然后选择完成

  5. 选择保存表

  6. 依次选择解决方案发布所有自定义项

  7. 等待发布流程完成。

练习 3:向预留显示添加信息

在本练习中,您将更改预留库显示当前用户创建的预留,而非显示所有预留。 您还将在预留列表中显示更多信息。

任务:编辑应用程序

在本任务中,您将编辑 Contoso 产品管理器应用程序。

  1. 转到 Power Apps maker portal 并选择用于本实验的环境。

  2. 依次选择应用办公桌轮用应用程序和编辑

    办公桌轮用应用程序的编辑应用程序按钮屏幕截图。

  3. 展开HomeScreen并选择Gallery5

  4. 转到公式栏并将项目公式改为以下公式。 本公式将筛选与当前用户关联的预留并且使用用户与预留表之间的一对多关系。

    LookUp(Users,'Primary Email'=currentUserEmail).'Reservations (contoso_Reservation_ReservedFor_SystemUser)'

    项目公式屏幕截图。

  5. 选择编辑库图标。

    用于编辑库的编辑图标屏幕截图。

  6. 转到插入选项卡并选择标签

    突出显示标签按钮的插入选项卡屏幕截图。

  7. 选择您添加到库的标签,然后将文本值改为以下公式。 本公式使用预留与办公桌表之间的一对多关系。

    ThisItem.Desk.Name

  8. 调整标签大小并重新定位。

    用于调整大小和重新定位的标签控件屏幕截图。

  9. 在编辑模式下选择添加其他标签

  10. 选择您添加的标签并将文本值设置为以下公式。 以下公式显示您使用两层关系(从预留开始)并且使用办公桌获取位置

    ThisItem.Desk.Location.Phone

  11. 调整标签大小并重新定位。

    标签控件位置屏幕截图。

  12. 在编辑模式下再次选择标签

  13. 选择您添加的标签并将文本值设置为以下公式。

    If(IsBlank(ThisItem.Desk.Location.'Primary Contact'),"No Primary Contact",ThisItem.Desk.Location.'Primary Contact'.'Full Name')

  14. 调整标签大小并重新定位。

    此时预留库应与下图相似。

    预留库的屏幕截图。

  15. 选择文件 > 保存

  16. 选择后退按钮。

  17. 请勿导航离开本页面。

练习 4:添加收藏办公桌

在本练习中,您将添加允许用户选择收藏办公桌的图标。 您还将添加显示桌面功能的标签。

任务:添加收藏

在本任务中,您将添加收藏办公桌并添加标签以显示桌面功能。

  1. 展开FindDeskScreen,然后选择GalleryDesks

  2. 选择编辑库图标。

    库编辑按钮屏幕截图。

  3. 转到插入选项卡,选择图标,然后选择其中一个图标。 您将在下一步中使用公式设置特定图标。 因此,在本步骤中选择的图标无关紧要。

  4. 选择您添加的图标并将图标值改为以下公式。 本公式将在用户未将本办公桌指示为收藏办公桌时显示填充的竖起大拇指图标,在用户选定办公桌为收藏办公桌时显示竖起大拇指图标。

    If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Icon.ThumbsUp,Icon.ThumbsUpFilled)

    注意

    如果应用中存在大量行,CountIf 确实会遇到 委托 挑战,此时您可能需要使用其他方法。

  5. 确保您仍选定图标。 选择OnSelect,然后粘贴以下公式。 本公式将关联或取消关联该办公桌与登录的用户,具体情况取决于用户是否已将办公桌添加为收藏办公桌。

    If(CountIf(ThisItem.Users, ThisRecord.User = currentUser.User) > 0, Unrelate(ThisItem.Users, currentUser), Relate(ThisItem.Users, currentUser))

  6. 重新定位库中的图标,如下图所示。

    图标位置屏幕截图。

  7. 确保您仍处于库编辑模式。 转到插入选项卡并选择标签

  8. 选择您添加的标签并将文本值设置为以下公式。 本公式将连接桌面功能名称并使用办公桌与办公桌功能表之间的多对多关系。

    Concat(ThisItem.'Desk Features', Name, " , " )

  9. 调整标签大小并重新定位以便更好地适应空间。

  10. 选择文件 > 保存

  11. 选择后退按钮。

  12. 单击播放预览应用。

  13. 库应如下图所示。 选择其中一个办公桌的竖起大拇指图标。

    竖起大拇指办公桌图标屏幕截图。

  14. 该图标应改为竖起大拇指。 再次选择该图标。

    已经改变的竖起大拇指办公桌图标屏幕截图。

  15. 图标应变成显示已填充竖起大拇指图标。 再次选择该图标。

  16. 关闭预览。

  17. 请勿导航离开本页面。

练习 5:筛选办公桌

在本练习中,您将在用户在下拉列表中选择功能时向办公桌库添加筛选器。

任务:功能筛选器

在本任务中,您将添加功能筛选器。

  1. 选择GalleryDesks

  2. 转到公式栏并为项目公式添加以下公式。 本公式将筛选办公桌,仅显示具有选定功能的办公桌。 切勿忘记添加逗号。

    ,IsBlank(filterFeatures.Selected) || Desk in filterFeatures.Selected.Desks.Desk

    公式编辑区域的屏幕截图。

  3. 选择文件 > 保存

  4. 选择后退按钮。

  5. 选择播放

  6. 请注意可用于所选建筑物的办公桌功能。

    办公桌功能屏幕截图。

  7. 在下拉列表中选择功能。 应仅显示具有选定功能的办公桌。

    经过筛选的办公桌屏幕截图。

  8. 选择其他建筑物和功能,确保应用程序的行为符合预期。

  9. 关闭预览。

  10. 关闭应用程序设计器。