Sponsored Development: EDI Fact Import/Export

From ADempiere
Revision as of 22:27, 24 May 2009 by Red1 (Talk) (Add Table: "C_EDIFormat")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

License

GPL v2 - the same as Adempiere.

Project Team

Coordinator

BIT Software

Functional Specs

BIT Software


Developers

Testers

Sponsors

Status


Requirements Steps

Outbound Processing

  • In the Invoice (Customer) window 8-Invoice (Customer).jpg
  • Press the Submit EDI button which is active only after document is Completed.

Successful EDI Submission

9-EDI Result.jpg


  • Runs process that:
    • Look up the DocumentType to see what "Doc Type" to use.
    • Look up the BPartner
    • Look up right "EDI Format", "EDI Processor" for BPartner and DocType.
    • Read the EDI Format and the document lines to construct the EDI document.
      • Get the data strings using ColumnID, and use Type to decide which separator to use.
      • Order them by position.
      • Truncate lengths, validate usage.
    • Using the info from C_EDIProcessor submit the EDI document.

Inbound Processing

  • Use the scheduler to schedule a process that will poll according to the rules configured on C_EDIProcessor
  • Look up the Business Partner and EDI_DocType to determine which format to use to parse the file and which document type to create.
    • EDI element ST01 stores EDI code. Read this code and look it up in C_EDI_DocType.EDI_Code to return C_EDI_DocType_ID
    • EDI element ISA06 stores Interchange Sender ID. This represents a Business Partner. Read this code and look it up in C_Bpartner.C_EDI_Sender to return C_BPartner_ID.
    • Use C_EDI_DocType_ID and C_BPartner_ID to find the right C_BPartner_EDI record. This will tell you which doctype (AD_DocType_ID) to create, and which format (C_EDI_Format_ID) to use to translate the file.

  • As an alternative, C_EDIProcessor could define a JMS queue to post to.

Then we could manage the movement of the data with ServiceMix.

Create new windows

0-Menu.jpg

Add Table: "C_EDI_DocType"

1-EDI Doc Type.jpg

  • FIELDS: C_EDI_DocType_ID; Value, Name, Description, Help, C_EDI_DocCode (String, used to match with EDI element ST01)
  • Samples: (850 PO, 810 Invoice)

Add to "Document Type" window

10-Document Type.jpg

  • FIELD: C_EDIFormat_ID

Add Table: "C_EDIFormat"

2-EDI Format.jpg

  • FIELDS: C_EDIFormat_ID, EDI Format Name, Value, C_EDI_DocType_ID, AD_Table_ID, SegmentSeparator, FieldSeparator

Add Table: "C_EDIFormat_Line"

3-EDI Format Line.jpg

  • FIELDS: C_EDIFormat_ID, Position, Value, Name, Comments, Type(Element, Segment)

Add Table: "C_EDIFormat_LineElement"

4-EDI Format Line Element field.jpg

  • FIELDS: C_EDIFormat_LineElement_ID, Position, Value, Name, IsMandatory, ElementType(Constant, Field), ConstValue, MinFieldLength

Add Table: "C_EDIProcessorType"

5-EDI Processor Type.jpg This table makes flexible addition of new types in future.

  • FIELDS: Value(http, ftp, svn, cvs), JavaClass (this is class which is responsible to handle upload of EDI document)

Add Table: "C_EDIProcessor"

6-EDI Processor.jpg

  • FIELDS: Host, Account, Password Info, C_EDIProcessorType_ID

Add Table: "C_BPartner_EDI"

7-BPartner EDI.jpg

  • FIELDS: C_BPartner_ID, C_EDIFormat_ID, Inbound(Y,N), C_EDIProcessor_ID, C_DocType_ID

Links

  • sf.net post - OpenBravo weak side: Import EDI File is developed only for a concrete import order case.