Многоуровневый запрос OData к CDS возвращает странные результаты на 3-м уровне - PullRequest
0 голосов
/ 14 февраля 2020

Я запрашиваю нашу установку MS Dynamics HR Talent с помощью OData WebApi. Я выполняю этот запрос: https://nnnnnnnnnnn.crm.dynamics.com/api/data/v9.1/cdm_workers? $ Select = cdm_fullname, cdm_primaryemailaddress & $ expand = cdm_worker_employment ($ select = cdm_employmentnumber, cdm_ompayrollid_custom, _cdm_companyid_value; $ expand = cdm4). Сущности не являются пользовательскими, но некоторые имеют одно или два настраиваемых поля.

Когда результаты возвращаются, значения для cdm_workers и для cdm_worker_employment - это то, что я ожидал. Однако значения для cdm_CompanyId не являются. Значения для всех полей являются нулевыми, за исключением cdm_companyid, который я и ожидал, и дополнительного неожиданного поля с именем '__DisplayName__', которое имеет значение, которое я ожидаю увидеть в cdm_companycode.

Может Кто-нибудь объяснит, что происходит и почему я вижу это поведение?

Вот пример результатов, которые я получаю из этого запроса:

  "value" : [ {
    "@odata.etag" : "W/\"3017162\"",
    "cdm_fullname" : "Mmmmmm Rrrrrr Tttttttt",
    "cdm_primaryemailaddress" : "mmmm.ttttttt@xyz.org",
    "cdm_workerid" : "95f1fee2-2dcb-e911-a81d-000d3a1cae2a",
    "cdm_worker_employment" : [ {
      "@odata.etag" : "W/\"3767381\"",
      "cdm_employmentnumber" : "EMPL0001029",
      "cdm_ompayrollid_custom" : "444",
      "_cdm_companyid_value" : "38d41deb-6888-e911-a81a-000d3a1cae2a",
      "_cdm_workerid_value" : "95f1fee2-2dcb-e911-a81d-000d3a1cae2a",
      "cdm_employmentid" : "bcb1f5df-2dcb-e911-a821-000d3a1ca610",
      "cdm_CompanyId" : {
        "_createdby_value" : null,
        "overriddencreatedon" : null,
        "_ownerid_value" : null,
        "timezoneruleversionnumber" : null,
        "_modifiedonbehalfby_value" : null,
        "utcconversiontimezonecode" : null,
        "_modifiedby_value" : null,
        "createdon" : null,
        "_owningbusinessunit_value" : null,
        "_owningteam_value" : null,
        "statuscode" : null,
        "cdm_name" : null,
        "versionnumber" : null,
        "_createdonbehalfby_value" : null,
        "cdm_companyid" : "38d41deb-6888-e911-a81a-000d3a1cae2a",
        "_owninguser_value" : null,
        "statecode" : null,
        "cdm_companycode" : null,
        "modifiedon" : null,
        "importsequencenumber" : null,
        "__DisplayName__" : "100",
        "IsReferencedQueryCall" : true
      }
    } ]

Для сравнения, вот результат, который я получаю для этого запроса: https://nnnnnnnnnnn.crm.dynamics.com/api/data/v9.1/cdm_companies? $ filter = cdm_companyid + eq + '38d41deb-6888-e911-a81a-000d3a1cae2a'

  "value" : [ {
    "@odata.etag" : "W/\"3497456\"",
    "_owningbusinessunit_value" : "f1ed9fcc-496e-e911-a9b7-000d3a152d6d",
    "cdm_companyid" : "38d41deb-6888-e911-a81a-000d3a1cae2a",
    "cdm_name" : "International",
    "statecode" : 0,
    "statuscode" : 1,
    "_createdby_value" : "fe5e4d27-0b70-e911-a817-000d3a1ca508",
    "cdm_companycode" : "100",
    "_ownerid_value" : "fe5e4d27-0b70-e911-a817-000d3a1ca508",
    "_modifiedby_value" : "fe5e4d27-0b70-e911-a817-000d3a1ca508",
    "_owninguser_value" : "fe5e4d27-0b70-e911-a817-000d3a1ca508",
    "createdon" : "2019-06-06T14:39:47Z",
    "versionnumber" : 3497456,
    "modifiedon" : "2019-10-24T07:59:37Z",
    "overriddencreatedon" : null,
    "timezoneruleversionnumber" : null,
    "_modifiedonbehalfby_value" : null,
    "utcconversiontimezonecode" : null,
    "_owningteam_value" : null,
    "_createdonbehalfby_value" : null,
    "importsequencenumber" : null
  } ]

Я ожидал увидеть эти данные в объекте cdm_CompanyId предыдущих результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...