2013-07-19 9 views
1

Java에 좋은 EDI 파서 API가 있습니까? 나는 이것이 이미 asked here임을 알고 있으며, 나는 그것을 끝내었다.Java EDI X12 파서

저는 ANSI X12 EDI 파일이 있습니다. 그것은이 846 재고 문의 문서입니다 :

ISA*00*   *00*   *01*038211983  *ZZ*JWN-DSD  *130715*1540*U*00401*000015956*0*P*} 
GS*IB*038211983*JWN-DSD*20130715*1540*15956*X*004010VICS 
ST*846*159560001 
BIA*00*MM*9480*20130715 
REF*IA*103799 
LIN**UP*887873083091 
QTY*33*12*EA 
LIN**UP*887873083107 
QTY*33*13*EA 
LIN**UP*887873083114 
QTY*33*10*EA 
LIN**UP*887873083121 
QTY*33*6*EA 
LIN**UP*887873083138 
QTY*33*0*EA 
SCH*0*EA***018*20391231 

// Many lines this 

LIN**UP*886732476371 
QTY*33*0*EA 
SCH*0*EA***018*20391231 
LIN**UP*886732476388 
QTY*33*0*EA 
SCH*0*EA***018*20391231 
SE*3283*159560001 
GE*1*15956 
IEA*1*000015956 

제가 위에서 언급 한 링크에서, 나는 나의 자바 프로그램에 edireader 항아리를 추가했다. 나는 위의 파일을 제공 할 때, 출력 XML는이 올바른지 여부를 몰라이

<ediroot xmlns="http://www.berryworkssoftware.com/2008/edireader"> 
<interchange Standard="ANSI X.12" Date="130715" Time="1540" StandardsId="U" Version="00401" Control="000015956"> 
<sender> 
<address Id="038211983 " Qual="01"/> 
</sender> 
<receiver> 
<address Id="JWN-DSD " Qual="ZZ"/> 
</receiver> 
<group GroupType="IB" ApplSender="038211983" ApplReceiver="JWN-DSD" Date="20130715" Time="1540" Control="15956" StandardCode="X" StandardVersion="004010VICS"> 
<transaction DocType="846" Control="159560001"> 
<segment Id="BIA"> 
<element Id="BIA01">00</element> 
<element Id="BIA02">MM</element> 
<element Id="BIA03">9480</element> 
<element Id="BIA04">20130715</element> 
</segment> 
<segment Id="REF"> 
<element Id="REF01">IA</element> 
<element Id="REF02">103799</element> 
</segment> 
<segment Id="LIN"> 
<element Id="LIN02">UP</element> 
<element Id="LIN03">887873083091</element> 
</segment> 
<segment Id="QTY"> 
<element Id="QTY01">33</element> 
<element Id="QTY02">12</element> 
<element Id="QTY03">EA</element> 
</segment> 
<segment Id="LIN"> 
<element Id="LIN02">UP</element> 
<element Id="LIN03">887873083107</element> 
</segment> 
<segment Id="QTY"> 
<element Id="QTY01">33</element> 
<element Id="QTY02">13</element> 
<element Id="QTY03">EA</element> 
</segment> 
<segment Id="LIN"> 
<element Id="LIN02">UP</element> 
<element Id="LIN03">887873083114</element> 
</segment> 
<segment Id="QTY"> 
<element Id="QTY01">33</element> 
<element Id="QTY02">10</element> 
<element Id="QTY03">EA</element> 
</segment> 
<segment Id="LIN"> 
<element Id="LIN02">UP</element> 
<element Id="LIN03">887873083121</element> 
</segment> 
<segment Id="QTY"> 
<element Id="QTY01">33</element> 
<element Id="QTY02">6</element> 
<element Id="QTY03">EA</element> 
</segment> 
<segment Id="LIN"> 
<element Id="LIN02">UP</element> 
<element Id="LIN03">887873083138</element> 
</segment> 
<segment Id="QTY"> 
<element Id="QTY01">33</element> 
<element Id="QTY02">0</element> 
<element Id="QTY03">EA</element> 
</segment> 
<segment Id="SCH"> 
<element Id="SCH01">0</element> 
<element Id="SCH02">EA</element> 
<element Id="SCH05">018</element> 
<element Id="SCH06">20391231</element> 

//Many lines 

</segment> 
</transaction> 
</group> 
</interchange> 
</ediroot> 

같았다. 그러나 문제는 edireader입니다. 그래서 우리는 수동으로 추가해야합니다. 따라서 EDI의 새로운 버전이 나오면 앞으로도 edireader과 같이 작동하지 않을 것입니다.

Smooks은 X12로 생각합니다. 나는 그것이 유용하다고 생각하지 않는다. 그리고 파일을 읽기위한 설정 파일이 필요합니다. 따라서 x12 파일의 각 유형마다 다른 구성이 필요합니다.

어떤 것이 있습니까? Java EDI X12 Parser API?

+0

샘플 파일은 X12입니다. Inventory Inquiry/Advice 문서입니다. Smooks의 문제는 샘플에서 X12 또는 EDIFACT가 아니라 독점 플랫 파일입니다. 나는 누군가가 그것의 머리/꼬리를 만들 것을 기대하지 않는다. 왜 MapForce (http://www.altova.com/mapforce.html)와 같은 것을 보지 않습니까? 여기있는 모든 사람들은 항상 바퀴를 다시 만들고 싶어하며 패러다임에 새로운 것을 가져 오지 않습니다. EDI에서 XML 로의 번역은 타격을 입었습니다. – Andrew

+0

어떻게 사용할 수 있습니까? 어디에서 API를 다운로드 할 수 있습니까? 평가판 버전 만 찾습니다. –

+0

MapForce는 상용 소프트웨어입니다. 맵핑 유틸리티를 사용하여 맵을 생성하면 Java 코드가 작성되어 응용 프로그램에 임베드됩니다. 난 당신이 잘못 용어 API를 사용하고 자신의 텍스트 파서를 작성해야한다고 생각합니다. 물론 이것은 997 세대, 확장 성, 다른 구분 기호 세트 처리와 같은 자체 문제점 세트를 가지고 있습니다. 그래서 독립 실행 형 EDI 변환기가 모두 존재합니다. 그러나 사람들은 30 세의 바퀴를 재발견해야합니다. – Andrew

답변

0

EidReader 받는다는에 존재하는, 당신은하지

XML에서 X12의 EDI로 구문 분석 역 동작이 라이브러리에 기회가 아직 추가이

<dependency> 
    <groupId>com.berryworks</groupId> 
    <artifactId>edireader</artifactId> 
    <version>4.7.3.1</version> 
</dependency> 

최신 버전을 사용할 수 있습니까?