# File lib/edi4r/edifact.rb, line 884
    def initialize( p, user_par={} )
      super( p, user_par )
      @messages_created = 0
 
      if user_par.is_a? Hash
        preset_group( user_par )
        @header = new_segment('UNG')
        @trailer = new_segment('UNE')
        @trailer.d0060 = 0

        @header.d0038 = @name
        @header.d0051 = @resp_agency
        cde = @header.cS008
        cde.d0052 = @version
        cde.d0054 = @release
        cde.d0057 = @subset

        @header.cS006.d0040 = user_par[:sender]    || root.header.cS002.d0004
        @header.cS007.d0044 = user_par[:recipient] || root.header.cS003.d0010
        @header.d0048 = user_par[:group_reference] || p.groups_created
        #      @trailer.d0048 = @header.d0048

        t = Time.now
        @header.cS004.d0017 = t.strftime(p.version==4 ? '%Y%m%d':'%y%m%d')
        @header.cS004.d0019 = t.strftime("%H%M")
        
      elsif user_par.is_a? Segment

        @header = user_par
        raise "UNG expected, #{@header.name} found!" if @header.name != 'UNG'
        @header.parent = self
        @header.root = self.root

        # Assign a temporary UNE segment
        de_sep = root.una.de_sep
        @trailer = Segment.parse(root, 'UNE' << de_sep << '0' << de_sep << '0')

        s008 = @header.cS008
        @name = @header.d0038
        @version = s008.d0052
        @release = s008.d0054
        @resp_agency = @header.d0051
        @subset = s008.d0057
      else
        raise "First parameter: Illegal type!"
      end

    end