tag = 'CPS' Eancom.register_segment(tag: tag, klass: Eancom::Edifact::CPS) structure = Eancom::Edifact::Structure.new(tag: tag) #============================================================================== # Tag # #============================================================================== tag = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 3, dictionary: nil, description: "Message Header", required: true ) tag.add(:tag, data) structure << tag #============================================================================== # Hierarchical structure level identifier # #============================================================================== hierarchical_structure_level_identifier = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Hierarchical structure level identifier", required: true ) hierarchical_structure_level_identifier.add(:hierarchical_structure_level_identifier, data) structure << hierarchical_structure_level_identifier #============================================================================== # Hierarchical structure parent identifier # #============================================================================== hierarchical_structure_parent_identifier = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Hierarchical structure parent identifier", required: false ) hierarchical_structure_parent_identifier.add(:hierarchical_structure_parent_identifier, data) structure << hierarchical_structure_parent_identifier #============================================================================== # Hierarchical structure level identifier # #============================================================================== packaging_level_code = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '1E' => { description: 'Highest (GS1 Temporary Code)', identifier: 'highest' }, '4' => { description: 'No packaging hierarchy', identifier: 'no_packing_hierarchy' }, '5' => { description: 'Shipment Level', identifier: 'shipment_level' } }, description: "Packaging level code", required: false ) packaging_level_code.add(:packaging_level_code, data) structure << packaging_level_code #============================================================================== Eancom.register_structure(tag: 'CPS', structure: structure)