Есть ли хороший экофакт с открытым исходным кодом в Java? [закрыто

StackOverflow https://stackoverflow.com/questions/2794262

  •  04-10-2019
  •  | 
  •  

Вопрос

ЭДВАЦИЙСКИЙ ОБЪЕДИНЕНИЕ МОЖЕТ БЫТЬ УДАЛЕНИЕМ. Есть ли хорошая библиотека с открытым исходным кодом, которая может помочь?

Это было полезно?

Решение

www.smooks.org. - Текстовый партер на основе шаблона. У них есть подходящие примеры EDI, которые я искал использовать для реализации для использования для Walmart 810S, прежде чем они бросили мои продукты.

Другие советы

пытаться: http://bots.sourceforge.net.Не столько библиотека, но переводит Edifact в формат, который вы предпочитаете .... XML .... CSV .... etc

ЭДИФАКТ ОБЪЕДИНЕНИИ БЫЛ. Вы можете найти много библиотек, чтобы сделать это. Например,

http://code.google.com/p/edicoder/

Все эти библиотеки просто разбивают сообщения в сегменты.

Тяжелая часть с Edifact состоит в том, чтобы преобразовать сообщение в некоторые значимые объекты. Это очень конкретно приложение, и я сомневаюсь, вы найдете любые библиотеки. Даже если вы найдете один, он будет специфичен для узкого поля, таких как бронирование отелей.

Мы реализовали 834 EDI в XML, используя Java + Smoks 1.6. Это круто!

<?xml version="1.0" encoding="UTF-8"?>

<medi:description name="834 EDI TO XML" version="1.0" />

<medi:delimiters segment="&#10;" field="*" component="^"
    sub-component="#" escape="~"/>

<medi:segments xmltag="FILE">

    <medi:segment segcode="ISA" xmltag="ISAHeader">
        <medi:field xmltag="AuthorziationInformationQualifier" />
        <medi:field xmltag="AuthorziationInformation" />
        <medi:field xmltag="SecurityInformationQualifier" />
        <medi:field xmltag="InterchangeIDQualifier" />
        <medi:field xmltag="InterchangeSenderID" />
        <medi:field xmltag="InterchangeIDQualifier" />
        <medi:field xmltag="InterchangeReceiverID" />
        <medi:field xmltag="InterchangeDate" />
        <medi:field xmltag="InterchangeTime" />
        <medi:field xmltag="RepetitionSeparator" />
        <medi:field xmltag="InterchangeControlVersionNumber" />
        <medi:field xmltag="InterchangeControlNumber" />
        <medi:field xmltag="AcknowledgmentRequested" />
        <medi:field xmltag="InterchangeUsageIndicator" />
        <medi:field xmltag="ComponentElementSeparator" />
    </medi:segment>

    <medi:segmentGroup xmltag="BenefitEnrollmentRequest" maxOccurs="-1">
        <medi:segment minOccurs="0" maxOccurs="-1" segcode="GS" xmltag="BenefitEnrollmentRequestHeader">
            <medi:field xmltag="FunctionalIDCode" />
           <medi:field xmltag="ApplicationSendsCode" />
           <medi:field xmltag="ApplicationRecsCode" />
           <medi:field xmltag="Date" />
           <medi:field xmltag="Time" />
           <medi:field xmltag="GroupCtrlNumber" />
           <medi:field xmltag="ResponsibleAgencyCode" />
           <medi:field xmltag="ReleaseIDCode" />
            </medi:segment>

        <medi:segmentGroup xmltag="BenefitEnrollmentMaintenance" maxOccurs="-1">
                <medi:segment minOccurs="0" maxOccurs="-1" segcode="ST" xmltag="BenefitEnrollmentMaintenanceHeader">
                        <medi:field xmltag="TransactionSetIdentifierCode" />
                        <medi:field xmltag="TransactionSetControlNumber" />
                        <medi:field xmltag="ImplementationConventionReference" />
                </medi:segment>
            <medi:segment minOccurs="0" segcode="BGN" xmltag="Begin" ignoreUnmappedFields="true">
                  <medi:field xmltag="TSPurposeCode" />
                  <medi:field xmltag="ReferenceIdent" />
                  <medi:field xmltag="Date" />
                  <medi:field xmltag="Time" />
                  <medi:field xmltag="TimeCode" />
                  <medi:field xmltag="ReferenceIdent" />
                  <medi:field xmltag="TransactionTypeCode" />
                  <medi:field xmltag="ActionCode" />
            </medi:segment>

             <medi:segment minOccurs="0" segcode="REF" xmltag="Ref_38" ignoreUnmappedFields="true">
                  <medi:field xmltag="ReferenceIdentQual" />
                  <medi:field xmltag="ReferenceIdent" />
            </medi:segment>

             <medi:segment minOccurs="0" segcode="DTP" xmltag="Dtp_007" ignoreUnmappedFields="true">
                  <medi:field xmltag="DateTimeQualifier" />
                  <medi:field xmltag="DateTimePeriodFormatQualifier" />
                   <medi:field xmltag="DateTimePeriod" />
            </medi:segment>

             <medi:segment minOccurs="0" segcode="QTY" xmltag="To" ignoreUnmappedFields="true">
                  <medi:field xmltag="QuantityQualifier" />
                  <medi:field xmltag="Quantity" />
            </medi:segment>

             <medi:segment minOccurs="0" segcode="N1" xmltag="Sponsor" ignoreUnmappedFields="true">
                  <medi:field xmltag="EntityIDCode" />
                  <medi:field xmltag="Name" />
                  <medi:field xmltag="IDCodeQualifier" />
                  <medi:field xmltag="IDCode" />
            </medi:segment>

             <medi:segment minOccurs="0" segcode="N1" xmltag="Issuer" ignoreUnmappedFields="true">
                  <medi:field xmltag="EntityIDCode" />
                  <medi:field xmltag="Name" />
                  <medi:field xmltag="IDCodeQualifier" />
                  <medi:field xmltag="IDCode" />
            </medi:segment>

             <medi:segment minOccurs="0" segcode="N1" xmltag="Agent" ignoreUnmappedFields="true">
                  <medi:field xmltag="EntityIDCode" />
                  <medi:field xmltag="Name" />
                  <medi:field xmltag="IDCodeQualifier" />
                  <medi:field xmltag="IDCode" />
                  <medi:segment minOccurs="0" segcode="ACT" xmltag="Act" ignoreUnmappedFields="true">
                  <medi:field xmltag="AccountNumber" />
                  <medi:field xmltag="Name" />
                  <medi:field xmltag="IDCodeQualifier" />
                  <medi:field xmltag="IDCode" />
                  <medi:field xmltag="AcctNumberQualifier" />
                  <medi:field xmltag="AccountNumber" />
            </medi:segment>
            </medi:segment>
             <medi:segment minOccurs="0" segcode="N1" xmltag="Broker" ignoreUnmappedFields="true">
                  <medi:field xmltag="EntityIDCode" />
                  <medi:field xmltag="Name" />
                  <medi:field xmltag="IDCodeQualifier" />
                  <medi:field xmltag="IDCode" />
                  <medi:segment minOccurs="0" segcode="ACT" xmltag="Act" ignoreUnmappedFields="true">
                  <medi:field xmltag="AccountNumber" />
                  <medi:field xmltag="Name" />
                  <medi:field xmltag="IDCodeQualifier" />
                  <medi:field xmltag="IDCode" />
                  <medi:field xmltag="AcctNumberQualifier" />
                  <medi:field xmltag="AccountNumber" />
            </medi:segment>
            </medi:segment>

            <!--  
            <medi:segment minOccurs="0" segcode="N1" xmltag="Sponsor">
                  <medi:field xmltag="Name" />
            </medi:segment>
            <medi:segmentGroup xmltag="Member" maxOccurs="-1">
                <medi:segment minOccurs="0" maxOccurs="-1" segcode="INS"    xmltag="MemberHeader">
                        <medi:field xmltag="HeaderName" />
                        </medi:segment>

                <medi:segment minOccurs="0" segcode="DTP" xmltag="DOB">
                  <medi:field xmltag="Month" />
            </medi:segment>
                <medi:segment minOccurs="0" maxOccurs="-1" segcode="LE" xmltag="MemberFooter" ignoreUnmappedFields="true">
                        <medi:field xmltag="FooterName"/>
                        </medi:segment>
            </medi:segmentGroup>-->

            <medi:segment minOccurs="0" segcode="SE" xmltag="BenefitEnrollmentMaintenanceFooter">
            <medi:field xmltag="TransactionSetIdentifierCode" />
                        <medi:field xmltag="TransactionSetControlNumber" />
            </medi:segment>
        </medi:segmentGroup>

        <medi:segment minOccurs="0" segcode="GE" xmltag="BenefitEnrollmentRequestFooter">
            <medi:field xmltag="ZFA" />
            </medi:segment>
    </medi:segmentGroup>

    <medi:segment segcode="IEA" xmltag="ISAFooter">
         <medi:field xmltag="CCC" />
         </medi:segment>
</medi:segments>

Есть хороший в http://x12parser.codeplex.com.Отказ Он будет выводить любой 810 в виде XML, HTML или обратно к тексту с пробелом для облегчения проверки. Установка тестов включает образец Walmart 810 с сайта: http://www.jobisez.com/edi/tp/guide.aspx?doc=/edi-igs/walmart/810invoice5010.pdf..

Отформатированный текст будет выглядеть так:

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
      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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top