【发布时间】:2019-07-30 13:31:21
【问题描述】:
向Powerapps Model Driven / Dynamics Client API 发出请求时,如果您在任何查询字符串中出现错误,则会返回一个空白错误对象。即使响应正文包含错误对象,它也不会被解析。
按照上面为retrieveMultipleRecords 链接的文档中的示例,我有一个实体,其中包含一个名为new_OfferedBy 的用户的查找字段。为了将其过滤到特定用户,您需要过滤/systemuserid。如果任何属性的名称错误(区分大小写),您会收到 400 响应。下面的示例将返回 400 响应。
// this query looks for the systemuser property when it should look for systemuserid
// this.currentUser returns the guid of the current user
var query = "?$filter=new_OfferedBy/systemuser eq (" + this.currentUser() +")";
Xrm.WebApi
.retrieveMultipleRecords("new_lastaskswap", query)
.then(
function success(result) {
console.log("Result Success:");
console.log(result);
// perform additional operations on retrieved records
},
function (error) {
console.log("Error from .then():");
console.log(error);
// handle error conditions
}
)
它将以下信息输出到控制台,这根本没有用。
{errorCode: 2147951872, message: "", code: 2147951872, innerror: undefined}
但是,如果您在 Chrome 开发工具中查看请求的实际响应,您会发现响应正文中填充了 JSON,以一种有用的方式描述错误:
为什么响应体在返回 400 时没有被 API 解析,这不是预期的行为吗?
【问题讨论】:
-
我不能专门针对 Dynamics API 发言,但是在 PowerApps 中创建自定义连接器(用于 Canvas 应用程序)时,您必须定义可能的响应。您是否可以选择在 Dynamics 中将 400 响应定义为连接的一部分?
-
你会认为这就是错误函数的用途,但它不会解析响应
标签: javascript dynamics-crm-online dynamics-crm-webapi powerapps-modeldriven