这个“ IsValidODataAttribute”:在/ api / data / v ...中的真实含义是什么?

时间:2019-10-01 13:15:16

标签: dynamics-crm dynamics-365 dynamics-crm-365 dynamics-crm-webapi

查询实体类型为activityparty的记录时遇到问题。 我将请求用于GET /api/data/v.../activityparties?$select=activitypartyid,partyidname 但失败并显示错误:

  

{“错误”:{         “ code”:“ 0x0”,         “”消息“:”在类型'Microsoft.Dynamics.CRM.activityparty'上找不到名为'partyidname'的属性。 }

我从请求到activitypartyid的那两个partyidnameEntityDefinitions('activityparty')字段名。

  

...“ PrimaryIdAttribute ”:“ activitypartyid ”,“ PrimaryImageAttribute”:   null,“ PrimaryNameAttribute ”:“ partyidname ”,...

然后我查询EntityDefinitions('activityparty')/Attributes以了解是否存在partyidname属性。我在这里找到了一个有趣的字段'IsValidODataAttribute'= false 。这是否意味着该字段可以是JSON格式,也可以不是?那到底是什么意思?我想问题出在这种情况下,否则我不知道自己在做什么错:)

一个activityparty实体记录的完整表示形式:

{  
   "@odata.etag":"W/\"2392630\"",
   "_ownerid_value":"68682bd9-701b-460a-a383-c6d38a8d25ae",
   "activitypartyid":"b0f76c9b-49b9-45ca-b15c-0179a421f680",
   "participationtypemask":9,
   "_activityid_value":"7418ab6b-fbd2-e911-a993-000d3a3a1688",
   "ispartydeleted":false,
   "versionnumber":2392630,
   "scheduledend":"2019-09-08T12:00:00Z",
   "_partyid_value":"68682bd9-701b-460a-a383-c6d38a8d25ae",
   "scheduledstart":"2019-09-08T12:00:00Z",
   "instancetypecode":0,
   "addressusedemailcolumnnumber":null,
   "donotemail":null,
   "donotfax":null,
   "addressused":null,
   "_resourcespecid_value":null,
   "exchangeentryid":null,
   "donotphone":null,
   "donotpostalmail":null,
   "effort":null
}

1 个答案:

答案 0 :(得分:0)

我想您正在下面的Web api调用中寻找它。

您应该使用_partyid_value@OData.Community.Display.V1.FormattedValue以获得预期的结果。

Xrm.WebApi.online.retrieveMultipleRecords("activityparty", "?$select=activitypartyid,_partyid_value").then(
    function success(results) {
        for (var i = 0; i < results.entities.length; i++) {
            var activitypartyid = results.entities[i]["activitypartyid"];
            var _partyid_value = results.entities[i]["_partyid_value"];
            var _partyid_value_formatted = results.entities[i]["_partyid_value@OData.Community.Display.V1.FormattedValue"];
            var _partyid_value_lookuplogicalname = results.entities[i]["_partyid_value@Microsoft.Dynamics.CRM.lookuplogicalname"];
        }
    },
    function(error) {
        Xrm.Utility.alertDialog(error.message);
    }
);

建议将CRM REST Builder用于无错误的Web api语法和有效载荷。