Difference between revisions of "Sponsored Development: EDI Import/Export"
From ADempiere
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
Contents
- 1 License
- 2 Project Team
- 3 Requirements
- 3.1 Outbound Processing
- 3.2 Inbound Processing
- 3.3 Create new windows
- 3.4 Add Table: "C_EDI_DocType"
- 3.5 Add to "Document Type" window
- 3.6 Add Table: "C_EDIFormat"
- 3.7 Add Table: "C_EDIFormat_Line"
- 3.8 Add Table: "C_EDIFormat_LineElement"
- 3.9 Add Table: "C_EDIProcessorType"
- 3.10 Add Table: "C_EDIProcessor"
- 3.11 Add Table: "C_BPartner_EDI"
- 4 Links
License
GPL v2 - the same as Adempiere.
Project Team
Coordinator
Functional Specs
Developers
- Trifon Trifonov
- Low Heng Sin - Inbound processing
Testers
Sponsors
Status
- Out band processing - Working!
- Source location - contributions/253b/comxe/_Project-ID-EDI/
- Instructions how to integrate with Adempiere - contributions/253b/comxe/ReadMe.txt
- sf.net Tasks
- EDI - VariableValue field to have expr: totalSegments-2 (link does not work)
- EDI - QRS document (EDI 832) (link does not work)
- Change the naming convention for the EDI document being produced. (link does not work)
- 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
Outbound Processing
hit the "Submit EDI" button. "Submit EDI" button is active only after document is Completed.
- 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.
- Runs process that:
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
Add Table: "C_EDI_DocType"
- 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
- Field: C_EDIFormat_ID
Add Table: "C_EDIFormat"
- fields: C_EDIFormat_ID, EDI Format Name, Value, C_EDI_DocType_ID, AD_Table_ID, SegmentSeparator, FieldSeparator
Add Table: "C_EDIFormat_Line"
- fields: C_EDIFormat_ID, Position, Value, Name, Comments, Type(Element, Segment)
Add Table: "C_EDIFormat_LineElement"
- fields: C_EDIFormat_LineElement_ID, Position, Value, Name, IsMandatory, ElementType(Constant, Field), ConstValue, MinFieldLength
Add Table: "C_EDIProcessorType"
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"
- fields: Host, Account, Password Info, C_EDIProcessorType_ID
Add Table: "C_BPartner_EDI"
- fields: C_BPartner_ID, C_EDIFormat_ID, Inbound(Y,N), C_EDIProcessor_ID, C_DocType_ID
Links
- Test blog created by EDI Export
- sf.net postOpenBravo weak side: Import EDI File is developed only for a concrete import order case.