簡體   English   中英

用於 Java 到 EDI 轉換的 Java 庫

[英]Java library for Java to EDI conversion

我正在尋找一個可以將 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 數據轉換器(這甚至不允許我下載庫和文檔)。

有誰知道其他可能有用的解決方案?
我也對任何商業解決方案持開放態度。

謝謝!

如果您對商業解決方案持開放態度,則可能需要查看 Altova 的 MapForce。 它有一個拖放映射器,您可以使用它來創建地圖,然后生成代碼以插入到您的應用程序中。 地圖部隊

“Java 到 EDI”似乎是一個流行的誤稱。 在您的情況下,您正在從源數據(RDBMS、XML、平面文件、iDoc 等)創建標准化文本文檔(在本例中為 835 EDI 文檔)。 Java 是管道 您基本上是在嘗試通過編寫自己的翻譯器/解析器來重新發明一個 30 多年的輪子,而這通常沒有 EDI 語法檢查/FA 協調/強大的合作伙伴工具的好處。 如果我想停止這種瘋狂,我會看看Liaison和他們的工具,特別是 ECS 和 Delta。 這些工具是基於 Windows 的,因此這可能不是一種選擇,但對於可以輕松與您的架構集成的廉價商業工具,您的投資回報率會很快顯現出來。

Smooks 的試用版下載?! 你不需要許可證。 還有很好的文檔。

檢查一下:

恕我直言,如果您不想要商業解決方案,我會選擇 Smooks。

我同意市場上很少有開源庫可以幫助將 EDI 轉換為 xml。 其中許多已經多年未更新。 我訪問了“Smooks”網站,似乎該項目已停止。

如果您願意為解決方案付費,您可以嘗試使用Progress的 EDI 解析器。

它帶有 15 天的免費試用版,API 非常易於使用和集成到您的項目中。

它不僅支持 EDI 到 xml 的轉換,還支持 EDI 到 CSV 的轉換(您可以選擇決定分隔符)。

開源 Java EDI API 並不多。 但是,仍然有一些你提供的。

我也搜索了很多。

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

然后我嘗試了EDI Reader 實際上EDI閱讀器可以從互聯網上下載。

對我來說,它是唯一一個幫助我將一個 EDI 文件轉換為 XML 的文件。 甚至生成的 XML 也有些復雜。 但是您可以使用任何其他 API 來解析 XML。 這是EDI 閱讀器的下載鏈接。

閱讀有關 EDI 閱讀器的信息,例如程序、下載。

它是一個 ZIP 文件 包含 JAR 文件和一些示例 JAVA 代碼

如果您正在考慮使用 Smooks 實施解決方案,我只是參考 Smooks 文檔中的一些有用信息:

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

如本指南的其他部分所述,Smooks 核心運行時通過處理由某種類型(XML、EDI、Java 等)的輸入源生成的 SAX 事件流並使用這些事件觸發訪問者邏輯來工作。 對於 Java 源(請參閱上一節“Java 到 Java”),Smooks 使用 XStream 生成此 SAX 事件流。

然而,有時您只想將模板(例如 FreeMarker 模板)應用於 Java 源對象模型並生成 XML、CSV、EDI 等。您不想招致因生成 SAX 事件流而浪費的開銷你不會使用。 為此,您需要告訴 Smooks 核心運行時不要生成事件流。 這可以通過兩種方式之一完成。

通過在提供給 Smooks.filterSource 的 JavaSource 實例上調用 setEventStreamRequired(false):

JavaSource javaSource = new JavaSource(orderBean);

// Turn streaming off via the JavaSource...
javaSource.setEventStreamRequired(false);

smooks.filterSource(javaSource, result);

或者,通過關閉 Smooks 配置中的“ http://www.smooks.org/sax/features/generate-java-event-stream ”功能:

<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 中的 Object 類型:

如果對象是 Map,則該 Map 實例成為模板上下文,因此您可以僅使用 Map 條目鍵作為模板中的 bean 名稱。 對於非 Map 對象,JavaSource 類采用對象類 SimpleName 並從中創建一個 JavaBean 屬性名稱。 這是用於模板的上下文 bean 的名稱。 因此,如果 bean 類名稱是 com.acme.Order,那么上下文 bean 名稱(用於模板)將是“order”。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM