Home > Class Reference > ENSLIB namespace > EnsLib.EDI.ASTM.Document

EnsLib.EDI.ASTM.Document

persistent class EnsLib.EDI.ASTM.Document extends %Library.Persistent, EnsLib.EDI.Document, EnsLib.EDI.Segmented, EnsLib.EDI.ASTM.MsgBodyMethods

SQL Table Name: EnsLib_EDI_ASTM.Document

Represents an Interchange or a TransactionSet. FunctionalGroups are represented as Segments within an Interchange.

Property Inventory

Method Inventory

Parameters

parameter DEFSEARCHCLASS = EnsLib.EDI.ASTM.SearchTable;
Name of the default SearchTable indexing class used in UI choices and MessageBank submissions
parameter DOCCLASSFULLNAME = ASC ASTM EDI Document;
Inherited description: Full descriptive name for this subclass of document
parameter DOCCLASSNAME = ASTM Document;
Inherited description: Compact descriptive name for this subclass of document
parameter DOCSHORTNAME = ASTM;
parameter DOMAIN = Ensemble;
Use our own domain for localization
parameter EXTENTSIZE = 2000000;
Inherited description: The EXTENTSIZE parameter is used to inform the SQL Query Optimizer of the approximate number of instances in the extent containing instances of this class.

For example, a class that expects to have about 1,000,000 instances should define:

parameter EXTENTSIZE = 1000000;
parameter SCHEMACLASS = EnsLib.EDI.ASTM.Schema:DS;
Name of the associated schema class and, after a colon, the schema class code that represents a DocType

Properties

property %maps [ MultiDimensional , Transient ];
A local array of orefs "orefs" - a local map of integer ids to segment objects And either a subscript into ^IRIS.Temp for this object's LVD maps (for notes on LVD implementation see EnsEDI.inc) or local storage for these additional maps: "runtimeIndex" - array for runtime index to segment; will always be defined unless mapRuntimePath is defined "runtimePath" - array for runtime path to segment "bidirectionalLink" - array for runtime path and index linkage
Property methods: %mapsDisplayToLogical(), %mapsGet(), %mapsIsValid(), %mapsLogicalToDisplay(), %mapsLogicalToOdbc(), %mapsNormalize(), %mapsSet()
property ComponentSeparator as %String [ Calculated , Transient ];
Sub-element component separator character
Property methods: ComponentSeparatorDisplayToLogical(), ComponentSeparatorGet(), ComponentSeparatorIsValid(), ComponentSeparatorLogicalToDisplay(), ComponentSeparatorLogicalToOdbc(), ComponentSeparatorNormalize()
property DocTypeCategory as %String [ Transient , ReadOnly ];
the category portion of the DocType
Property methods: DocTypeCategoryDisplayToLogical(), DocTypeCategoryGet(), DocTypeCategoryIsValid(), DocTypeCategoryLogicalToDisplay(), DocTypeCategoryLogicalToOdbc(), DocTypeCategoryNormalize(), DocTypeCategorySet()
property DocTypeName as %String [ Transient , ReadOnly ];
Stored raw document type name ; the secondary type name portion of the DocType
Property methods: DocTypeNameDisplayToLogical(), DocTypeNameGet(), DocTypeNameIsValid(), DocTypeNameLogicalToDisplay(), DocTypeNameLogicalToOdbc(), DocTypeNameNormalize()
property Envelope as %String);
'Envelope' information for the ASTM document message. Used in propagating info about the return Service address for reply documents
Property methods: EnvelopeDisplayToLogical(), EnvelopeGet(), EnvelopeGetStored(), EnvelopeIsValid(), EnvelopeLogicalToDisplay(), EnvelopeLogicalToOdbc(), EnvelopeNormalize(), EnvelopeSet()
property EscapeSeparator as %String [ Calculated , Transient ];
Escape separator character
Property methods: EscapeSeparatorDisplayToLogical(), EscapeSeparatorGet(), EscapeSeparatorIsValid(), EscapeSeparatorLogicalToDisplay(), EscapeSeparatorLogicalToOdbc(), EscapeSeparatorNormalize()
property FieldSeparator as %String [ Calculated , Transient ];
Data-field separator character
Property methods: FieldSeparatorDisplayToLogical(), FieldSeparatorGet(), FieldSeparatorIsValid(), FieldSeparatorLogicalToDisplay(), FieldSeparatorLogicalToOdbc(), FieldSeparatorNormalize()
property FullSize as %Integer [ Calculated , Transient , ReadOnly ];
Size in bytes of the message content (assuming 1-byte segment terminators, including segments >32k)
Property methods: FullSizeDisplayToLogical(), FullSizeGet(), FullSizeIsValid(), FullSizeLogicalToDisplay(), FullSizeNormalize()
property Identifier as %String [ Calculated , Transient , ReadOnly ];
Unique document identification string found in document content
Property methods: IdentifierCompute(), IdentifierDisplayToLogical(), IdentifierGet(), IdentifierIsValid(), IdentifierLogicalToDisplay(), IdentifierLogicalToOdbc(), IdentifierNormalize(), IdentifierSQLCompute()
property Name as %String [ Calculated , Transient , ReadOnly ];
Raw type name of document
Property methods: NameCompute(), NameDisplayToLogical(), NameGet(), NameIsValid(), NameLogicalToDisplay(), NameLogicalToOdbc(), NameNormalize(), NameSQLCompute()
property RawContent as %String (MAXLEN = 10000) [ Calculated , Transient , ReadOnly ];
The raw text content of the document. Note that this is a truncated version suitable for use in SQL results and visual inspection, but not a complete or definitive representation of the document.
Property methods: RawContentCompute(), RawContentDisplayToLogical(), RawContentGet(), RawContentIsValid(), RawContentLogicalToDisplay(), RawContentLogicalToOdbc(), RawContentNormalize(), RawContentSQLCompute()
property RepetitionSeparator as %String [ Calculated , Transient ];
Repetition separator character
Property methods: RepetitionSeparatorDisplayToLogical(), RepetitionSeparatorGet(), RepetitionSeparatorIsValid(), RepetitionSeparatorLogicalToDisplay(), RepetitionSeparatorLogicalToOdbc(), RepetitionSeparatorNormalize()
property SegCount as %Integer [ Calculated , Transient , ReadOnly ];
Count of segments composing this document
Property methods: SegCountCompute(), SegCountDisplayToLogical(), SegCountGet(), SegCountIsValid(), SegCountLogicalToDisplay(), SegCountNormalize(), SegCountSQLCompute()
property Separators as %String (MAXLEN = 4, MINLEN = 4) [ Transient ];
All 4 Separators as a String,FLDSEP_REPSEP_COMSEP_ESCSEP
Property methods: SeparatorsDisplayToLogical(), SeparatorsGet(), SeparatorsIsValid(), SeparatorsLogicalToDisplay(), SeparatorsLogicalToOdbc(), SeparatorsNormalize(), SeparatorsSet()
property TypeVersion as %String [ Calculated , Transient , ReadOnly ];
Raw type version name of message found at H:13 in message content
Property methods: TypeVersionCompute(), TypeVersionDisplayToLogical(), TypeVersionGet(), TypeVersionIsValid(), TypeVersionLogicalToDisplay(), TypeVersionLogicalToOdbc(), TypeVersionNormalize(), TypeVersionSQLCompute()

Methods

method BuildMap(pKeepParsingAfterError As %Library.Boolean = 1, pReportMissingLoopAsFirstSeg As %Library.Boolean = 0) as %Status [ Language = objectscript ]
pKeepParsingAfterError means keep trying to parse after errors are encountered; returned Status will contain all errors encountered
method Clear() as %Status [ Language = objectscript ]
Delete All Content and reset all properties
method ComponentSeparatorGet() as %String [ Language = objectscript ]
method CopyValues(pSource As EnsLib.EDI.ASTM.Document, pSourcePath As %String, pTargetPath As %String, pAction As %String, pKey As %String, pEmptyFieldAsNull As %Boolean = 0, pIgnoreMissingSource As %Boolean = 0) as %Status [ Language = objectscript ]
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, pBuildMap As %Boolean = 1) as %Status [ Language = objectscript ]
method DumpMaps() as %Status [ Language = objectscript ]
classmethod EnumerateDocTypesClose(ByRef qHandle As %Binary) as %Status [ Language = objectscript ]
classmethod EnumerateDocTypesExecute(ByRef qHandle As %Binary, Category As %String = "", IncludeBase As %Boolean) as %Status [ Language = objectscript ]
classmethod EnumerateDocTypesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status [ Language = objectscript ]
classmethod EnumerateSegTypesClose(ByRef qHandle As %Binary) as %Status [ Language = objectscript ]
classmethod EnumerateSegTypesExecute(ByRef qHandle As %Binary, Category As %String, Level As %String, IncludeBase As %Boolean) as %Status [ Language = objectscript ]
classmethod EnumerateSegTypesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status [ Language = objectscript ]
classmethod EnumerateTypeCategoriesClose(ByRef qHandle As %Binary) as %Status [ Language = objectscript ]
classmethod EnumerateTypeCategoriesExecute(ByRef qHandle As %Binary, Standard As %String = "") as %Status [ Language = objectscript ]
classmethod EnumerateTypeCategoriesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer) as %Status [ Language = objectscript ]
method EscapeSeparatorGet() as %String [ Language = objectscript ]
method FieldSeparatorGet() as %String [ Language = objectscript ]
method FindSegment(pSegName As %String, ByRef pIndex As %String = "", Output pStatus As %Status) as EnsLib.EDI.ASTM.Segment [ Language = objectscript ]
Gets the next segment after index pIndex with name pSegName. Supports pSegName = '*' to match any segment.
method FullSizeGet() as %Integer [ Language = objectscript ]
classmethod GetAlias(pContentArrayName As %String, pArrayPos As %String) as %String [ Language = objectscript ]
This method computes the Alias string for a property name, given the property's node in the Content Array.
classmethod GetContentArray(Output pContents, pMode As %String, pDocType As %String, pLevel As %Integer, pIncludeBase As %Boolean) as %Status [ Language = objectscript ]
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.
classmethod GetFullSize(pMsgId) as %Integer [ Language = objectscript ]
Returns an array of links to manager pages for this type of VDoc; item 0 is the family description
method GetNextGroupPath(pGroup As %String, pPath As %String, ByRef pStatus As %Status = $$$OK) as %String [ Language = objectscript ]
Gets the next path in a group
method GetNextIndex(pPath As %String, pIndex As %String, ByRef pStatus As %Status = $$$OK) as %String [ Language = objectscript ]
Gets the next index in an array
method GetSegmentIndex(pPath As %String, Output pStatus As %Status) as %Integer [ Language = objectscript ]
Given a segment path, find the corresponding segment index
method GetSegmentPath(pIndex As %Integer, Output pStatus As %Status) as %String [ Language = objectscript ]
Given a segment index, find the corresponding segment path
method GetValueAt(pSegmentPropertyPath As %String, pSeparators As %String, Output pStatus As %Status, pTreatEmptyAsNull As %Boolean = 0) as %String [ Language = objectscript ]
Inherited description: Return the value of the designated virtual property.
pPropertyPath contains a text expression representing the address within the document of the value of interest.
pFormat contains additional context that may be used to influence the form of the result value
If no value can be found matching pPropertyPath in the current document an empty string is returned and output argument pStatus returns status information explaining the failure
pTreatEmptyFieldAsNull indicates whether repeating fields which have a separator but are empty should be considered to have a count of 1 (if false) or 0 (if true) This is implemented by the document subclass.
method IdentifierGet() as %String [ Language = objectscript ]
classmethod ImportFromDevice(Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.EDI.ASTM.Document [ Language = objectscript ]
classmethod ImportFromFile(pFilename As %String, pDocNum As %Integer = 1, Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.EDI.ASTM.Document [ Language = objectscript ]
classmethod ImportFromIOStream(pIOStream As %IO.I.CharacterStream, Output pStatus As %Status = $$$OK, ByRef pConfigItem As %String = "", pIOFormatClassname As %String = "") as EnsLib.EDI.ASTM.Document [ Language = objectscript ]
classmethod ImportFromLibraryStream(pLibStream As %Stream.Object, Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.EDI.ASTM.Document [ Language = objectscript ]
classmethod ImportFromString(pString As %String, Output pStatus As %Status, ByRef pConfigItem As %String, pIOFormatClassname As %String) as EnsLib.EDI.ASTM.Document [ Language = objectscript ]
classmethod KillGlobals(Output pDeletedCount, pKeepExtentCount=0, pDisplayLog=1) [ Language = objectscript ]
method NameGet() as %String [ Language = objectscript ]
method NewReplyDocument(pDocType As %String = "", pLocalApplicationID As %String, Output pSC As %Status) as EnsLib.EDI.ASTM.Document [ Language = objectscript ]
method OutputHTML() as %Status [ Language = objectscript ]
Display Segments as HTML, using DocType info if available
method OutputHTMLZen() as %Status [ Language = objectscript ]
Display Segments as HTML, using DocType info if available
method OutputToDevice(pSeparators As %String, pDoFraming As %Integer, pResponseTimeout As %Numeric = -1, pIOFormatClassname As %String) as %Status [ Language = objectscript ]
method OutputToFile(pFilename As %String, pOverwrite As %Boolean, pSeparators As %String, pDoFraming As %Integer, pResponseTimeout As %Numeric = -1, pIOFormatClassname As %String) as %Status [ Language = objectscript ]
method OutputToIOStream(pIOStream As %IO.I.CharacterStream, pSeparators As %String, ByRef pDoFraming As %Integer = 0, pResponseTimeout As %Numeric = -1, pIOFormatClassname As %String = "") as %Status [ Language = objectscript ]
method OutputToLibraryStream(pLibStream As %Stream.Object, pSeparators As %String, pDoFraming As %Integer, pResponseTimeout As %Numeric = -1, pIOFormatClassname As %String) as %Status [ Language = objectscript ]
method OutputToString(pSeparators As %String, pDoFraming As %Integer, pResponseTimeout As %Numeric = -1, Output pStatus As %Status, pIOFormatClassname As %String) as %String [ Language = objectscript ]
method PokeDocType(pDocType As %String) as %Status [ Language = objectscript ]
classmethod Purge(Output pDeletedCount As %Integer, pDaysToKeep As %Integer = 7, pDummy As %Boolean = 0) as %Status [ Language = objectscript ]
method RawContentGet() as %String [ Language = objectscript ]
method RepetitionSeparatorGet() as %String [ Language = objectscript ]
method SegCountGet() as %Integer [ Language = objectscript ]
method SetValueAt(pValue As %String, pSegmentPropertyPath As %String, pAction As %String = "set", pKey As %String = "") as %Status [ Language = objectscript ]
Inherited description: Set the value of the designated virtual property.
pValue contains the value to set.
pPropertyPath contains a text expression representing the address within the document of the value of interest.
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.
pAction contains an action code: "set", "clear", "append", etc.
classmethod TotalCount() as %Integer [ Language = objectscript ]
method TypeVersionGet() as %String [ Language = objectscript ]
Inherited description: Subclasses should override this if the version can be gotten from the document content
method buildRuntimePathFromIndex(pId As %String, pPath As %String, pContentArray As %String, pType As %String, ByRef pCurrSeg As %Integer, pParentGrpOpt As %Boolean, pSC As %Status, pKeepParsingAfterError As %Boolean) as %Status [ Language = objectscript ]
Build a segment map for the current segment index array based on the document schema
If pKeepParsingAfterError is false then stop parsing when first error is encountered
classmethod checkDocType(ByRef pDocType As %String) as %Status [ Language = objectscript ]
method commitCollectionOpenSegments(pCollectionPath As %String) as %Status [ Language = objectscript ]
collapse segment objects within the collectionPath into just Id; Save if necessary
method commitSegmentByIndex(pIndex As %Integer) as %Status [ Language = objectscript ]
collapse segment object into just ID; Save if necessary
method commitSegmentByPath(pPath As %String) as %Status [ Language = objectscript ]
collapse segment object into just Id; Save if necessary
method convertRuntimePathToSchemaPath(pPath As %String) as %String [ Language = objectscript ]
method getId() as %String [ Language = objectscript ]
The same as %Id(), but allocates the Id even if the object hasn't been saved already
method getSegmentIdByIndex(pIndex As %Integer, Output pStatus As %Status) as %String [ Language = objectscript ]
method getSegmentIdByPath(pPath As %String, Output pStatus As %Status) as %String [ Language = objectscript ]
classmethod getSegsAsString(pId As %String, pMaxLen As %Integer = 10000, pStartOffset As %Integer = 1) as %String [ Language = objectscript ]
This method is for use from the RawContent property's SQL Compute invocation

Queries

query EnumerateDocTypes(Category As %String = "", IncludeBase As %Boolean = 1)
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
query EnumerateSegTypes(Category As %String = "", Level As %String = "")
Selects SegType As %String, Field As %String, Description As %String, IsStandard As %Boolean
Returns a list of schema categories and segment types and segment fields for this document class.
The Category and Level parameters can be used to restrict the list.
If Category is:
0 - return only standard categories
+ - return only user-defined categories
empty - return all categories
a category name - return only SegTypes in the named category
a category name:segment type name - return only information about the named SegType
a partial name suffixed with '%' - return only SegTypes in categories matching the partial category name
other - return nothing
If Level is:
0 - return all segment names
n - return the given number of levels of nested field names within each segment
empty - return all levels of nested field names within each segment
If IncludeBase is:
0 - return only segment names defined in the current schema category itself
1 - return all segment names in the current schema category's base category in addition to those defined in the current category itself
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

Indexes

index (OriginalDocId on OriginalDocId);
Index methods: OriginalDocIdDisplayToLogical(), OriginalDocIdExists(), OriginalDocIdGet(), OriginalDocIdGetStored(), OriginalDocIdIsValid(), OriginalDocIdLogicalToDisplay(), OriginalDocIdLogicalToOdbc(), OriginalDocIdNormalize(), OriginalDocIdSet()

Triggers

trigger OnDelete (BEFORE event DELETE);

Inherited Members

Inherited Properties

Inherited Methods

Storage

Storage Model: Storage (EnsLib.EDI.ASTM.Document)

^EnsLib.EDI.ASTM.DocumentD(ID,"Attachments",n)
=
Attachments(n)

Storage Model: Storage (EnsLib.EDI.ASTM.Document)

^EnsLib.EDI.ASTM.DocumentD(ID)
=
%%CLASSNAME
ParentId
DocType
IsMutable
TimeCreated
Source
OriginalDocId
Envelope

Storage Model: Storage (EnsLib.EDI.ASTM.Document)

^EnsLib.EDI.ASTM.DocumentD(ID,"UserValues",n)
=
UserValues(n)
FeedbackOpens in a new window