【问题标题】:Integrating with 500+ applications与 500 多个应用程序集成
【发布时间】:2010-07-16 13:59:24
【问题描述】:

我们的客户使用 500 多个应用程序,我们希望将这些应用程序与我们的应用程序集成。最好的方法是什么?这些应用程序是时间注册应用程序,其中大多数应用程序的共同点是可以导出为 csv 或类似的,其中一些实际上是注册时间的自制 excel 表。

目前最好的想法是创建我们自己的 Excel 表格,它可以用来与所有这些应用程序集成。集成可以是包含类似 ='[c:\export.csv]rawdata'!$A$3 的单元格的形式,其中 export.csv 是从时间注册应用程序导出的 csv 文件。您能找到与所有这些应用程序集成的更好方法吗?值得一提的是,我们几乎所有的客户都有 Microsoft Office。


编辑:Pontus Gagge 优秀问题的答案:

不同应用程序中的数据有多相似? 我假设由于他们对注册申请进行计时,因此它们会有一些相似之处,但我假设有些人会注册一个人一整月总共工作了多长时间,而另一些人会具体说明每一天。如果选择 Excel,我相信使用基本公式可以消除许多差异。

数据质量如何? 数据的质量可能会有所不同,因此必须进行基本验证,一个好方法也是让客户透明,我们的应用程序如何理解他们的输入,因此他们是负责任的。

你说的数据量有多大? 最多可提供 50 名员工的工作时间信息。

集成是单向的吗? 是的

应该以什么频率传输信息? 每月一次(当他们需要支付工资时)。

应用程序本身多久更换一次,您的产品多久更换一次? 如果他们的应用程序是自制的 Excel 表,那么我假设它会每年更改一次(例如由于某人的错误)。如果是标准的适当时间注册申请,那么我认为它们的更新频率不会超过每五年左右更新一次,因为这是一个非常稳定的概念。

集成应该是全自动的,还是您的最终用户可以触发数据传输? 他们肯定可以触发数据传输。用户通常专注于这个过程,因此他们可以接受培训,这意味着他们每个月最多可以点击 30 次鼠标来集成。

客户会有人监控集成吗? 由于我们有很多客户,他们中的许多人应该能够自己进行集成。我们将能够通过电话为他们提供帮助。虽然我们不能自己进行集成,但我们将对由于用户错误等导致的任何错误负责。

“整合意大利面”这个词对你有什么意义吗...? 我正在寻找最好的厨师的想法来烹饪其中很大一部分。

【问题讨论】:

  • 接口契约的验证在这里似乎至关重要。你有什么想法吗?
  • 要获得好的答案,请考虑以下几个补充问题:不同应用程序中的数据有多相似?数据质量如何?你说的数据量有多大?集成是单向的吗?应该以什么频率传输信息?应用程序本身多久更改一次,您的产品多久更改一次?集成应该是全自动的,还是您的最终用户可以触发数据传输?客户会有人监控集成吗? (“整合意大利面”这个词对你来说意味着什么吗……?)
  • 您需要假设其他系统的开发人员可能做错的所有事情都会完成。在拒绝输入失败的原因时,向他们提供适当的反馈非常重要。
  • 大卫:是的,但其中还有很多。您将如何验证数据?您将如何重新处理客户发送错误的批次?您将如何检查集成是否及时执行?您将如何记录和审核流程?如果你不能指出错误,客户的责任将毫无意义。
  • 因此,为您的客户设计一个输入数据的应用程序,由您控制(可以是集中式应用程序、阿拉网络服务器或分布式应用程序)。然后设置批处理设施来获取文件、验证、预处理,并设置控制和返回点以进行再处理。您必须探索完整的数据周期(输入、修改、删除、传输、接受、拒绝),还必须管理时间窗口,以确保按时接收和处理正确的数据。

标签: excel csv integration spreadsheet


【解决方案1】:

您需要提出一种通用数据格式,以及一种将各个数据格式转换为通用格式的方法。真的没有办法解决这个问题 - 您提出的任何解决方案都必须以一种或另一种方式做到这一点。这是您所做工作的基本复杂性。

更大的问题实际上是源数据中的差异,例如日期的存储方式、缺少的列等。为 CSV 进行通用转换以移动列相对容易。

【讨论】:

  • 这是一个很好的观点。我正在寻找解决这些问题的最简单方法。您是否相信使用电子表格也可以进行解析。
  • 没有真正简单的方法可以解决这些问题。将 500 种不同的数据格式转换为单一的通用格式的本质复杂性令人难以置信。最好的解决方案是尽可能对所使用的应用程序进行一些标准化,而不是整理来自 500 种不同格式的数据。
【解决方案2】:

我还会查看 CSV,然后针对 CSV 文件使用 OLEDB 连接进行导入。

【讨论】:

  • 我确实有这样做的习惯。谢谢。
【解决方案3】:

如果您尝试制作可以与宇宙中的任何数据结构交互的东西(500 已经足够接近),那肯定是维护的噩梦。相反,我会从多个角度来解决这个问题:

  1. 设计一个界面,人们可以在其中输入正确格式的数据。拥有 500 多个客户,我将把它做成一个小型、原始但功能强大的基于浏览器的网站,用户可以使用它来手动输入这些信息。这是回退。归根结底,人工可以将信息重新键入站点并解决导入问题。理想情况下,每个人都会使用这种格式而不是他们自己的格式。数据录入人员很便宜。

  2. 与上述类似,但经过扩展,我将开发一个标准应用程序或标准化一个可用于替换现有格式的现成应用程序。这可能需要比#1 更多的时间。目标是只将这些不同的数据模式一次性导入到应用程序中,并永久使用它们。

  3. 电子表格的好处是您可以在任何地方做任何事情。电子表格的坏处是你可以在任何地方做任何事情。使用 CSV 或电子表格,根本无法强制执行数据完整性和数据一致性(这是主要目标)。如果源数据已经在数据库中,那显然更简单。

我倾向于使用 database 格式,每个文件都需要转换成这种格式,而不是电子表格(例如,使用类似 Jet (MDB) 的东西)。如果您有非 Windows 用户,那么这将使其变得更加困难,您可能必须使用电子表格。问题是用户很容易改变他们的源结构,破坏他们的上传,然后向你哭诉。如果给定的最终用户有常驻专家,他们可以找到将数据导入该数据库格式的方法。如果您是那个专家,那么我会根据具体情况编写一些可以导入该数据库格式的内容。 XML 将是另一种选择,但与导入/导出到数据库格式相比,这可能需要更多的编码。

应用程序的标准化(即使所有源都采用数据库格式而不是电子表格也会有所帮助)和对数据架构的控制是最终目标,而不是允许大量格式。除了标准化之外,真的没有很好的答案。否则,您必须为每种 Tom-Dick-and-Harry 格式编写一个转换器,并且当有人更改源格式时再次编写。

【讨论】:

    【解决方案4】:

    大量数据源将每个数据源正确映射到中间格式并非易事。正则表达式适用于一组有限的已知数据格式。当数据在没有上下文的情况下不明确时(月、日字段和有几天的数据),Multipass 可以提供帮助,还有助于避免数据输入错误。但似乎这些数据与工资相关,因此需要可靠的转移。

    一个导入配置技巧

    让客户在应用程序中制作一组训练数据。它应该有一个“预定义的唯一日期”,并且每个后续数据字段都有一个与应用程序中的目标数据字段相对应的数字。在导入您的应用程序时需要识别预定义的日期,确定所需的唯一翻译并影响此“映射键”的显示/保存,然后停止导入。例如,如果您希望在字段 2 中输入“持续时间”,则让用户在可能是“出勤时间”的相关字段中输入 2。

    在后续运行中,使用映射定义键,导入成为一个相当简单的翻译过程。

    注意事项

    • “预定义日期” - 必须是历史的,比如贵公司的成立日期?可能需要在 PC 时钟可设置的范围内。
    • “映射键” - 可以是十六进制数字字符串和基于 nybble 的字符串,因此易于锻炼 输入的代码可以扩展以表示所需的转换,即客户的应用程序的持续时间以天为单位,而您的应用程序预计以小时为单位。

    与 Windows 程序的接口(如果增加脆弱性,按顺序)

    • Ye Olde 保存为 CSV 文件
    • 打印到设置为文本文件/pdf 的操作系统打印机,然后从中清除数据
    • 通过应用程序界面控件提取数据,通常是几个 Windows 程序的 ActiveX,例如 Matlab 的电子表格链接
    • 读取原生文件格式xls格式即像Matlab的xlsread
    • 添加具有扩展单元格引用的附加中间电子表格,即 ='[filename]rawdata'!$A$3

    【讨论】:

      【解决方案5】:

      看看 JBoss 的 Teiid:http://jboss.org/teiid

      还可以考虑使用 SOA - 例如,如果您使用 Java,请尝试 JBoss SOA 平台:http://www.jboss.com/resources/soa/?intcmp=1004

      【讨论】:

        【解决方案6】:

        使用简单的 XML 格式。非技术人员可以轻松理解简单的 XML 格式(甚至可以识别格式不正确的 XML 文档的基本问题)。

        也许使用 DTD(或者甚至更好的 XML 模式)来进行非常基本的验证,然后用 XSL 样式表对此进行补充,以通过更好的错误报告来进行更多验证。 (XSL 样式表只是简单地将 XML 转换为其他内容,因此可以生成可读的错误消息。)

        这种方法的优点是 Internet Explorer 等 Web 浏览器可以应用 XSL 样式表。客户最多只需要花一天时间来增强他们的应用程序或编写 excel 宏来生成您指定格式的 XML 数据。

        最新版本的 Excel 支持将电子表格数据转换为 XML,甚至可以根据架构进行验证。

        一旦数据通过 XSL 验证检查,您就验证了 XML 数据。

        【讨论】:

          【解决方案7】:

          如果您拥有大量数据和大量资金,您可以查看现有的数据管理和清理工具:

          http://www-01.ibm.com/software/data/infosphere/datastage

          http://www-01.ibm.com/software/data/infosphere/qualitystage

          但即便如此,假设您拥有 500 多种数据格式,您可能仍需要遵循 kyoryu 的建议。问题不在你身边。如果您无法控制他们的应用程序,您需要他们标准化他们的输出格式。 CSV 可能是最简单的。您甚至可以向他们发送一个 excel 模板来帮助他们。

          【讨论】:

            猜你喜欢
            • 2016-08-20
            • 2018-11-26
            • 1970-01-01
            • 2011-08-09
            • 2018-09-30
            • 1970-01-01
            • 2013-05-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多