【问题标题】:How to build dynamic integration adapter?如何构建动态集成适配器?
【发布时间】:2022-01-16 10:45:56
【问题描述】:

我们有一个场景,我们通过 API 调用、SQL 表和物理文件从各种外部系统传入多个数据源,现在我们必须将其映射到多个事务模板。我想构建一个集成适配器和 UI,我可以在其中选择任何实体数据类并将其字段映射到将用于在我们的金融系统中创建交易的类或操作。

我想要一个可以动态修改的对象类型或类,在这些对象之间建立链接,并可能创建一组规则来定义这些对象之间的交互。我见过这类软件的一些版本,它们使用拖放类型的 UI 界面来进行映射,因此这将是理想的最终目标。

我来自 C# .Net 背景,所以我需要一些关于从哪里开始以及看什么的建议或提示。

【问题讨论】:

  • 这是一个相当大的挑战,需要大量工作才能使其完全动态化。我做了类似的事情,虽然是半动态的。我所做的是使用源(API 或 .csv)来获取一个动态对象,该对象定义了参数名称。然后通过使用输出模型的 JSON 配置,我将源字段动态映射到输出类(模型)。因此,如果您不想自己做,这可能是一种方法。

标签: c# .net dynamic integration acumatica


【解决方案1】:

我目前正在做类似的事情。我编写了一些代码来将我们遗留系统中的数据转换为写入平面文件的 JSON 对象(表中的每个数据记录 1 个文件),然后编写一些代码来清理该数据并通过 REST API 将其推送到 Acumatica。

我喜欢平面文件 json 对象,因为它们很容易被散列,并且散列用于将它们与传入的新数据进行比较。只有散列已更改的数据需要合并或覆盖,然后推送到目标系统.文件名通常是您正在使用的任何表中的主键值。我们的旧系统具有分层(非表格/类似 SQL 的数据结构),因此我的工作量可能比使用规范化的 SQL 数据库更大。

还有像 Alteryx 这样的产品,专为按照您建议的方式进行数据管道而构建。

我会提醒在构建这些类型的东西时要实用。例如,对于我们来说,我们有一组有限的数据需要过来,所以我们不需要对每种数据类型都进行完美的抽象。我们不可避免地还必须对遗留/第 3 方数据进行清理,而这些问题并不总是那么容易抽象。我之前构建了一个系统,使用闭包进行函数传递,以便为我可能遇到的任何抽象数据问题编写自定义清理例程(听起来像你在说什么),但最终意识到只是编写更简单的代码处理特定数据问题的方式更简洁,维护更简单......最终,可能只有有限数量的数据需要同步。

【讨论】:

    猜你喜欢
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多