gpt4 book ai didi

rest - 在 Acumatica 中使用 REST API 将数据提供者和场景替换为代码

转载 作者:行者123 更新时间:2023-12-04 10:39:31 25 4
gpt4 key购买 nike

我的任务是将 Acumatica 中的手动程序替换为使用 REST API 的自动化程序。我已经阅读了集成指南,但我不知道如何确定与我正在替换的手动过程相匹配的端点。这是非常基本的,但我无法在我通读的文档中的任何地方找到答案。

下面是手动过程:

(这个过程有两个方面,一个导入同步和一个导出同步——但我现在只关注导出。)

1) 进入集成下的“导出场景”选项,选择“可用库存”场景——然后选择“准备和导出”。
2) 转到数据提供者并选择“AvailableInventory”提供者。然后选择从同步选项卡导出。

最终结果是一个 CSV 文件,我将其带到 POS 系统并将其导入那里。

因此,从 API 的角度来看,我需要通过端点转到库存,并根据日期标准选择所有库存,然后将其写入 CSV 文件。

但是,我如何知道要使用哪个端点,以及如何确保我在 C# 代码中收集了我们在手动过程中使用数据提供程序和数据场景获取的所有数据?

我查看了文档,但似乎无法找到它。

最佳答案

首先,您需要创建一个 端点 按场景导出 页。
转至 Web 服务端点 (SM207060) 分页并扩展任何现有端点。
添加新端点并将其映射到“按场景导出”页面。
enter image description here
添加场景的名称和状态作为参数。
enter image description here
准备和导出正在开始长时间操作,为了获得正确的文件,您需要执行获取请求并检查状态是否已完成。
在端点下添加 Action 并将其映射到图的 prepareExport Action 。
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 的文件。

关于rest - 在 Acumatica 中使用 REST API 将数据提供者和场景替换为代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59997604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com