Is there any good X12 parser in Java? [closed]

2020-05-24 06:31发布

Is there any good X12 parser in Java which can process Walmart 810 specification?

EDI example:

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

标签: java edi x12
5条回答
甜甜的少女心
2楼-- · 2020-05-24 06:53

you could try bots: http://bots.sourceforge.net it is not java, but python. it is not a 'library' but an application. handles x12 OK, incl 810. You can translate it to the format you need (xml, csv, flat file)

查看更多
啃猪蹄的小仙女
3楼-- · 2020-05-24 06:55

Try this, edireader

The parser differentiates between ANSI X.12 and EDIFACT EDI standards by inspection and uses a factory pattern to construct an appropriate parser subclass.

The parser can be embedded within your Java application in the same way as you would an XML parser, avoiding the file-based and proprietary interfaces often used with conventional EDI translators.

查看更多
贼婆χ
4楼-- · 2020-05-24 06:55

If you are open to a commercial product, have a look at the Oakland Data Transformer. It's written in Java, has an Eclipse-based designer, and a Java API or integration with Apache Camel, Mule ESB, and OSGi Blueprint. You can easily graphically map it to XML, database, Java objects or other things.

You will need to contact Oakland Software when you download it to get the specifications for the X12 4010 810 which is what you are using.

查看更多
乱世女痞
5楼-- · 2020-05-24 06:59

We can use apache camel, camel is very easy and extensible solution of this,

This will give a json objects, afterthat we can parse the json objects then get the values.

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");
查看更多
兄弟一词,经得起流年.
6楼-- · 2020-05-24 07:11

Try using Smooks. From the page:

Smooks is an extensible framework for building applications for processing XML and non XML data (CSV, EDI, Java, etc) using Java.

查看更多
登录 后发表回答