Skip to content
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

Clone this wiki locally