Адресация поля UTCDateTime в URL объекта данных для метода patch в почтальоне ~ D365FO
Приветствую вас!
Я пытаюсь обновить (т.е. метод Patch) объект PartyLocationPostalAddressesV2 через почтальона для целей интеграции. У него есть один ключ, который содержит три поля [PartyNumber, LocationID, ValidFrom]. Мне нужно обратиться к URL.
Я пытаюсь так:
D365EnvironmentAddress/.../PartyLocationPostalAddressesV2(dataAreaId='206'PartyNumber='000219507'LocationId='L000007558'ValidFrom='2021-10-20T06:54:04Z')
Но я получаю эту ошибку:
"Message": "No HTTP resource was found that matches the request URI '">D365EnvironmentAddress/.../PartyLocationPostalAddressesV2(dataAreaId='206'PartyNumber='000219507'LocationId='L000007558'ValidFrom=2021-10-20T06:54:04Z)'. No route data was found for this request."
Я пробовал с фильтром вместо адресации,
D365EnvironmentAddress/.../PartyLocationPostalAddressesV2 PartyNumber eq '000219507' and LocationId eq 'L000007558' and ValidFrom eq 2021-10-20T06:54:04Z
и это работает, но для обновления поля нам нужно использовать адресацию только в соответствии с моими знаниями, поэтому, пожалуйста, помогите мне с этим. Я знаю, что мне нужно что-то изменить в поле validfrom. Но не смог узнать. Потому что при использовании фильтра я получил ту же ошибку, поэтому попытался удалить одинарные кавычки для поля validFrom, и это сработало. Я пробовал то же самое для адресации, но мне чего-то не хватает. Пожалуйста, проведите меня через это. Заранее спасибо! Я тоже прикрепил скриншоты.
1 ответ
С моей стороны это работало в среде 10.0.20 с демонстрационными данными Contoso.
Вот некоторые из проблем, с которыми я столкнулся, которые я также вижу в примере запроса вопроса:
- Запрос в формате адресации включает в себя расширение . В этом нет необходимости, так как данные
PartyLocationPostalAddressesV2
сущность не относится к конкретной компании. ВключаяdataAreaId
с форматом адресации приводит к описанной проблеме для этих объектов. - Как и в запросе с фильтром, значение для
ValidFrom
не должно быть в кавычках. Это также приводит к описанной проблеме.
Поэтому убедитесь, что оба они исправлены, прежде чем пытаться снова.
Для справки, это запрос GET, который сработал для меня:
{{D365EnvironmentAddress}}/data/PartyLocationPostalAddressesV2(PartyNumber='000000002',LocationId='000000002',ValidFrom=2013-07-02T18:38:16Z)
Запрос PATCH выглядит так же, я использовал следующую полезную нагрузку для успешного обновления улицы (убедитесь, что тип содержимого полезной нагрузки установлен на application/json):
{
"Street": "123 Third Street"
}
Обратите внимание, что запрос PATCH возвращает код состояния 204 No Content, но данные обновляются.
Наконец, вот данные JSON записи, с которой я работал, возвращенные запросом GET:
{
"@odata.context": "https://usnconeboxax1aos.cloud.onebox.dynamics.com/data/$metadata#PartyLocationPostalAddressesV2/$entity",
"@odata.etag": "W/\"JzAsNTYzNzE0NDgyNjszNjMxNDk1NjIsNTYzNzE0NDgyNic=\"",
"PartyNumber": "000000002",
"LocationId": "000000002",
"ValidFrom": "2013-07-02T18:38:16Z",
"Address": "123 Third Street\nBaldwin City, KS 66006\nUSA",
"IsPrivate": "No",
"Description": "Head Office",
"IsPrimary": "Yes",
"IsPrivatePostalAddress": "No",
"IsRoleDelivery": "No",
"IsPrimaryTaxRegistration": "Yes",
"CityInKana": "",
"ZipCode": "66006",
"IsRoleBusiness": "No",
"PostBox": "",
"DunsNumber": "",
"Apartment_RU": "",
"DistrictName": "",
"BuildingCompliment": "",
"CountryRegionISOCode": "US",
"StreetInKana": "",
"CountryRegionId": "USA",
"IsLocationOwner": "Yes",
"TimeZone": null,
"ValidTo": "2154-12-31T23:59:59Z",
"Longitude": 0,
"Building_RU": "",
"County": "",
"StreetNumber": "",
"Latitude": 0,
"IsRoleHome": "No",
"IsRoleInvoice": "No",
"City": "Baldwin City",
"AttentionToAddressLine": "",
"Roles": "Business",
"Street": "123 Third Street",
"State": "KS"
}