Как получить атрибуты предмета через API?

Мы используем облако Dynamics 365 Business Central и пытаемся получить элементы со всеми атрибутами через OData.

В документации Microsoft мы нашли эту конечную точку:

api.businesscentral.dynamics.com/v1.0[our tenant id]/Sandbox/ODataV4/Company('CRONUS%20DE')/items

Но, к сожалению, ответ не содержит атрибутов и значений элементов, таких как Farbe, Tiefe и т. Д.

Далее мы попытались добавить новые веб-сервисы. Но некоторые из этих конечных точек возвращают пустые значения, а некоторые из них (7506, 7507, 7508, 7510) не работают и возвращают:

No HTTP resource was found that matches the request URI

Объекты 7500, 7501, 7503 содержат информацию об атрибутах. Но ни один из них (7500 - 7510) не содержит отношения между Предметом, Атрибутами и Значениями.

Может быть, есть другой способ получить элементы со значениями их атрибутов? Мы также пытались исследовать график Microsoft, но безуспешно.

2 ответа

у меня похожие проблемы с этим. Я считаю, что API динамики исключительно не интуитивно понятен и сложен в использовании. Самое большее, что я смог получить, это войти в настройки api для динамики и раскрыть таблицы для нескольких атрибутов элементов (я считаю, что номера таблиц такие, как показано ниже:

  • 7500 - Атрибут предмета
  • 7501 - Значение атрибута предмета
  • 7502 - Преобразование атрибутов предмета
  • 7504 - Выбор значения атрибута предмета
  • 7505 - Отображение значения атрибута предмета

Я не могу комментировать, почему отсутствует 7503.

используя 7500 в качестве примера, когда вы открываете таблицу, система предоставляет конечную точку (к сожалению, они всегда продвигают OData и устаревшие ресурсы SOAP; я не могу понять, почему у них такая вендетта против простых и простых - использовать конечную точку REST).

https://api.businesscentral.dynamics.com/v2.0/<TENANT_ID>/<ENVIRONMENT_NAME>/ODataV4/Company('COMPANY_IDENTIFIER')/ItemAttributes

используя эту конечную точку, вы можете получить список самих типов атрибутов (например, скажем, вы определили атрибут с именем 'BaseColor', вы должны получить здесь результат для имени атрибута 'BaseColor', его идентификатора, его типа , так далее.),

с конечной точкой ItemAttributeValues ​​вы должны получить фактические значения атрибутов, которые существуют (например, для некоторого элемента вы случайно установили для его атрибута BaseColor значение Blue, вы должны получить ответ для этого значения атрибута с типом атрибута BaseColor, значение в виде «Blue» вместе с идентификатором объекта и т. Д.).

тем не менее, когда дело доходит до любых созданных значений атрибутов для элементов, я не могу понять, как получить ассоциацию атрибутов с этими элементами. Я ожидаю, что опция «сопоставление значений атрибутов элемента» будет чем-то вроде пары item_id - attribute_id, чтобы для любого рассматриваемого элемента можно было запросить список атрибутов с помощью чего-то вроде фильтра. но, как вы сказали, после обнаружения некоторых из этих элементов их соответствующие конечные точки ничего не возвращают. вы доходите до того момента, когда вы говорите: «О ... УДИВИТЕЛЬНЫЙ! есть отображение «значение-элемент». это имеет смысл, и я определенно могу это использовать ». несколько мгновений спустя API плюет вам в лицо ошибкой или насмехается над вами, возвращая то, чего вы не ожидаете, например, пустой набор данных.

этот api - это постоянная тяжелая битва, полностью пронизанная наземными минами. полный взорвать меня-занозой в заднице.

Вы должны попробовать с конечной точкой ниже:

/v2.0/tenant_id/enviornment_name/ODataV4/Company(company_id)/Items
Другие вопросы по тегам