forked from markjeee/edi4r
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
71 lines (46 loc) · 2.04 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
= EDI TOOLKIT for RUBY (edi4r)
This is Ruby gem <b>edi4r</b> version
:include:VERSION
Edi4r was created to greatly simplify the creation and processing of data
for Electronic Data Interchange (EDI). In particular, it supports the
UN/EDIFACT syntax (ISO 9573) and optionally SAP IDocs.
Limited support is offered for ANSI X.12 and SEDAS.
== Installation
Install it as any other Ruby gem, e.g.:
sudo gem install edi4r-<version>.gem
With administrator privileges and network access, just type:
gem install edi4r
== Usage
require 'edi4r' # Older installations: require_gem 'edi4r'
require 'edi4r/edifact' # optional
# Build a UN/EDIFACT interchange from its character representation in a file:
ic = nil
File.open("received.edi") {|hnd| ic = EDI::E::Interchange.parse( hnd ) }
ic.each do |msg|
# Process message, here: Just list document numbers from (only) segment BGM
puts msg['BGM'].first.d1004
end
# Create a minimalistic interchange
ic = EDI::E::Interchange.new # Default: syntax version=3, charset = UNOB
msg = ic.new_message # Default: ORDERS D.96A
bgm = msg.new_segment('BGM') # Obtain an empty segment
bgm.cC002.d1001 = '220' # Add some content to mandatory elements
bgm.d1004 = 'PO-54321'
dtm = msg.new_segment('DTM')
dtm.cC507.d2005 = '137'
uns = msg.new_segment('UNS')
uns.d0081 = 'S'
[bgm, dtm, uns].each {|seg| msg.add seg} # Add segments to message
ic.add msg # Add message to interchange - ready to go!
ic.header.cS002.d0004 = 'sender'; ic.header.cS003.d0010 = 'recipient' # UNB
ic.validate # Conforming to standard?
print ic # Could be sent that way!
== See also
* Background[link:EDI.html] info about data structure and classes.
* A Tutorial[link:Tutorial.html] for examples of use.
* A Changelog[link:Changelog.html] is maintained since version 0.8
* Finally, see TO-DO[link:TO-DO.html] for the current wish list.
* This code is put under the Ruby license, see COPYING[link:COPYING.html] for details.
:include:AuthorCopyright
Enjoy,
Heinz