javascript - 使用新的 retrieveMultipleRecords 从 fetchXml 获取结果(客户端 API 参考)
问题描述
无法确定如何使用新的 retrieveMultipleRecords(客户端 API 参考)从以下 fetchXml 中获取结果:
var request = "<fetch output-format='xml-platform' distinct='true' version='1.0' mapping='logical'>" +
"<entity name='msdyn_incidenttype'>" +
"<attribute name='msdyn_name'/>" +
"<attribute name='createdon'/>" +
"<attribute name='msdyn_estimatedduration'/>" +
"<attribute name='msdyn_incidenttypeid'/>" +
"<order attribute='msdyn_name' descending='false'/>" +
"<link-entity name='product' link-type='inner' alias='ag' from='productid' to='aka_productfamilyid'>" +
"<link-entity name='msdyn_customerasset' link-type='inner' alias='ah' from='msdyn_product' to='productid'>" +
"<filter type='and'>" +
"<condition attribute='msdyn_customerassetid' operator='eq' uiname='' uitype='msdyn_customerasset' value='${custAssetId}'/>" +
"</filter>" +
"</link-entity>" +
"</link-entity>" +
"</entity>" +
"</fetch>";
我将上面的 fetchXml 与新的客户端 api 参考一起使用,如下所示:
var results = Xrm.WebApi.retrieveMultipleRecords("msdyn_incidenttype",request).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
console.log("Next page link: " + result.nextLink);
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
我阅读的文档(https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-webapi/retrievemultiplerecords)指出第二个参数是选项,如果是 fetchXml (如我正在使用)然后在那里指定它。但是我在控制台中收到以下错误:
HTTP400: BAD REQUEST - 由于语法无效,服务器无法处理请求。(XHR)GET - https://dev.crm.dynamics.com/api/data/v9.0/msdyn_incidenttypes?fetch output-format='xml-platform' distinct='true' version='1.0' mapping='logical'>实体名='msdyn_incidenttype'>属性名='msdyn_name'/>属性名='createdon'/>属性名='msdyn_estimatedduration'/>属性名称='msdyn_incidenttypeid'/>订单属性='msdyn_name'降序='false'/>链接实体名称='产品'链接类型='inner'别名='ag' from=' productid' to='aka_productfamilyid'>link-entity name='msdyn_customerasset' link-type='inner' alias='ah' from='msdyn_product' to='productid'>filter type='and'>条件属性=' msdyn_customerassetid' operator='eq' uiname='' uitype='msdyn_customerasset' value='${custAssetId}'/>/filter>/link-entity>/link-entity>/entity>/fetch>
我在这里错过了什么吗?
解决方案
您应该"?fetchXml="
在前面添加如下:
Xrm.WebApi.retrieveMultipleRecords("msdyn_incidenttype", "?fetchXml= " + request).then(
function success(result) {
return result;
},
function (error) {
console.log("failed with error: ", error);
return null;
}
);
选项
OData 系统查询选项或 FetchXML 查询来检索您的数据。
支持以下系统查询选项:$select、$top、$filter、$expand 和 $orderby。
要指定 FetchXML 查询,请使用
fetchXml
属性来指定查询。
推荐阅读
- command-line - 如何使用 ImageMagick 命令合并签名和我的模块?
- python - 在 Python 中使用 Mongoengine 中的嵌套/嵌入文档
- javascript - 使用 AJAX、JavaScript 调用 python flask 函数并返回 JavaScript
- python - 使用 BeautifulSoup 进行网页抓取时,我可以接受或忽略 Google 隐私声明吗?
- amazon-dynamodb - 有条件地从列表属性中删除项目
- java - Java - 函数可以返回与输入参数之一相同的类型吗?
- r - R警告:在公式中产生了NaN
- android - android paging 3 line after adapter.submitData 没有被执行
- ssl - ServerKeyExchange 后 TLS 握手中的解密错误
- http - Erlang httpc Web 服务器返回 {error, socket_closed_remotely}