class EnsLib.EDI.EDIFACT.Parser
extends %RegisteredObject
This is the EDIFACT Interchange parser
property %CharCount
as %Integer;
property %CurrentDocument
as EnsLib.EDI.Document;
The current Document
property %CurrentParentSegIndex
as %String;
The segment position within the current parent Document
property %CurrentParents
[ InitialExpression = 0,MultiDimensional ];
List of enclosing parent objects ordered from outermost to immediate
As EnsLib.EDI.Document
property %LineCount
as %Integer;
property %LookaheadLine
as %String;
Lookahead line left over from previous document parse
property %LookaheadLineIsNew
as %Boolean;
Lookahead buffer for line terminator of unframed MSH
property %LookaheadLineTerminator
as %String;
Lookahead buffer for line terminator of unframed MSH
property %NumChildren
as %Integer [ MultiDimensional ];
List of counts of nested documents, ordered from outer to innermost
property %ParentIds
as %String;
List of enclosing parent objects ordered from immediate to outermost
property %SegmentCount
as %Integer;
Count of Segments tallied during parse of a TransactionSet
property %ServiceInterface
as EnsLib.EDI.ServiceInterface;
The config provider
property %Stream
as %IO.I.CharacterStream;
property ControlVersion
as %String(MAXLEN=5);
This allows you to pre-set a ControlVersion to use when reading TransactionSets without an UNA or UNG
property Done
as %Boolean [ Calculated,ReadOnly ];
property ReadTimeout
as %Numeric(MINVAL=-1) [ InitialExpression = 5 ];
Number of seconds to wait for each read of document data inside a started document to be available on the input stream
property SegmentTerminator
as %String(MAXLEN=1,MINLEN=1);
This remembers the terminator defined in the UNA, but you can pre-set it to read TransactionSets without an UNA
property Separators
as %String(MAXLEN=4,MINLEN=4);
This remembers separators defined in the UNA, but you can pre-set it to read TransactionSets without an UNA
property StartTimeout
as %Numeric(MINVAL=-1) [ InitialExpression = 5 ];
Number of seconds to wait for the start of a document to be available on the input stream
property TransactionSetCount
as %Integer;
Count of TransactionSets in a Group
property Whitespace
as %String;
This property controls the skipping of whitespace in the data stream. Set it to a string of characters that should be
considered whitespace and not part of the data
method DoneGet()
as %Boolean
This is a Get accessor method for the Done property.
method ParseIOStream(pIOStream As %IO.I.CharacterStream, Output pDocument As EnsLib.EDI.EDIFACT.Document, ByRef pControlVersion As %String = "", pInbound As %Boolean = 0)
as %Status
Parse a complete EDIFACT interchange document from the stream, including any nested TransactionSet documents inside it.
An Interchange contains zero or more functional groups which in turn contain TransactionSets.
method Reset()
method ResetPosition()
method StripWhitespace(pLine As %String)
as %String
Strip off leading whitespace from the line