Repo note
[working/Evergreen.git] / Open-ILS / src / edi_translator / README
1 EDI Translator XML-RPC Service (for Evergreen)
2
3 Copyright 2010
4 License: GNU Public License v 2.0 or later
5
6 Author: Joe Atzberger
7         Equinox Software, Inc.
8
9 For ease of interpretation, Evergreen needs a service to convert between raw EDI and a 
10 more commonly used JSON-based notation.  Here we have the script (edi_webrick.rb) to
11 do that.  The Translator will be called on both inbound and outbound EDI messages,
12 translating to JSON (JEDI) for edi_fetcher.pl and to EDI for edi_pusher.pl,
13 respectively.
14
15 Files:
16     edi_webrick.bash - wrapper script for setting ENV, calling edi_webrick.rb
17     edi_webrick.cnf  - edi_webrick.rb config script
18     edi_webrick.rb   - the main EDI translator daemon script
19     install.sh       - dependency installer (for debian lenny)
20     README           - this file
21
22 This service can be run on a local or remote system that has the proper ruby environment
23 established.  See the install.sh script for an example of how to install the needed ruby
24 components (on debian lenny linux).  
25
26 There is no such thing (yet?) as "push" from a vendor of their EDI responses.  Basically
27 they just put responses in an FTP directory somewhere that you are expected to check.  It
28 would be cool if there were a better way to do that like consuming some RSS feed or 
29 remote API callbacks.  
30
31 Evergreen will only support one delivery address per PO.  That limitation is based
32 on the mapping to the delivery address via the ordering_agency org_unit.  If items
33 need to be shipped someplace else, then they need a different PO, for now at least.
34
35 If we want to support multiple vendor profiles, then we drop the unique constraint
36 on SAN, add a new one on SAN + profile_code.  Profile code then goes in the template.
37 The template logic could get rather complex to support all the optional data elements.
38
39 mbklein says:
40 'order' mapper won't work for EDIFACT versions later than D.96A, because of a change
41 to the structure of the BGM segment.  But as long as all the supported vendors will
42 accept a D.96A ORDERS (which I think they do), that's not a problem.
43
44 SEE ALSO:
45     http://github.com/mbklein/openils-mapper