【问题标题】:Java library for Java to EDI conversionJava 到 EDI 转换的 Java 库
【发布时间】:2013-12-22 09:47:02
【问题描述】:

我正在寻找一个可以进行 Java 到 EDI 转换的 Java 库 - 更具体地说,是医疗保健中使用的 EDI 835 格式。 虽然很多库都承诺 Java 到 EDI 的转换,但没有 在他们的网站上提供相同的文档或代码示例。 以下是我迄今为止尝试过的库列表:

1. EdiReader(EdiWriter 是商业的,没有试用下载)。
2. Smooks(无试用下载,文档未提及 Java 到 EDI 的转换)。
3. Open Business Objects - 来自 Americancoders.com 的 OBOE(有试用下载,但未提及 Java 到 EDI)。
4. Oakland data transformer(这甚至不允许我下载库和文档)。

有人知道其他可能有用的解决方案吗?
我也愿意接受任何商业解决方案。

谢谢!

【问题讨论】:

    标签: java edi


    【解决方案1】:

    如果您对商业解决方案持开放态度,您可能需要查看 Altova 的 MapForce。它有一个拖放映射器,您可以创建您的地图,然后它会生成代码以插入您的应用程序。 MapForce

    “Java 到 EDI”似乎是一个流行的误称。在您的情况下,您正在从源数据(RDBMS、XML、平面文件、iDoc 等)创建标准化文本文档(在本例中为 835 EDI 文档)。 Java 是管道。您基本上是在尝试通过编写自己的翻译器/解析器来重新发明一个 30 多年的轮子,而这通常是在没有 EDI 语法检查/FA 协调/强大的合作伙伴工具的好处的情况下完成的。如果我想阻止这种疯狂,我会查看Liaison 和他们的工具,特别是 ECS 和 Delta。这些工具是基于 Windows 的,因此这可能不是一种选择,但对于可以轻松与您的架构集成的廉价商业工具,您的投资回报率将很快显现出来。

    【讨论】:

    • 感谢您的回答!抱歉,我没有为您的答案投票的声誉:(
    • 这是你的问题。如果您认为这是您想要的答案,您应该可以将其标记为这样。
    【解决方案2】:

    Smooks 的试用下载?!你不需要许可证。还有很好的文档。

    检查一下:

    恕我直言,如果您不想要商业解决方案,我会选择 Smooks。

    【讨论】:

    • 我尝试过 Smooks,但文档和代码示例在任何地方都没有提到 Java 到 EDI 的转换。我在问题中提到的其他库也是如此。
    • 只有我不知道“Java 到 EDI 转换”是什么意思吗?究竟会转换哪些数据!?
    • EDI 代表“电子数据交换”,是一套信息交换标准。例如,标准 UN/EDIFACT(联合国行政、商业和运输电子数据交换)提供了允许多国和多行业交换业务流程的标准消息。它定义了消息看起来应该是什么样子的语法等等。他想要一个代表 EDI(在他的例子中是医疗保健标准)的 java 类被转换回特定的 EDI 标准语法。希望这有帮助,没有更多的字符了:D
    • @Ben 感谢您的帮助!您关于“应用我自己的逻辑”的评论真的很有帮助:)
    • @Demodave:Smooks repository 在 2020 年似乎有很多活动。
    【解决方案3】:

    我同意市场上很少有开源库可以帮助 EDI 到 xml 的转换。其中许多已多年未更新。我访问了“Smooks”网站,似乎该项目已停止。

    如果您愿意为解决方案付费,您可以尝试Progress 的 EDI 解析器。

    它提供 15 天的免费试用版,API 非常易于使用并集成到您的项目中。

    它不仅支持 EDI 到 xml 的转换,还支持 EDI 到 CSV 的转换(您可以选择决定分隔符)。

    【讨论】:

      【解决方案4】:

      开源 Java EDI API 并不多。但是,您提供了一些。

      我也搜索了很多。

      Smook 需要一些 XML 配置来读取特定的 EDI 文件。

      然后我尝试了 EDI 阅读器。实际上EDI阅读器可以从网上下载。

      对我来说,它是唯一一个帮助我将一个 EDI 文件转换为 XML 的工具。甚至生成的 XML 也有些复杂。但是您可以使用任何其他 API 来解析 XML。 这是EDI Reader的下载链接。

      Read about EDI Reader, and for example programs, downloads.

      这是一个 ZIP 文件,包含 JAR 文件和一些示例 JAVA 代码

      【讨论】:

      • 谢谢石菊!但我需要 Java 到 EDI 转换,而不是 EDI 到 JavaEDI 到 XML。大多数库都可以让您轻松地进行 EDI 到 XML 的转换,我已经尝试了其中的一些。但我的问题是 Java 到 EDI 的转换。
      • 我不确定EDI阅读器是否将JAVA转为EDI。如果您下载了,请检查 zip 中的示例 java 类
      • 我已经这样做了 :) 我浏览了每一个示例,但不幸的是,该包仅读取 EDI 文档并将它们转换为 XML 或其他格式,反之亦然。
      • 缺乏开源 API 的主要原因之一是 ANSI X12 标准的许多版本不是免费发布的。要做到这一点,并进行语法/字典检查,您需要加载这些字典。维护将是一场噩梦,因此“免费”赠送它是一个不太可能的提议。当然,您可以将入站数据解析器半途而废,然后将其称为打开,但这并没有多大价值。
      【解决方案5】:

      如果您正在考虑使用 Smooks 实现该解决方案,我只是参考了 Smooks 文档中的一些有用信息:

      Java 转文本(XML、CSV、EDI 等)

      如本指南其他部分所述,Smooks 核心运行时有效 通过处理由输入 Source 产生的 SAX 事件流 某种类型(XML、EDI、Java 等)并使用这些事件来触发 访客逻辑。在 Java 源代码的情况下(参见上一节 “Java to Java”),Smooks 使用 XStream 来生成这个 SAX 流 事件。

      但是,有时您只想应用一个模板(例如 FreeMarker 模板)到 Java Source 对象模型并生成 XML, CSV、EDI 等。您不想招致浪费的开销 生成您不会使用的 SAX 事件流。去做 这个,你需要告诉 Smooks 核心运行时不要生成 事件流。这可以通过以下两种方式之一完成。

      通过在 JavaSource 实例上调用 setEventStreamRequired(false) 提供给 Smooks.filterSource:

      JavaSource javaSource = new JavaSource(orderBean);
      
      // Turn streaming off via the JavaSource...
      javaSource.setEventStreamRequired(false);
      
      smooks.filterSource(javaSource, result);
      

      或者,通过关闭 "http://www.smooks.org/sax/features/generate-java-event-stream" Smooks 配置中的功能:

      <reader>
          <features>
              <setOff feature="http://www.smooks.org/sax/features/generate-java-event-stream" />
          </features>
      </reader>
      
      <!-- Other Smooks configurations e.g. a FreeMarker template... -->
      

      应用 FreeMarker 模板时,模板的名称 上下文 bean(即模板中使用的名称)取决于 JavaSource 中的对象类型:

      如果对象是 Map,则该 Map 实例成为模板 上下文,因此您可以只使用 Map 条目键作为 bean 名称 在您的模板中。对于非 Map 对象,JavaSource 类采用 对象类 SimpleName 并从中创建一个 JavaBean 属性名称。 这是用于模板的上下文 bean 的名称。因此,如果 bean 类名是 com.acme.Order,然后是上下文 bean 名,对于 模板的目的,将是“订单”。

      来源:http://www.smooks.org/guide

      【讨论】:

        猜你喜欢
        • 2017-01-20
        • 2010-11-21
        • 2015-03-30
        • 2013-01-26
        • 2014-11-24
        • 1970-01-01
        • 1970-01-01
        • 2017-07-02
        • 2013-10-15
        相关资源
        最近更新 更多