Acumatica 自定义数据提供者通过 API 导入数据

Acumatica Custom Dataprovider to import data via API

我正在尝试在 Acumatica 中找到从另一个系统导入数据的最佳选项。要求如下:

  1. 第三方系统将为我们提供端点和身份验证详细信息
  2. 我们必须使用 Acumatica 使用提供的 API 从第三方导入数据并在 Acumatica 中创建采购订单。
  3. 需要设置定期导入此数据

我是一名新的 Acumatica 开发人员,我最初的直觉是创建一个自定义数据提供程序,如销售人员和 hubspot 提供程序。我知道有一些自定义数据提供程序可以从 csv 和 excel 文件导入数据的示例,但我找不到它连接到第三方的示例 API.

如果数据提供者不是答案,我是否必须创建一个单独的 RestAPI 项目来从第三方提取数据。在那种情况下,有人可以帮我安排一下吗?我在想也许可以使用时间戳调用 GET 方法以避免从其他系统提取所有付款。

欢迎任何建议。

您可以开发一个自定义处理屏幕来导入数据:

https://www.acumatica.com/blog/creating-custom-processing-screens-in-acumatica/

处理屏幕自动提供一个内置的调度程序,运行按预定的时间间隔处理:

构建自定义处理屏幕时,您必须遵循 'Processing Screen' 的准则,但对如何开发导入逻辑没有限制。如果您为导入逻辑构建了自定义处理屏幕,则不需要自定义数据提供程序。

AUSchedule DAC 确定上次计划执行的date/time:

PXGraph graph = this; // or Base or any graph instance

foreach (PX.SM.AUSchedule schedule in 
    PXSelect<PX.SM.AUSchedule,
        Where<PX.SM.AUSchedule.screenID, Equal<Required<PX.SM.AUSchedule.screenID>>>>
           .Select(graph, PXSiteMap.CurrentScreenID))
{
    // Check LastRunResult and LastRunStatus fields for last run success/completed
    DateTime? lastExecution = schedule.LastRunDate;
}

您可以创建一个设置 DAC,您可以在其中设置 API 配置 URL/credential 并在其中放置最后一个 运行 自定义字段,而不是查找上次执行的计划。当进程为 运行 时,您可以更新自定义上次 运行 字段以准确保存上次同步时间。


您还可以构建一个自定义数据提供程序 并将其与自定义导入方案 一起使用。只有 'import scenario' 才需要自定义数据提供程序,这是在 Acumatica 中导入数据的内置方法。导入场景比构建处理屏幕更复杂。在这两种情况下,您都需要做一些 programming/configuration 来执行 REST API 调用以从外部服务获取数据。

您可以在此处了解有关构建自定义数据提供程序的更多信息: https://asiablog.acumatica.com/2016/09/custom-integration-services-data.html

您可以在 Acumatica 培训文档中获取有关导入场景的更多信息: https://openuni.acumatica.com/courses/reporting/i100-integration-scenarios/