-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Matthias Wuttke edited this page Mar 6, 2018
·
6 revisions
EDIFACT structure classes:
- class Interchange
- Boolean hasFunctionalGroups
- List groups
- List messages
- class Message:
- List segments
- class DataSegment
- String code
- String value
- List elements
- abstract class SegmentElement
- class SimpleSegmentElement : SegmentElement
- String value
- class CompositeSegmentElement : SegmentElement
- List values
Structure serialization / deserialization
- EdifactSeparators
- component data element separator (default :)
- data element separator (default +)
- decimal mark (default .)
- release character (default ?)
- reserved, must be a space
- segment terminator (default ')
- EdifactSerializer
- EdifactDeserializer
- Need to implement special handling for the 'service string advice'
- In order to properly deserialize a segment, we need to know if a given element is 'simple' or 'composite'. This cannot be seen from the input for composites consisting of a single value.
- A naive approach could generate 'simple' elements in all instances where there is no component data element separator (:)
- EdifactTokenizer, EdifactToken (type, value), EdifactTokenType (Content, ComponentDataElementSeparator, DataElementSeparator, SegmentTerminator)
Common Data segment classes
- ServiceStringAdviceSegment
- InterchangeHeaderSegment
- FunctionalGroupHeader
- MessageHeader
- MessageTrailer
- FunctionalGroupTrailer
- InterchangeTrailer
Message structure definition (schema), to be refined
- Sequences and Loops
- SegmentDefinition
- Code, Label, Cardinality
- Fields: Label, Cardinality, Truncate
- Sub segments / loops?
- MessageDefinition
Service String Advice UNA Conditional _____ Interchange Header UNB Mandatory | ___ Functional Group Header UNG Conditional | | _ Message Header UNH Mandatory | | | User Data Segments As required | | |_ Message Trailer UNT Mandatory | |___ Functional Group Trailer UNE Conditional |_____ Interchange Trailer UNZ Mandatory
This library seems great: https://github.com/metroplex-systems/edifact