Поле Branch присутствует в JSON, но Acumatica игнорирует его и говорит, что «Branch не может быть пустым».
Конечная точка api - /acumaticadb/entity/Default/17.200.001, и я помещаю JSON в / SalesOrder, пытаясь создать новый заказ.
Поле ветки присутствует в json на уровне детализации. Я попробовал «Branch» и «BranchID» на уровне заголовка и сведений о заказе, но по-прежнему получаю ту же ошибку.
Я пытался указать ветку во время запроса на вход. Все еще та же ошибка при создании заказа.
Точный текст ошибки: «PX.Data.PXException: Error: 'Branch' не может быть пустым». Трассировка стека не очень информативна, в ней говорится, что при попытке сохранить порядок возникла ошибка.
Через веб-интерфейс заказы с товарами могут быть созданы одним и тем же пользователем.
Этот вопрос почти идентичен / 49039152, но разрешения там не было.
Обновлено: не заметил, что код не прошел, вот запрос:
PUT: http: //localhost/acumaticadb/entity/Default/17.200.001/SalesOrder
{
"Details": [{
"OrderQty": {"value": "10"},
"BranchID": {"value": "HQ"},
"Branch": {"value": "HQ"},
"InventoryID": {"value": "CONBABY1"}
}],
"CustomerOrder": {"value": "TOYONEILLTEST"},
"LocationID": {"value": "MAIN"},
"CustomerID": {"value": "TOYONEILL"},
"BranchID": {"value": "HQ"},
"Branch": {"value": "HQ"}
}
Скриншот ветки:
В профиле пользователя задана ветка по умолчанию, всегда была установлена.
Возможно, стоит посмотреть на ваш метод входа в систему и на метод получения / ввода как часть вашего вопроса.
Метод входа в систему отличается небольшой гибкостью - вы указываете имя пользователя, пароль, компанию и необязательную ветвь. Указание ветки не помогло. ПОЛУЧЕНИЕ существующего заказа - с развернутыми деталями - показывает поле ветви на каждой детали. Размещение нового заказа - с полем филиала на том же уровне, уровне детализации - приводит к описанной ошибке.
Добавил в вопрос тело запроса (не заметил, как с первого раза пришло).
И, наконец, не могли бы вы прислать мне снимок экрана (или чего-то еще) ветки, которую вы пытаетесь использовать? Обычно, когда появляется «Ошибка: 'X' не может быть пустым». он может не существовать в системе.
Добавил скриншот. Это тестовые данные, которые поставляются с установщиком Acumatica ERP.
Чтобы все не казалось, что они затягиваются, я взял опубликованный вами фрагмент с критериями: 1. Пользователь, имеющий ветку по умолчанию, 2. Создал новую ветку, 3. И некоторая псевдо-информация для заказа на продажу. Мне удалось создать заказ на продажу. Работал как в версии 6.1, так и в 2017 году. Не было возможности протестировать в 2018 году. Извините, я больше ничем не могу помочь. Удачи!
Я не слишком знаком с API веб-служб, но разве BranchID не должен быть целочисленным типом? Я бы подумал, что ветвь пуста, потому что ей было присвоено значение null, когда она не прошла проверку.





Я часами пытался это исправить и, наконец, пришел к решению. Проблема для меня заключалась в том, что у пользователя, которого я использовал для API, не было роли пользователя, необходимой для доступа к указанному филиалу / компании. Это был случай очень вводящего в заблуждение сообщения об ошибке. Думаю, я использую те же тестовые данные «Демонстрация продаж», что и вы. Я немного опоздал на вечеринку, но надеюсь, что это поможет другим.
Чинить:
Если кто-то еще столкнется с той же ошибкой, и решение @ micwallace не сработало для вас.
Если вы указываете необязательный параметр branch в вызове входа в систему, возможно, стоит дважды проверить, что вы использовали Branch ID, а не Branch Name в качестве значения, которое можно найти на экране ветви.
например Если бы мы взглянули на прикрепленный скриншот демонстрации продаж 2019R1 и захотели использовать ветвь Продукция Розничная торговля от компании Вторая редакция продуктов, правильным значением для использования в вызове входа в систему было бы ПРОДУКТ.
{
"name" : "{{api_username}}",
"password" : "{{api_password}}",
"company" : "{{tenant_login_name}}",
"branch" : "PRODRETAIL",
"locale" : "{{locale_code}}"
}
Возможно, стоит посмотреть в профиле пользователя, в который вы входите, чтобы убедиться, что установлена ветка по умолчанию.