Difference between revisions of "Sponsored Development: EDI Import/Export"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
m (Project Team)
m (Status)
 
(31 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
=== License ===
 +
[http://www.gnu.org/copyleft/gpl.html GPL v2] - the same as Adempiere.
 +
 
===Project Team===
 
===Project Team===
  
Line 9: Line 12:
  
 
====Developers====
 
====Developers====
* [[User:Trifonnt|Trifon]]
+
* [[User:Trifonnt|Trifon Trifonov]]
 +
* [[User:Hengsin|Low Heng Sin]] - Inbound processing
  
 
====Testers====
 
====Testers====
* [[User:Trifonnt|Trifon]]
+
* [[User:Trifonnt|Trifon Trifonov]]
 
* [[Idalica]]
 
* [[Idalica]]
  
 
====Sponsors====
 
====Sponsors====
 
* [[Idalica]]
 
* [[Idalica]]
 +
 +
====Status====
 +
* Out band processing - Working!
 +
** Source location - [http://adempiere.svn.sourceforge.net/viewvc/adempiere/contributions/253b/comxe/_Project-ID-EDI/ contributions/253b/comxe/_Project-ID-EDI/]
 +
** Instructions how to integrate with Adempiere - [http://adempiere.svn.sourceforge.net/viewvc/adempiere/contributions/253b/comxe/_Project-ID-EDI/ReadMe.txt?view=markup contributions/253b/comxe/ReadMe.txt]
 +
** sf.net Tasks
 +
*** [http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=140992&group_id=176962&group_project_id=52931 EDI - VariableValue field to have expr: totalSegments-2] (link does not work)
 +
*** [http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=140945&group_id=176962&group_project_id=52931 EDI - QRS document (EDI 832)] (link does not work)
 +
*** [http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=140943&group_id=176962&group_project_id=52931 Change the naming convention for the EDI document being produced.] (link does not work)
 +
*** [http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=140940&group_id=176962&group_project_id=52931 Users should not submit EDI after they've already submitted it on] (link does not work)
 +
 +
* Inbound processing - Working!
 +
** Develop componenet on JBoss Server which checks for new EDI documents on specified server(FTP).
 +
** Develop Adempiere class which handle import of EDI document into Adempiere instance.
  
 
===Requirements===
 
===Requirements===
 +
 +
==== Outbound Processing ====
 +
*From the document Invoice (Customer) [[Image:8-Invoice (Customer).jpg]]
 +
 +
hit the "Submit EDI" button. "Submit EDI" button is active only after document is Completed.
 +
 +
Result:[[Image: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 ====
 +
[[Image:0-Menu.jpg]]
 +
 +
==== Add Table: "C_EDI_DocType" ====
 +
[[Image: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 ====
 +
[[Image:10-Document Type.jpg]]
 +
**Field: C_EDIFormat_ID
 +
 +
====Add Table: "C_EDIFormat" ====
 +
[[Image: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" ====
 +
[[Image:3-EDI Format Line.jpg]]
 +
**fields: C_EDIFormat_ID, Position, Value, Name, Comments, Type(Element, Segment)
 +
 +
====Add Table: "C_EDIFormat_LineElement" ====
 +
[[Image: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" ====
 +
[[Image: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" ====
 +
[[Image:6-EDI Processor.jpg]]
 +
**fields: Host, Account, Password Info, C_EDIProcessorType_ID
 +
 +
====Add Table: "C_BPartner_EDI" ====
 +
[[Image:7-BPartner EDI.jpg]]
 +
**fields: C_BPartner_ID, C_EDIFormat_ID, Inbound(Y,N), C_EDIProcessor_ID, C_DocType_ID
 +
 +
== Links ==
 +
* [http://test-edi.blogspot.com/ Test blog created by EDI Export]
 +
* [https://sourceforge.net/forum/message.php?msg_id=4711760 sf.net post]OpenBravo weak side: Import EDI File is developed only for a concrete import order case.
 +
 +
 +
[[Category:Development]]

Latest revision as of 04:20, 30 April 2012

License

GPL v2 - the same as Adempiere.

Project Team

Coordinator

Joel Stangeland

Functional Specs

Joel Stangeland


Developers

Testers

Sponsors

Status

  • Inbound processing - Working!
    • Develop componenet on JBoss Server which checks for new EDI documents on specified server(FTP).
    • Develop Adempiere class which handle import of EDI document into Adempiere instance.

Requirements

Outbound Processing

  • From the document Invoice (Customer) 8-Invoice (Customer).jpg

hit the "Submit EDI" button. "Submit EDI" button is active only after document is Completed.

Result: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