在PowerApps中调用存储过程时遭遇404资源未找到错误求助
PowerApps调用SQL存储过程返回404 "Resource not found" 问题排查
问题概述
SQL Server连接正常,其他数据检索场景无报错,但调用存储过程时持续收到错误:{ statusCode: 404, message: "Resource not found" }
调用代码:
Table(SqlStoredProc.dboGetStructureCosts({ProjectID: DataCardValue1_2.Text, Stage: StageField.Selected.Value, Version: VersionField.Selected.Value, Type: TypeField.Text}).ResultSets.Table1)
已尝试操作:重建存储过程连接、等待超过24小时同步、使用ClearCollect/Table()不同调用方式,均无效。
排查步骤
检查存储过程命名匹配
确认SQL中存储过程的完整名称是dbo.GetStructureCosts,PowerApps中正确的调用格式应为SqlStoredProc.dbo.GetStructureCosts(注意dbo和存储过程名之间的点号),当前写法dboGetStructureCosts可能因命名拼接错误导致资源找不到。验证参数类型一致性
核对SQL存储过程的参数类型与PowerApps传入值的类型:- 若
ProjectID是数值类型,需用Value(DataCardValue1_2.Text)转换,而非直接传.Text - 确认下拉框
Selected.Value的类型与对应存储过程参数类型兼容
- 若
确认存储过程返回结果集
直接在SQL Server中执行该存储过程,传入相同参数,检查是否能正常返回名为Table1的结果集。若存储过程无返回结果或结果集名称不匹配,也可能触发404错误。检查PowerApps连接权限
确保PowerApps使用的SQL登录账号拥有该存储过程的EXECUTE权限,以及对存储过程涉及表的读取权限。权限不足可能表现为资源找不到的404错误。简化调用测试
先用硬编码参数调用排除控件值影响:ClearCollect(testResult, SqlStoredProc.dbo.GetStructureCosts({ProjectID: "测试ID", Stage: "测试阶段", Version: "测试版本", Type: "测试类型"}).ResultSets.Table1)若硬编码调用成功,再逐步替换为控件值排查参数传递问题。
内容的提问来源于stack exchange,提问作者Geoff Tanaka
相关产品推荐
相关产品推荐

