Определение правильных JSON полей для REST API на основе конечной точки и отображаемых имен (клиенты и заказы на продажу) - Acumatica - PullRequest
0 голосов
/ 09 марта 2020

Мой проект заключается в импорте заказов клиентов и продаж. Я беру CSV-файл из внешней программы и должен импортировать их - поле за полем - в Заказы на продажу и Заказчиков.

Моя задача - определить правильные имена полей, чтобы заставить REST API работать правильно.

У меня есть следующие поля:

Customer Screen

Я хочу включить три поля: Описание, Сообщение с подарком и Публикация c Комментарий. Я проверяю элемент, который не дает мне ничего полезного, что я могу сказать. (т.е. ни одно из значений не сопоставляется с именем поля, которое я использовал бы в JSON.)

Когда я go к конечной точке для клиентов, описание уже существует:

Endpoint Showing Description Field

И, следовательно, эта JSON запись успешно завершается ДОБАВЛЕНИЕ или ОБНОВЛЕНИЕ:

{
    "OrderNbr"  : {"value": "SO003525"},
    "Description"  : {"value": "This is the Description"},
}

Я расширяю клиента по умолчанию (версия 18.200.001) и я найдите и добавьте «Описание подарка» и «Комментарии Publi c» - и они перечислены как часть «Сводки заказа» - именно там было описание.

Gift and Public Comment

Однако эти JSON данные ничего не добавляют к Gift или Publi c:

{
    "OrderNbr"  : {"value": "SO003525"},
    "Description"  : {"value": "This is the Description"},
    "PublicComment"  : {"value": "This is the Public Comment"},
    "GiftMessage": { "value": "This is the Gift Message"},
}

В разговоре с (внутренним) разработчиком, который установил вверх по экрану он сказал мне, что поля "Gift Message" и "Publi c Comments" были добавлены. Но они не отображаются как поля, определенные пользователем, в конечной точке.

Вопросы:

1) Как узнать, как должна выглядеть структура JSON? Существует ли какой-либо документ сопоставления или распечатка, которая показывает данные JSON к конечной точке? Я имею в виду, что иногда мне нужно использовать подобъект для ссылки на данные в JSON, например, если я хочу обновить информацию «Основной контакт», я делаю это так:

{
 "CustomerClass":{"value":"INDIVIDUAL"},
 "CustomerID":{"value":"78577"},
 "CustomerName":{"value":"TEST CUSTOMER "},
 "MainContact":
   {
     "CompanyName":{"value":"TEST CUSTOMER COMPANY"},  
     "DisplayName":{"value": "TEST CUSTOMER DISPLAY"}, 
   }
}

Как я могу знать, чтобы сделать это? (Я знаю только потому, что видел это в данных, которые были возвращены, когда я добавил запись ... В связи с этим возникает второй вопрос:

2) Есть ли способ получить всю запись данных в ее * Формат 1064 *. Вроде как: «ПОЛУЧИТЬ - ВЫБРАТЬ ВСЕ - РАСШИРИТЬ ВСЕ», чтобы я мог видеть все данные в записи в правильно настроенном формате JSON?

3) Любая идея, почему сообщение и подарок Publi c Комментарии отображаются как «Сводка заказа», но не обновляются как «Описание»?

4) Почему некоторые вещи «не расширяются»? Например, я не могу развернуть Платежи в Заказе на продажу. Я получаю сообщение об ошибке:

Capture of Payments Expand Error

1 Ответ

0 голосов
/ 09 марта 2020

1) Как узнать, как должна выглядеть структура JSON

Самый простой способ - выполнить запрос GET. Имена полей эквивалентны свойству DisplayName без пробелов. Поэтому, если на экране поле помечено Order Type, имя поля в запросе будет OrderType.

Чтобы сделать запрос GET, формат URL будет /Entity/Keys.

Для Пример сущности SalesOrder имеет два ключа: OrderType и OrderNbr.

Чтобы получить сущность SalesOrder типа SO и с номером SO005051, URL-адрес будет заканчиваться на: /SalesOrder/SO/SO005051 .

2) Есть ли способ получить всю запись данных в формате JSON. Вроде как: «ПОЛУЧИТЬ - ВЫБРАТЬ ВСЕ - РАСШИРИТЬ ВСЕ», чтобы я мог видеть все данные в записи в правильно настроенном формате JSON?

Если вам нужны все детали Вам необходимо указать их все в предложении расширения запроса GET: $expand=Contacts,MainContact,BillingContact

Имя массива сведений можно найти на экране конечной точки веб-службы SM207060. Это древовидные элементы с пустым массивом [] суффикс.

enter image description here

3) Любая идея, почему подарок Message и Publi c Комментарии отображаются как «Сводка заказа», но не обновляются как «Описание»?

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

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

Если под User Defined вы подразумеваете, что эти поля были добавлены с помощью мастера (без программирования), то это, вероятно, причина, по которой они не работают в веб-сервисе. Вам нужно будет добавить настраиваемое поле с расширением DA C, которое требует программирования вместо поля User Defined.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...