def initialize( user_par={} )
super( user_par )
if (illegal_keys = user_par.keys - @@interchange_default_keys) != []
msg = "Illegal parameter(s) found: #{illegal_keys.join(', ')}\n"
msg += "Valid param keys (symbols): #{@@interchange_default_keys.join(', ')}"
raise ArgumentError, msg
end
par = @@interchange_defaults.merge( user_par )
@messages_created = @groups_created = 0
@syntax = 'E'
@e_iedi = par[:i_edi]
@charset = par[:charset]
@version = par[:version]
@una = UNA.new(self, par[:una_string])
self.output_mode = par[:output_mode]
self.show_una = par[:show_una]
check_consistencies
init_ndb( @version )
if @e_iedi
raise "I-EDI not supported yet"
@header = new_segment('UIB')
@trailer = new_segment('UIZ')
@header.cS001.d0001 = par[:charset]
@header.cS001.d0002 = par[:version]
@header.cS002.d0004 = par[:sender] unless par[:sender].nil?
@header.cS003.d0010 = par[:recipient] unless par[:recip].nil?
@header.cS302.d0300 = par[:interchange_control_reference]
x= :test_indicator; @header.d0035 = par[x] unless par[x].nil?
t = Time.now
@header.cS300.d0338 = t.strftime(par[:version]==4 ? '%Y%m%d':'%y%m%d')
@header.cS300.d0314 = t.strftime("%H%M")
@trailer.d0036 = 0
ch, ct = @header.cS302, @trailer.cS302
ct.d0300, ct.d0303, ct.d0051, ct.d0304 = ch.d0300, ch.d0303, ch.d0051, ch.d0304
else
@header = new_segment('UNB')
@trailer = new_segment('UNZ')
@header.cS001.d0001 = par[:charset]
@header.cS001.d0002 = par[:version]
@header.cS002.d0004 = par[:sender] unless par[:sender].nil?
@header.cS003.d0010 = par[:recipient] unless par[:recip].nil?
@header.d0020 = par[:interchange_control_reference]
x= :application_reference; @header.d0026 = par[x] unless par[x].nil?
x= :acknowledgment_request; @header.d0031 = par[x] unless par[x].nil?
x= :interchange_agreement_id; @header.d0032 = par[x] unless par[x].nil?
x= :test_indicator; @header.d0035 = par[x] unless par[x].nil?
t = Time.now
@header.cS004.d0017 = t.strftime(par[:version]==4 ? '%Y%m%d':'%y%m%d')
@header.cS004.d0019 = t.strftime("%H%M")
@trailer.d0036 = 0
end
end