使用 SAP 连接器构建 Teams Power App - 第二部分:在 Power App 中读取和显示 SAP 数据
在本文中,我们将从 SAP 中检索产品列表并将其显示给 Teams 用户。
在我们上一篇文章中,我们配置了 SAP、Teams 和 Power Apps 环境。我们还设置了一个自定义连接器到我们的 SAP 实例,以便检索数据。
在本文中,我们将探讨一些在 Teams 嵌入式应用程序中检索 SAP 数据并将其显示给用户的选项。虽然本文大量引用了演示数据,但您可以对连接器提供的任何数量的数据集执行相同的过程。首先,让我们创建我们的产品信息应用。
创建我们的第一个应用
现在我们已经配置好了一切,我们可以创建我们第一个应用的外壳。首先,在 Teams 中,我们打开 Power Apps 应用程序,创建一个新应用,然后选择要添加应用到的 Team。
我们为应用程序命名并保存。在这里,我们选择了“Products”这个名字。片刻之后,Power Apps 会创建应用程序并显示一个空白的入门屏幕。我们将屏幕重命名为“ProductList”,因为这是我们在制作应用程序时显示的第一个屏幕。
当我们打开新创建的应用程序并选择第一个空白屏幕时,我们会注意到两个选项可以制作我们的屏幕:使用数据或使用模板。没有可用的产品表,并且如果我们选择数据选项,我们将看不到 SAP 数据源。如果查看 Power Apps 屏幕左侧菜单中的数据选项,我们也会看到没有可用的数据源。之所以没有可用的数据源,是因为虽然我们已经设置了连接器,但 Power Apps 无法通过远程连接器确定源的结构。要解决此问题,我们需要配置一个特定的数据集合对象用作源。
创建数据集合
集合是 Power Apps 中类似于表的专用数据源,但由应用程序在本地创建。因此,每个应用程序都有其集合版本,用户或设备永远不会共享。这种缺乏共享可能会给应用程序内创建的数据带来挑战,但由于我们是从外部源 (SAP) 检索数据,因此这对我们的用例非常完美。
为了创建和维护我们的数据集合的最新状态,我们在应用程序首次启动时使用ClearCollect 函数,并定期使用计时器。我们可以使用此函数在应用程序首次启动时和用户使用应用程序时的定期间隔来清除集合并从远程源刷新数据。
首先,我们通过从左侧选择应用选项,在应用程序启动时应用此函数。在高级属性中,我们使用以下代码块完成 OnStart
操作
ClearCollect(Product, 'SAPODATA[Sample]Connector'.ListProductSets().d.results)
此函数创建 Product 集合。它还使用我们的 OData 连接器的 ListProductSets
函数,通过 d.results
返回的元素来填充集合。如果我们保存应用程序并切换到其数据部分,我们应该会在数据连接器下方看到 Product 集合。
请注意,如果您将数据连接器命名为其他名称或构建了实现其他函数的自定义连接器,则需要相应地更新此代码。
我们还设置计时器,每 15 分钟刷新一次数据集,以确保从源中提取最新数据。虽然此函数并非严格必需,并且过多的应用程序运行可能会给 SAP 带来额外的负载,但定期刷新此本地数据副本是很好的。
首先,我们单击ListProducts屏幕(如果您尚未更改,则为Screen1),然后单击左侧菜单中的插入选项。输入组有一个计时器选项,我们可以添加并根据需要进行配置。
由于我们不希望向最终用户显示计时器,因此我们将其移出画布并将可见性属性设置为关闭。我们还将计时器设置为运行 900,000 毫秒(15 分钟),并设置为重复、屏幕显示时自动启动,以及导航到新屏幕时自动暂停。
这些操作使计时器运行,但它仍然不做任何事情。要启用刷新,我们必须切换到高级选项卡。在 OnTimerEnd
操作中,我们使用上面的相同代码块来刷新我们的数据集合。我们将应用程序设置为在计时器结束时刷新,因为我们已经在应用程序启动时刷新了数据,所以我们不希望在 15 分钟后才刷新。
显示我们的数据
现在我们的数据已从 SAP 刷新,我们需要将其显示给用户。为此,我们使用一个名为空白垂直图库的控件,以相对简单的方式。
垂直图库控件使我们能够在一个屏幕区域中放置垂直重复的数据元素。使用此控件将允许我们以类似于电子表格的行显示数据。当我们插入图库控件时,我们可以指定链接的数据源,在这种情况下是我们的 Products 集合。
在我们的图库控件中,我们还可以指定我们希望在数据集的每一行中重复显示的元素。在这种情况下,我们重复三个数据元素:产品类别、产品名称和产品价格。
要做到这一点,我们选择图库并插入一个新的标签控件,将其添加为子元素。图库节的每个子元素都可以通过 ThisItem
变量访问该行数据。例如,在类别标签的标签文本字段中,我们将文本函数设置为 ThisItem 类别,以返回该行的类别值。
调整不同元素和列的大小后,我们应该能够以可用但简单的视图显示我们 SAP 实例中的所有产品。
发布我们的应用程序
现在我们已经构建了应用程序并能够从 SAP 读取数据,让我们使用顶部菜单中的发布按钮将应用程序发布到我们的 Teams 频道。此过程使我们能够将应用程序添加为任何我们有权限的频道的选项卡。在我们的情况下,我们只是将应用程序发布到我们的 Team 的常规频道。
单击保存并关闭后,需要一些时间才能将应用程序推送到 Team。如果我们切换到我们 Team 的常规频道,我们应该会在顶部看到一个Products选项卡,该选项卡会直接在 Teams 中打开我们的应用程序。该组中的人们现在可以看到 SAP 的产品列表。
后续步骤
我们已经迈出了创建应用程序的第一步,该应用程序建立在我们现有的系统之上。我们现在以易于使用的方式将数据展示给最终用户。
您可以通过在产品列表屏幕中添加分页和搜索或过滤组件来进一步改进应用程序,以帮助用户浏览产品列表。您甚至可以使用供应商列表复制此过程,让人们浏览我们示例数据集中的业务列表。
在我们下一篇文章中,我们将为我们的应用程序添加更多功能。我们将使用户能够编辑产品并将数据发送回我们的 SAP 应用程序。