Замените поставщик данных и сценарий на код с использованием REST API в Acumatica - PullRequest
2 голосов
/ 31 января 2020

Мне поручено заменить ручную процедуру в Acumatica на автоматизированную с использованием REST API. Я прошел через руководство по интеграции, но я не знаю, как определить конечные точки, которые соответствуют ручному процессу, который я заменяю. Это так просто c, но я не могу найти ответ нигде в документации, которую я прочитал.

Вот ручной процесс:

(Есть две стороны процесса Синхронизация импорта и Синхронизация экспорта - но сейчас я остановлюсь только на экспорте.)

1) Go в опции «Сценарий экспорта» при интеграции и выберите сценарий «Доступный инвентарь» - затем выберите «Подготовить и экспортировать». 2) Go для провайдеров данных и выберите провайдера «AvailableInventory». Затем выберите вкладку «Экспорт из синхронизации».

Конечным результатом этого является файл CSV, который я беру в систему POS и импортирую в него.

Итак, с точки зрения API, мне нужно go в Инвентаризацию через конечную точку, и выберите все инвентаризацию на основе критерия даты, а затем запишите это в файл CSV.

Но как мне узнать, какую конечную точку использовать, и как я могу убедиться в этом? Я собираю все данные в моем C# коде, который мы получали с использованием поставщика данных и сценария данных в ручном процессе?

Я смотрел в документации, но, похоже, я не быть в состоянии найти это.

1 Ответ

1 голос
/ 01 февраля 2020

Сначала необходимо создать Конечную точку для страницы Экспорт по сценарию . От Go до Конечные точки веб-службы (SM207060) и расширение любой существующей конечной точки. Добавьте новую конечную точку и сопоставьте ее со страницей экспорта по сценарию. enter image description here
Добавьте имя и статус сценария в качестве параметра. enter image description here
Подготовка и экспорт начинают длительную операцию, чтобы получить правильный файл, вам нужно будет выполнить запрос на получение и проверить, завершен ли статус. Добавьте действие под конечной точкой и сопоставьте его с действием prepareExport графика. enter image description here
Добавьте Имя сценария в качестве параметра Действия. enter image description here

Время действовать. Ниже приведен пример кода, как вызвать наше действие в сценарии экспорта «Экспорт поставщиков AP».

var client = new RestClient("http://localhost/ACU19200/entity/DefaultExt/18.200.001/ExportByScenarios/prepareExport");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n\t\"entity\":{\n\t\t\"Name\" : {\"value\":\"Export AP Vendors\"}\n\t},\n\t\"parameters\":{\n\t\t\n\t}\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

В результате вы получите 202 кода ответа, если все было обработано правильно.

Теперь нам нужно проверить, сработал ли сценарий и экспортируется ли файл.

var client = new RestClient("http://localhost/ACU19200/entity/DefaultExt/18.200.001/ExportByScenarios/Export AP Vendors");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

В ответ на этот запрос вы получите «Запись сценария», как показано ниже:

{
    "id": "730d3b2c-d87f-e411-beca-00b56d0561c2",
    "rowNumber": 1,
    "note": "",
    "Name": {
        "value": "Export AP Vendors"
    },
    "Status": {
        "value": "Processed"
    },
    "custom": {},
    "files": [
        {
            "id": "9479c468-1cfa-4fb5-b8bd-30c10535e525",
            "filename": "Data Providers (Export AP Vendors)\\AP Export Vendor Template.xlsx",
            "href": "/ACU19200/entity/DefaultExt/18.200.001/files/9479c468-1cfa-4fb5-b8bd-30c10535e525"
        }
    ]
}

Теперь вам нужно взять «id» из раздела файлов и получить этот файл

var client = new RestClient("http://localhost/ACU19200/entity/DefaultExt/18.200.001/files/9479c468-1cfa-4fb5-b8bd-30c10535e525");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

В результате вы получите файл как application / octet-stream.

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