2012-06-18 9 views
5

Walmart 810仕様を処理できる、Javaに優れたX12パーサーがありますか?Javaには良いX12パーサーがありますか?

EDIの例:

ISA*00*   *00*   *16*102096559TEST *14*PARTNERTEST *071214*1406*U*00040*810000263*1*T*> 
    GS*IN*102096559TEST*PARTNER*20071214*1406*810000263*X*004010 
    ST*810*0001 
     BIG*20050205*6463367*20050202*3376103367 
     REF*IA*123456170*X5T 
     REF*DP*00017 
     REF*MR*0020 
     N1*SU*SUPPLIER NAME 
     N1*ST*WAL-MART 100*UL*0078742000992 
     N3*406 SOUTH WALTON BLVD 
     N4*BENTONVILLE*AR*72712 
     ITD*05*15*****45 
     DTM*011*20050205 
     FOB*CC 
     IT1**1080*EA*3.61**IN*001719653*UP*022108955228*UK*   00221089552284  
     PID*F****ITEM DESCRIPTION 
     SAC*A*I410***2350*******02 
     TDS*387530 
     CAD*T***RDWT*ROADWAY**BM*123456789 
     ISS*1080*EA*100*LB 
     CTT*1 
    SE*19*0001 
    GE*1*810000263 
IEA*1*810000263 
+0

あなたの質問はEDIFACTについて尋ねますが、あなたの例はEDIFACTではなくANSI X12です。 SourceForgeのBOTSを見てください。または、商用翻訳製品を見てください。あなたはウォルマートに810を送りませんか?あなたがウォルマートや「ファクター」代理店で働いていて、データをカーボンコピーしていない限り、X12を生成していると私には思えます。あなたは戻ってくる997を解析するでしょう。 – Andrew

+0

@アンドリューあなたは正しいです。これはEDIFACTではなくANSI X12です – Chandana

+0

私はjavaを使用してXMLにEDIを実装しました。 ここをクリックしてください:[リンクの説明をここに入力してください](http://stackoverflow.com/questions/2794262/is-there-any-good-open-source-edifact-parser-in-java) –

答えて

3

Smooksを使用してみてください。ページから:

Smooksのは、Javaを使用して、XMLおよび非XML データ(CSVなど、EDI、Java(登録商標)など)を処理するためのアプリケーションを構築するための拡張可能なフレームワークです。

+1

私もそれを使いました。私はドキュメントが少し欠けていることを発見したが、それは数年前だった。それは変更された可能性があります。 – palto

+0

Smooksの 'REF * IA * 123456170 * X5T REF * DP * 00017'のような要素を処理することは可能ですか? – Chandana

+0

SmooksはX12をサポートしておらず、プロジェクトは死んでいるようです(Gitリポジトリへの最後の変更は2011年です)。 – Torben

6

はこれを試してみてください、edireader

パーサは、検査によってANSI X.12およびEDIFACT EDI標準を区別し、適切なパーサのサブクラスを構築するために工場出荷時のパターンを使用しています。

パーサーは、XMLパーサーと同じ方法でJavaアプリケーション内に組み込むことができ、従来のEDIトランスレータでよく使用されるファイルベースおよび独自のインターフェイスを避けます。

+0

回復可能な構文例外が発生しました:com.berryworks.edireader.error.TransactionCountException - GEセグメントのトランザクションカウントエラーです。セグメント317で164の代わりに1、EDIを処理するときにフィールド2のエラー – Chandana

0

商品が公開されている場合は、Oakland Data Transformerをご覧ください。 Javaで書かれ、Eclipseベースのデザイナー、Java API、またはApache Camel、Mule ESB、OSGi Blueprintとの統合を備えています。 XML、データベース、Javaオブジェクトなどに簡単にグラフィカルにマップすることができます。

使用しているX12 4010 810の仕様を取得するには、ダウンロードする際にOakland Softwareにお問い合わせください。

+0

オープンソースですか? – RCS

0

あなたはボットを試すことができます:http://bots.sourceforge.net これはJavaではなくPythonです。 これは「ライブラリ」ではなくアプリケーションです。 はOK、税込810 あなたはあなたが必要とする形式に変換することができX12を扱う(XML、CSV、フラット・ファイル)

0

我々は、Apacheラクダを使用することができ、ラクダはこれを非常に簡単かつ拡張可能なソリューションであり、

これはjsonオブジェクトを与え、その後jsonオブジェクトを解析して値を得ることができます。

XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat(); 
     xmlJsonFormat.setEncoding("UTF-8"); 
     xmlJsonFormat.setForceTopLevelObject(true); 
     xmlJsonFormat.setTrimSpaces(true); 
     xmlJsonFormat.setRootName("newRoot"); 
     xmlJsonFormat.setSkipNamespaces(true); 
     xmlJsonFormat.setRemoveNamespacePrefixes(true); 
    // xmlJsonFormat.setExpandableProperties(Arrays.asList("d", "e")); 

      from("file:sftpdata/x12files") 
      .log("Before unmarshal with SmooksDataFormat:").log("${body}") 
      .unmarshal(new SmooksDataFormat("smooks-config1.xml")) 
      .log("After unmarshal with SmooksDataFormat:").log("${body}") 
      .marshal(xmlJsonFormat) 
      .log("After marshalling with Json library:").log("${body}") 
      .process(new X12Processor()).log("X12 file processed") 
      .to("mock:result"); 
+0

なぜPOJOに直接アンマーシャリングすることができるときにjsonを使用しますか? JAXBの結果をjsonオブジェクトに変換してからPOJOに変換するのではなく、JAXBのpojoを直接使用しないでください。人々が単にJAXBの使用を避けるために行く長さは困惑しています。 –

関連する問題