PowerApps库中的数据源是一个SQL视图。
Search('[dbo].[vwCandidate]', textSearchCandidate.Text, "NameLast", "NameFirst", "MiscellaneousTags", "EmailAddress", "PhoneNumber")
所选记录填充了表单项的全局变量。
Set(varCandidate, gallerySearchResults.Selected)
一切正常。然后,我更改了数据源,以使用存储过程将搜索从PowerApps移至SQL Server。这样做之后,我收到了错误消息
“不兼容的类型。由于上下文,我们无法评估您的公式 变量类型与其他类型的值类型不兼容 在您应用中的位置”
如果没有出现相同的错误,我将无法恢复到正在工作的视图。我希望我唯一的选择是不要使用新变量并更改表单/应用程序中的每个匹配项。我想避免这种情况。
我无法查看该表单,因此不确定如何正确调试。我的直觉是通过Flow返回的日期字段导致了问题。它们是“ smalldatetime”类型,即使请求了“ date”,Flow也会返回字符串“ yyyy-mm-ddThh:mm:ss.000
”。
"PhoneNumber": {
"type": "string"
},
"CandidateStatus": {
"type": "string"
},
"DateApplied": {
"type": "string",
"format": "date"
},
此处的Flow JSON似乎不喜欢其他任何“日期”格式类型。
Flow是否有任何解决方法?设置全局变量时是否应重新格式化日期值?咨询吗?
答案 0 :(得分:0)
重置所有内容,包括数据源,然后完全保存并关闭应用程序,然后重新测试。
删除所有流连接,然后完全保存并关闭应用程序,重新测试,然后重新添加流连接。
我不为什么,但是PowerApps有时会一直存在数据连接错误,直到您关闭该应用程序为止。
仅是为了确认PowerApps不支持将存储过程作为数据源,而仅将其作为使用补丁功能的写入方式来支持。
答案 1 :(得分:0)
结果证明,我在正确的轨道上以为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)
错误“不兼容类型”(有关完整的错误消息,请参见问题)是由于此字段在新记录中是“日期值”,而在编辑记录中是“字符串”。
我的解决方法是从补丁中删除此“日期”类型字段,并修改Flow以按ID检索新创建的记录。