Skip to main content

EnsLib.EDI.X12.Segment

class EnsLib.EDI.X12.Segment extends %Library.RegisteredObject, EnsLib.EDI.Segment

Property Inventory

Method Inventory

Parameters

parameter ESCascii = 27;

Properties

property CS as %String [ Calculated ];
Sub-element component separator character
Property methods: CSDisplayToLogical(), CSIsValid(), CSLogicalToDisplay(), CSLogicalToOdbc(), CSNormalize()
property DocTypeCategory as %String [ ReadOnly ];
the Category portion of the DocType
Property methods: DocTypeCategoryDisplayToLogical(), DocTypeCategoryGet(), DocTypeCategoryIsValid(), DocTypeCategoryLogicalToDisplay(), DocTypeCategoryLogicalToOdbc(), DocTypeCategoryNormalize(), DocTypeCategorySet()
property DocTypeName as %String [ ReadOnly ];
the Name portion of the DocType ( name [ ! required fields] )
Property methods: DocTypeNameDisplayToLogical(), DocTypeNameGet(), DocTypeNameIsValid(), DocTypeNameLogicalToDisplay(), DocTypeNameLogicalToOdbc(), DocTypeNameNormalize()
property ES as %String [ Calculated ];
Data-element separator character
Property methods: ESDisplayToLogical(), ESIsValid(), ESLogicalToDisplay(), ESLogicalToOdbc(), ESNormalize()
property ESC as %String [ ReadOnly ];
Property methods: ESCDisplayToLogical(), ESCGet(), ESCIsValid(), ESCLogicalToDisplay(), ESCLogicalToOdbc(), ESCNormalize()
property FullSize as %Integer [ Calculated , ReadOnly ];
Size in bytes of the segment content (even if >32k)
Property methods: FullSizeDisplayToLogical(), FullSizeIsValid(), FullSizeLogicalToDisplay(), FullSizeNormalize()
property ISASegmentTerminator as %String;
Segment serminator character(s) if we are an ISA and it came with any
Property methods: ISASegmentTerminatorDisplayToLogical(), ISASegmentTerminatorGet(), ISASegmentTerminatorIsValid(), ISASegmentTerminatorLogicalToDisplay(), ISASegmentTerminatorLogicalToOdbc(), ISASegmentTerminatorNormalize(), ISASegmentTerminatorSet()
property RS as %String [ Calculated ];
Repetition separator character
Property methods: RSDisplayToLogical(), RSIsValid(), RSLogicalToDisplay(), RSLogicalToOdbc(), RSNormalize()
property Separators as %String (MAXLEN = 3, MINLEN = 3) [ InitialExpression = $$$X12DefSeparators ];
All 3 Separators as a single String
Property methods: SeparatorsDisplayToLogical(), SeparatorsGet(), SeparatorsIsValid(), SeparatorsLogicalToDisplay(), SeparatorsLogicalToOdbc(), SeparatorsNormalize()

Methods

method CSGet() as %String
method CSSet(newval) as %Status
method CopyValues(pSource As EnsLib.EDI.X12.Segment, pSourcePath As %String, pTargetPath As %String, pAction As %String, pKey As %String, pEmptyFieldAsNull As %Boolean = 0, pIgnoreMissingSource As %Boolean = 0) as %Status
Inherited description: Copy a whole set of values from source to target when iteration is implied between 2 VDocs pSourcePath contains the property path to the source set
pTargetPath contains the property path to the target set
pAction contains an action code: "set", etc..
pKey contains an optional key value or a set of comma-separated key values to be used as array indices where empty array index placeholders are present in pPropertyPath.
method DocTypeSet(pDocType As %String) as %Status
method DumpMaps() as %Status
method ESGet() as %String
method ESSet(newval) as %Status
classmethod EnumerateDocTypesClose(ByRef qHandle As %Binary) as %Status
classmethod EnumerateDocTypesExecute(ByRef qHandle As %Binary, Category As %String, IncludeBase As %Boolean, ExpandedDocType As %Boolean = 0) as %Status
classmethod EnumerateDocTypesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
classmethod EnumerateTypeCategoriesClose(ByRef qHandle As %Binary) as %Status
classmethod EnumerateTypeCategoriesExecute(ByRef qHandle As %Binary, Standard As %String = "") as %Status
classmethod EnumerateTypeCategoriesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) as %Status
method Escape(pData) as %String
classmethod EscapeEx(pData, pSeparators) as %String
method FullSizeGet() as %String
method GetBinaryStreamAt(ByRef pStream As %Stream, pPath As %String) as %Status
classmethod GetContentArray(Output pContents, pMode As %String, pDocType As %String, pLevel As %Integer = 0, pIncludeBase As %Boolean = 0) as %Status
Inherited description: Returns array of properties that make up the contents of this object.
This method in implemented within the document class.
The content array is in the form:
pContents(n,"type")="%String"
pContents(n,"name")="Field"
pContents(n,"alias")=alias code
If pContents(n) is non-zero then the property is a composite type with
sub-properties. The sub-properties are indexed with a similar structure under
pContents(n,m) where m is the index of the subtype property.
method GetNextIndex(pPath As %String, pIndex As %String, ByRef pStatus As %Status = $$$OK) as %String
Gets the next index in an array
method GetValueAt(pPropertyPath As %String, pSeparators As %String, Output pStatus As %Status, pTreatEmptyAsNull As %Boolean = 0) as %String
pPropertyPath is of syntax: element [ ( array ) ] [ . component ] Returns the value at the specified property path. pSeparators is used to specify the separators to be used when a non-atomic value is returned. All property path elements must be either name or index.
When retrieving full segment data any trailing Data Element, Component Element or Repetition Separators will be removed unless the segment is ISA.
classmethod ImportFromIOStream(pIOStream As %IO.I.CharacterStream, Output pStatus As %Status = $$$OK, pSeparators As %String, pIOFormatClassname As %String = "") as EnsLib.EDI.X12.Document
classmethod ImportFromString(pString As %String, Output pStatus As %Status, pSeparators As %String, ByRef pConfigItem As %String = "", pIOFormatClassname As %String) as EnsLib.EDI.X12.Segment
method OutputHTML() as %Status
Display Segment as HTML, using DocType info if available
method OutputHTMLZen() as %Status
Display Segment as HTML, using DocType info if available
method OutputToDevice(pSeparators As %String, pSegNum As %String, pSegPath As %String, pParentDoc As EnsLib.EDI.Document, pIOFormatClassname As %String) as %Status
method OutputToIOStream(pIOStream As %IO.I.CharacterStream, pSeparators As %String, pSegNum As %String, pSegPath As %String, pParentDoc As EnsLib.EDI.Document, pIOFormatClassname As %String = "") as %Status
Convert segments back to Stream
method OutputToLibraryStream(pLibStream As %Stream.Object, pSeparators As %String, pSegNum As %String, pSegPath As %String, pParentDoc As EnsLib.EDI.Document, pIOFormatClassname As %String) as %Status
method OutputToString(pSeparators As %String, Output pStatus As %Status, pCharEncoding As %String = "", pSegNum As %String, pSegPath As %String, pParentDoc As EnsLib.EDI.Document, pIOFormatClassname As %String) as %String
method PokeDocType(pDocType As %String) as %Status
method RSGet() as %String
method RSSet(newval) as %Status
method ReadRawDataStream(ByRef pStream As %Stream.Object, pPropertyPath As %String = "") as %Status
Read a field from a >32k segment, or the whole segment, into a stream. Note that this will return the entire remainder of the segment, not stopping at the end of the field specified in pPropertyPath
method SaveData(pSeparators As %String = "") as %Status
Compose the segment and store it at a new ID
method SeparatorsSet(newvalue As %String) as %Status
method SetValueAt(pValue As %String, pPropertyPath As %String = "", pAction As %String = "set", pKey As %String = "") as %Status
Sets the value at the specified property path. pPropertyPath is of syntax: element [ ( array ) ] [ . component ] All property path elements must be either name or index. pKey is used to append an array index to the value at the given property path. pAction corresponds to the actions in the DTL statement. If a segment's total length is more than 32760 or will be after setting the value, then this method can't be used. Instead, use one of the methods StoreFieldStreamRaw(), StoreFieldStreamEscaped() or StoreFieldStreamBase64()
method StoreRawDataStream(pStream As %Stream.Object, pPropertyPath As %String = "") as %Status
Write a >32k field or whole segment stream to a segment. Note that this renders the segment immutable after completing, and therefore works only once per segment.
method Unescape(pData) as %String
classmethod UnescapeEx(pData, pSeparators) as %String
method decompose() as %Status
Decompose the segment from a single string into a multidimensional array
method decomposeData(pData As %String) as %Status
method getAtFromArray(pPropertyPath As %String = "", pSeparators As %String, Output pStatus As %Status, pEmptyFieldAsNull As %Boolean = 0) as %String
method getAtFromGlobal(pPropertyPath As %String = "", pSeparators As %String, Output pStatus As %Status, pTreatEmptyAsNull As %Boolean = 0) as %String
method init(pSegID As %String, pMutable As %Boolean, pDocType As %String, pSegData As %String) as %Status
Inherited description: Initialize a segment. The segid is typically an index into the Segment storage global. Mutable indicates whether the initialized segment may be modified or not and SegType is used to determine the segment schema to be used for interpretation of segment contents
method outputHTMLSeg(pSeparators As %String, pSegNum As %String = "", pSegPath As %String = "", pDocument As EnsLib.EDI.Document = $$$NULLOREF) as %Status
method outputHTMLSegZen(pSeparators As %String, pSegNum As %String = "", pSegPath As %String = "", pDocument As EnsLib.EDI.Document = $$$NULLOREF) as %Status
method parsePropertyPath(pPropertyPath As %String, Output pElem As %Integer, Output pArray As %Integer, Output pComponent As %Integer) as %Status
Given a property path, determine the Element, Repeat and Component positions
classmethod replaceSeparators(pInputData, oSeparators, iTerminator As %String = "") as %String

Queries

query EnumerateDocTypes(Category As %String = "", IncludeBase As %Boolean = 0, ExpandedDocType As %Boolean = 0)
Selects Type As %String
Returns a list of available DocTypes for this document class.
The DocType is returned as the first column in the result set.
The Category parameter can be used to restrict the list.
If Category is:
0 - return only DocTypes in standard categories
+ - return only DocTypes in user-defined categories
empty - return DocTypes from all categories
a category name - return only DocTypes in the named category
a partial name suffixed with '%' - return only DocTypes in categories matching the partial category name
other - return nothing
If IncludeBase is:
0 - return only DocTypes defined in the current schema category itself
1 - return all DocTypes in the current schema category's base category in addition to those defined in the current category itself
If ExpandedDocType is:
0 - return all SegTypes as Category:SegName
1 - return old-style SegTypes as Category:DocStruct:Segment-Ordinal
query EnumerateTypeCategories(Standard As %String = "")
Selects Category As %String, Description As %String, IsStandard As %Boolean, Base As %String
Returns a list of document type schema categories for the document class.
The Standard parameter can be used to restrict the list.
If Standard is: 0 - return only standard categories + - return only user-defined categories empty - return all categories a partial category name - return only categories starting with the given category name part
other - return nothing

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab