PowerApps 潜在授权区——以及如何操作

PowerApps potential delegation area -- and how to operate

我遇到了一个我无法确定的偷偷摸摸的错误。

一切都从这个命令开始:

       // Begin by building the Collections needed to feed the email tool.
          ClearCollect(MailingListExploded, AddColumns(ScanDataCollection,
            "CustomerName", LookUp(Spiderfood_RITMData, Number = Mid(Result, 12, 11), Name1),
            "CustomerEmail", LookUp(Spiderfood_RITMData, Number = Mid(Result, 12, 11), Email),
            "ManagerName", LookUp(Spiderfood_RITMData, Number = Mid(Result, 12, 11), Name2),
            "ManagerEmail", LookUp(Spiderfood_RITMData, Number = Mid(Result, 12, 11), Email1),
            "ItemListHTML", "<li><strong>" & Left(Result,10) & " - " & Mid(Result, 12, 11) & " - " & LookUp(Spiderfood_RITMData, Number = Mid(Result, 12, 11), Name) & "</li></strong>")
          ); // ClearCollect(MailingListExploded

通常可以,但最近有时不起作用。这意味着它找不到 Result。我已经确认 ResultScanDataCollection 中的正确值,但是当 ClearCollect 函数运行时,该结果有时有效,有时无效。

所以我突然想看看我的包含 table Spiderfood_RITMData 的数据集,恰逢我们开始看到错误的时候,table 的大小开始增长。现在,大约有 2900 条记录。随着时间的推移,计数会越来越高。我已经查看了数据库,我真的无法让该数据集变小,因为这是一个“未结订单”列表,过去一年由于 COVID 的原因,这些订单一直很少,但会进一步攀升。

我检查了数据库(一个 Azure SQL 数据库),它应该找到的记录就在那里。

问题一: 我是否看到 PowerApps 无法查看整个数据集的情况?

问题二: 如果是这样,您认为解决此问题的最佳方法是什么?

我对 PowerApps 还很陌生,如果能稍微掌握一下,我会很感激。

谢谢你,

爱德华

编辑:如果需要,我可以将这些数据放在不同的来源中。我可以控制这些数据和应用程序。

编辑 2:我几乎完全确定这是一个委托错误。我正在尝试使用 IN 运算符以不同的方式提取数据,但它似乎仍然表明存在潜在的委托错误,而且似乎也没有检索数据。这是我正在尝试的代码,但没有成功:

       // Begin by building the Collections needed to feed the email tool.
          ClearCollect(MailingListExploded1, AddColumns(ScanDataCollection,
            "CustomerName", LookUp(Spiderfood_RITMData, Mid(Result, 12, 11) in Number, Name1),
            "CustomerEmail", LookUp(Spiderfood_RITMData, Mid(Result, 12, 11) in Number, Email),
            "ManagerName", LookUp(Spiderfood_RITMData, Mid(Result, 12, 11) in Number, Name2),
            "ManagerEmail", LookUp(Spiderfood_RITMData, Mid(Result, 12, 11) in Number, Email1),
            "ItemListHTML", "<li><strong>" & Left(Result,10) & " - " & Mid(Result, 12, 11) & " - " & LookUp(Spiderfood_RITMData, Mid(Result, 12, 11) in Number, Name) & "</li></strong>")
          ); // ClearCollect(MailingListExploded

我想我编码有误。如何使用 IN 函数创建此 Collection 更好?

这是一个委派问题。一旦你成长,你的记录将不会超过你在应用程序中设置的限制。 500 到 2000 之间的任何值。

如果你只是想发送信息,你应该使用委托查询,https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/delegation-overview或者考虑一下 PowerAutomate?

例如每天 运行 收集信息并将其发送到您的工具以供所有客户使用。

好的,这就是我到目前为止学到的...

因为我使用的是 SQL Azure 数据库,某些功能 可委托的。

不过,好像是MID的中流计算出了问题。至少据我所知。

所以我将 MID 提取了一个级别,添加了一个名为 RawRITM 的新列,这是计算的 MID 字符串。然后,在接下来的几行中,我没有每次都使用 MID,而是简单地使用了新集合中的 RawRITM。

像这样:

       // Begin by building the Collections needed to feed the email tool.
          ClearCollect(ScanDataCollectionPlus, AddColumns(ScanDataCollection, "RawRITM", Mid(Result, 12, 11)));
          ClearCollect(MailingListExploded, AddColumns(ScanDataCollectionPlus,
            "CustomerName", LookUp(Spiderfood_RITMData, Number = RawRITM, Name1),
            "CustomerEmail", LookUp(Spiderfood_RITMData, Number = RawRITM, Email),
            "ManagerName", LookUp(Spiderfood_RITMData, Number = RawRITM, Name2),
            "ManagerEmail", LookUp(Spiderfood_RITMData, Number = RawRITM, Email1),
            "ItemListHTML", "<li><strong>" & Left(Result,10) & " - " & RawRITM & " - " & LookUp(Spiderfood_RITMData, Number = RawRITM, Name) & "</li></strong>")
          ); // ClearCollect(MailingListExploded

       // Trim away the Result column
          ClearCollect(MailingListExplodedTrimmed, DropColumns(MailingListExploded, "Result", "RawRITM"));

这似乎消除了所有委派警告。我们将看看修复程序在生产中的表现如何。

此外,我使用相同的技巧修复了代码中的另外六个委托错误。所以,谢天谢地,在这一点上,我的应用程序有 零委托警告

--

感谢Matthew Devaney, who gave me the first hint on the MID calculations