API $ развернуть и & подсчитать

Можно ли использовать $expand, но вместо возврата коллекции объектов просто вернуть количество объектов?

Например, получите аккаунт и количество его аннотаций за один вызов WebApi.

Я пробовал несколько вещей.

  • Очевидная попытка: accounts(6CDEEB72-2AC8-E711-A825-000D3AE0A7F8)?$select=name&$expand=Account_Annotation($count=true) возвращает все поля всех аннотаций, но ничего не считает.

  • Затем я попробовал, accounts(6CDEEB72-2AC8-E711-A825-000D3AE0A7F8)?$select=name&$expand=Account_Annotation($select=annotationid&$count=true) возвращает ошибку: «Найдено несбалансированное выражение в скобках». Я думаю, это связано с символом & в $expand

  • Я нашел блог, не относящийся к crm, в котором говорилось, что эту проблему можно решить с помощью ;, но когда я попробовал accounts(6CDEEB72-2AC8-E711-A825-000D3AE0A7F8)?$select=name&$expand=Account_Annotation($select=annotationid;$count=true), он не выдает ошибки, но инструкция $count, похоже, игнорируется

  • Безумная попытка accounts(6CDEEB72-2AC8-E711-A825-000D3AE0A7F8)?$select=name&$count=Account_Annotation($select=annotationid) возвращает ошибку «недействительный счет»

Я предполагаю, что это неправильная комбинация, но я подумал, что опубликую здесь, если кто-то еще добился этого успешно.


person jasonscript    schedule 10.04.2018    source источник


Ответы (1)


У меня это работает, но я не уверен, что это именно то, что вы ищете, это работает, только если я поставлю счетчик до расширения:

api/data/v9.0/cmnt_salesexample?
$select=endcustomeraccountid&$count=true&$expand=endcustomerid($select=accountid)

вывод:

{
"@odata.context": "https://xyz",
"@odata.count": 5000,
"value": [
 {
  "@odata.etag": "W/\"3560581422\"",
  "endcustomerid": "54321"
},
{
  "@odata.etag": "W/\"3510396844\"",
  "endcustomerid": "12345"  
},
...
person viktorh    schedule 14.02.2019