[英]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 閱讀器的下載鏈接。
它是一個 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.