Сбой вызова Acumatica REST API Endpoint Action - PullRequest
0 голосов
/ 03 июня 2019

** ПРИМЕЧАНИЕ. Любой вопрос StackOverflow, критический для Acumatica, будет отклонен.

Я пытаюсь заставить работать действие REST Web-Service-Endpoint.

РасширениеВ качестве конечной точки по умолчанию я добавил действие CreateShipmentAction.

URL: .../17.200.001/SalesOrder/CreateShipmentAction
SEND: {'entity':{'OrderNbr':{'value':'ME050225'},'OrderType':{'value':'SO'}},'parameters':{'value':null}}
METHOD: post

enter image description here

, и это прекрасно работает.

Следуя той же процедуре, ядобавлено действие CancelPurchaseOrderAction к заказу на покупку.

URL: .../17.200.001/PurchaseOrder/CancelPurchaseOrderAction
SEND: {'entity':{'OrderNbr':{'value':'ME006802'},'OrderType':{'value':'DP'}},'parameters':{'value':null}}
METHOD: post

enter image description here

завершается с ошибкой «Кнопка отмены заказа отключена».Проверяя BuyOrder вручную, кнопка «Отменить заказ» активна через веб-сайт.

Если я изменю OrderNbr «сущности» на

SEND: {'entity':{'OrderNbr':{'value':'xxxME006802'},'OrderType':{'value':'DP'}},'parameters':{'value':null}}

, что не должно совпадать, я получута же ошибка.Как будто моя «сущность» для PurchaseOrder не отформатирована правильно.

Я бы посмотрел необходимое форматирование для «сущности» PurchaseOrder в документации Acumatica, но не могу найти какую-либо документацию.В документах VIEW_ENDPOINT_SERVICE это тоже не прописано, что, я думаю, должно (иначе зачем нужен API, если параметры не определены ...)

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Одно можно сказать наверняка, что при работе с веб-службой Acumatica вам также необходимо работать с экраном в браузере.

Веб-служба может делать только то же, что и наэкран.

Итак, если вы перейдете на экран «Заказ на покупку» и посмотрите на запись, включена ли кнопка «Отменить заказ»?

При тестировании я заметил что-то, что относится к заказу на продажу.и Заказ на поставку, те же шаги не позволят оба действия.По крайней мере, с настройками по умолчанию, получаемыми при использовании демонстрационных данных продаж, предоставляемых вместе с установщиком.

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

Несмотря на то, что для заказа на поставку вам нужно не только не находиться в режиме ожидания, но также использовать действие «Подтвердить», прежде чем кнопка «Отмена» станет активной.

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

Запрос наЯ использовал следующие 10101 *

  • Заказ на продажу
.../entity/DefaultPlus/17.200.001/SalesOrder/CreateShipmentAction
{
    "entity":
    {
        "OrderType":{"value":"SO"},
        "OrderNbr":{"value":"SO004264"}
    },
    "parameters":
    {
        "ShipmentDate":{"value":"06/05/2019"},
        "WarehouseID":{"value":"RETAIL"}
    }
}
  • Заказ на покупку
.../entity/DefaultPlus/17.200.001/PurchaseOrder/CancelPurchaseOrderAction
{
    "entity":
    {
        "Type":{"value":"Normal"},
        "OrderNbr":{"value":"PO000701"}
    }
}
0 голосов
/ 03 июня 2019

Эта проблема - несоответствие в полях Acumatica.

В то время как URL веб-сайта для PurchaseOrder имеет

?ScreenId=PO301000&OrderType=DP&OrderNbr=ME006802

Заставить думать, что поля 'entity' для вызова API REST Action будут

{OrderNbr:{value:"ME006802"},OrderType:{value:"DP"}}

Это на самом деле (обратите внимание, что OrderType теперь просто Type с другим значением)

{OrderNbr:{value:"ME006802"},Type:{value:"Drop Ship"}}

Программирование в REST API Acumatica похоже на Whack-A-Mole .... случайно попробуйте разные вещи (так как нет документации), и, надеюсь, можно просто к счастью работать ...

...