Ветка Acumatica api не может быть пустой

Поле 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"}
}

Скриншот ветки:

Hq Филиал

Возможно, стоит посмотреть в профиле пользователя, в который вы входите, чтобы убедиться, что установлена ​​ветка по умолчанию.

Kyle S 23.05.2018 17:48

В профиле пользователя задана ветка по умолчанию, всегда была установлена.

John Smith 23.05.2018 17:53

Возможно, стоит посмотреть на ваш метод входа в систему и на метод получения / ввода как часть вашего вопроса.

Kyle S 23.05.2018 17:54

Метод входа в систему отличается небольшой гибкостью - вы указываете имя пользователя, пароль, компанию и необязательную ветвь. Указание ветки не помогло. ПОЛУЧЕНИЕ существующего заказа - с развернутыми деталями - показывает поле ветви на каждой детали. Размещение нового заказа - с полем филиала на том же уровне, уровне детализации - приводит к описанной ошибке.

John Smith 23.05.2018 18:09

Добавил в вопрос тело запроса (не заметил, как с первого раза пришло).

John Smith 23.05.2018 18:20

И, наконец, не могли бы вы прислать мне снимок экрана (или чего-то еще) ветки, которую вы пытаетесь использовать? Обычно, когда появляется «Ошибка: 'X' не может быть пустым». он может не существовать в системе.

Kyle S 23.05.2018 18:52

Добавил скриншот. Это тестовые данные, которые поставляются с установщиком Acumatica ERP.

John Smith 23.05.2018 19:07

Чтобы все не казалось, что они затягиваются, я взял опубликованный вами фрагмент с критериями: 1. Пользователь, имеющий ветку по умолчанию, 2. Создал новую ветку, 3. И некоторая псевдо-информация для заказа на продажу. Мне удалось создать заказ на продажу. Работал как в версии 6.1, так и в 2017 году. Не было возможности протестировать в 2018 году. Извините, я больше ничем не могу помочь. Удачи!

Kyle S 23.05.2018 22:17

Я не слишком знаком с API веб-служб, но разве BranchID не должен быть целочисленным типом? Я бы подумал, что ветвь пуста, потому что ей было присвоено значение null, когда она не прошла проверку.

Hugues Beauséjour 24.05.2018 00:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
9
885
2

Ответы 2

Я часами пытался это исправить и, наконец, пришел к решению. Проблема для меня заключалась в том, что у пользователя, которого я использовал для API, не было роли пользователя, необходимой для доступа к указанному филиалу / компании. Это был случай очень вводящего в заблуждение сообщения об ошибке. Думаю, я использую те же тестовые данные «Демонстрация продаж», что и вы. Я немного опоздал на вечеринку, но надеюсь, что это поможет другим.

Чинить:

  1. Перейдите на экран компаний и найдите роль доступа для компании.
  2. Добавьте эту роль в свои роли пользователей API с экрана пользователей.

Если кто-то еще столкнется с той же ошибкой, и решение @ micwallace не сработало для вас.

Если вы указываете необязательный параметр branch в вызове входа в систему, возможно, стоит дважды проверить, что вы использовали Branch ID, а не Branch Name в качестве значения, которое можно найти на экране ветви.

например Если бы мы взглянули на прикрепленный скриншот демонстрации продаж 2019R1 и захотели использовать ветвь Продукция Розничная торговля от компании Вторая редакция продуктов, правильным значением для использования в вызове входа в систему было бы ПРОДУКТ.

{
    "name" : "{{api_username}}",
    "password" : "{{api_password}}",
    "company" : "{{tenant_login_name}}",
    "branch" : "PRODRETAIL",
    "locale" : "{{locale_code}}"
}

Другие вопросы по теме