PowerApps数据源已更改为存储过程

问题描述 投票:0回答:2

PowerApps库中的数据源是SQL视图。

Search('[dbo].[vwCandidate]', textSearchCandidate.Text, "NameLast", "NameFirst", "MiscellaneousTags", "EmailAddress", "PhoneNumber")

所选记录填充了表单项的全局变量。

Set(varCandidate, gallerySearchResults.Selected)

一切都按预期工作。然后,我更改了数据源以使用存储过程将搜索从PowerApps移动到SQL Server。这样做后,我收到了错误消息

“不兼容的类型。我们无法评估您的公式,因为上下文变量类型与应用程序中其他位置的值类型不兼容”

我无法恢复到没有得到相同错误的视图。我希望我唯一的选择是不使用新变量并更改表单/ App中的每个匹配项。如果可能的话,我想避免这种情况。

我无法查看表单,所以我不确定如何正确调试。我的预感是通过Flow返回的日期字段导致问题。它们是'smalldatetime'类型,并且Flow返回字符串'yyyy-mm-ddThh:mm:ss.000',即使请求'date'。

"PhoneNumber": {
  "type": "string"
},
"CandidateStatus": {
  "type": "string"
},
"DateApplied": {
  "type": "string",
  "format": "date"
},

这里的流JSON似乎不喜欢任何其他'日期'格式类型。

Flow有什么变通方法吗?我在设置全局变量时应该重新格式化日期值吗?建议吗?

sql flow powerapps
2个回答
1
投票

事实证明,我在正确的轨道上认为DATE数据类型来自Flow作为字符串。原因如下:

在设置全局变量时使用Patch函数创建了一条新记录:

Set(varCandidate, Patch('[dbo].[candidate]', Defaults('[dbo].[candidate]'), {DateApplied: DateTimeValue(Text(Now())), CreatedDate:DateTimeValue(Text(Now())), CreatedBy:varUser.Email}))

“DateApplied”字段在SQL表中是“DATE”类型,它来自Flow作为字符串“2019-03-13T17:40:52.000”。当我想编辑记录时,来自Flow的记录集被设置为相同的全局变量

Set(varCandidate, gallerySearchResults.Selected)

错误“不兼容类型”(请参阅​​完整错误消息的问题)是由于此字段是新记录中的“日期值”和编辑记录中的“字符串”。

我的修复是从补丁中删除此“日期”类型字段并修改流程以按ID检索新创建的记录记录。


0
投票
  1. 重置所有内容,包括数据源,然后完全保存并关闭应用程序,重新测试。
  2. 删除所有流连接,然后完全保存并关闭应用程序,重新测试,然后重新添加流连接。

我不是为什么,但PowerApps有时会持续存在数据连接错误,直到您关闭应用程序。

并且只是为了确认PowerApps不支持存储过程作为数据源,只是使用补丁功能等进行写入。

© www.soinside.com 2019 - 2024. All rights reserved.