Top Method Summary
Options Name Purpose
AnalyzeElement (handle, character) Recursively analyzes an element instance of the XML document
AssignTableLayout () Assigns the layout width of the derived temp-tables based on the length of their longest field name
CHARACTER BuildUniqueEntityName (character, character) Returns a unique entity name for a derived temp-table
CHARACTER BuildUniqueFieldName (character, character) Returns a unique field name for the given temp-table
CHARACTER ClassifyDateTimeValue (character) Classifies a value as an ABL date or datetime data type
CHARACTER ClassifyNumericValue (character) Classifies a value as an ABL numeric data type
ComputeValueOwnership () Assigns the owning table and the relative path segments to every registered value
CreateDataFields (XmlDocumentImporterParameter) Creates the eField records for the registered values
CreateDataset (handle) Creates a dynamic ProDataset from the design derived by the previous ImportTempTables call of this instance
Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentReaderWriter CreateReaderWriter () Creates an XmlDocumentReaderWriter registered with the mappings of the design derived by the previous ImportTempTables call of this instance
Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentReaderWriter CreateReaderWriter (character, character) Creates an XmlDocumentReaderWriter registered with the mappings of the design derived by the previous ImportTempTables call of this instance, applying renames the tables received while being merged into a design
DeleteDataset (handle) Deletes a dynamic ProDataset created by the CreateDataset method together with its dynamic temp-tables
DeriveTables (XmlDocumentImporterParameter) Derives the temp-tables from the analyzed element structure
CHARACTER DetermineValueType (character) Returns the ABL data type inferred from a single value
ExtractTableDataset (handle, character, dataset) Copies a single temp-table (the eTable record together with its eField and eIndex records) from the given dsBusinessEntity dataset instance into the output dataset
GenerateReaderWriterClassSource (character, character, character, longchar) Generates the source code of an XML Reader/Writer class for the design derived by the previous ImportTempTables call of this instance
CHARACTER GetOwningTablePath (character) Returns the path of the nearest ancestor (or self) element that is derived as a table
ImportDocument (handle, XmlDocumentImporterParameter) Derives the temp-table design from the given XML document
ImportTempTables (character, XmlDocumentImporterParameter, dataset) Creates eTable and related records based on the structure of the given XML document file
ImportTempTablesFromLongchar (longchar, XmlDocumentImporterParameter, dataset) Creates eTable and related records based on the structure of the given XML document
LOGICAL IsDigits (character) Returns TRUE when the given value consists of digits only
LoadDocumentData (character, handle) Loads the data of the given XML document file into a dataset created from the design derived by the previous ImportTempTables call of this instance
CHARACTER MapTableName (character, character, character) Maps a derived temp-table name to the name the table received while being merged into a design
RegisterAttributes (handle, character) Registers the attributes of an element instance as values of the XML document
RegisterValue (character, character, character, logical, character, character) Registers a value occurrence of a leaf element or an attribute and widens the inferred ABL data type of the value path
CHARACTER SanitizeName (character) Returns a variant of the given XML name that is usable as an ABL identifier
StripCommonLeadingSegments () Removes leading path segments shared by all fields of a table from the relative segments of the table's values
CHARACTER WidenDataType (character, character) Widens the inferred ABL data type of a value path with the data type of a further value occurrence


Method Detail
Top

AnalyzeElement (handle, character)

Purpose: Recursively analyzes an element instance of the XML document
Notes: Registers the element path, detects elements repeating within
a single parent element instance and registers the values of
leaf elements and attributes for data type inference

Parameters:
phNode HANDLE
The handle of the X-NODEREF of the element to analyze
pcParentPath CHARACTER
The path of the parent element
Top

AssignTableLayout ()

Purpose: Assigns the layout width of the derived temp-tables based on
the length of their longest field name
Notes: The TempTableShape on the design canvas renders the tables
with this width, so tables with long path-composed field names
get a wider shape and the field names stay readable

Top

CHARACTER BuildUniqueEntityName (character, character)

Purpose: Returns a unique entity name for a derived temp-table
Notes: Truncates the name so that the temp-table name (prefix plus
entity name) and its before-table name (suffix "Before") stay
within the 32 character identifier limit and appends a
numeric suffix when the resulting temp-table name is already
used by another derived table

Parameters:
pcEntityName CHARACTER
The sanitized name of the XML element
pcTablePrefix CHARACTER
The prefix applied to the derived temp-table names
Returns CHARACTER
The unique entity name
Top

CHARACTER BuildUniqueFieldName (character, character)

Purpose: Returns a unique field name for the given temp-table
Notes: Appends a suffix when the name is an ABL reserved keyword and
a numeric suffix when the name is already used by another
field of the table, keeping the name within the 32 character
identifier limit

Parameters:
pcTempTableName CHARACTER
The name of the temp-table the field belongs to
pcFieldName CHARACTER
The proposed field name
Returns CHARACTER
The unique field name
Top

CHARACTER ClassifyDateTimeValue (character)

Purpose: Classifies a value as an ABL date or datetime data type
Notes: Supports the ISO 8601 formats YYYY-MM-DD,
YYYY-MM-DDTHH:MM:SS[.fff] MM:SS[.fff] and the timezone suffixes Z and
+/-HH:MM MM

Parameters:
pcValue CHARACTER
The trimmed value to classify
Returns CHARACTER
DATE, DATETIME or DATETIME-TZ - or empty when the value is not a date
Top

CHARACTER ClassifyNumericValue (character)

Purpose: Classifies a value as an ABL numeric data type
Notes: Values with leading zeroes (e.g. 007) are treated as
identifiers, not as numbers. The decimal separator is expected
as a period, independent of the session numeric format

Parameters:
pcValue CHARACTER
The trimmed value to classify
Returns CHARACTER
INTEGER, INT64 or DECIMAL - or empty when the value is not numeric
Top

ComputeValueOwnership ()

Purpose: Assigns the owning table and the relative path segments to
every registered value
Notes: The owning table is the nearest ancestor (or self) element
that is derived as a table. The text content of elements with
child elements (mixed content) is not imported. In nested mode
the owning table is always the element itself or its direct
parent, so the relative path is a single segment

Top

CreateDataFields (XmlDocumentImporterParameter)

Purpose: Creates the eField records for the registered values
Notes: The field name is composed from the relative path segments
below the owning table. Names exceeding the 32 character
identifier limit lose their leading segments first and are
right-truncated only as a last resort. Data fields start out
with the unknown value, so absent optional elements are
omitted by WRITE-XML. The text value of a table element is
created as a TEXT node field, attributes as ATTRIBUTE node
fields

Parameters:
poParameter Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentImporterParameter
The XmlDocumentImporterParameter with the settings for the import
Top

CreateDataset (handle)

Purpose: Creates a dynamic ProDataset from the design derived by the
previous ImportTempTables call of this instance
Notes: The dataset root node is the derived DatasetName, the row
elements are the XML element names of the tables and the
data-relations are created as derived (typically nested with
hidden foreign keys). The caller is responsible for deleting
the dataset and its temp-tables - use the DeleteDataset method

Parameters:
phDataset HANDLE
OUTPUT The handle of the created ProDataset
Top

Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentReaderWriter CreateReaderWriter ()

Purpose: Creates an XmlDocumentReaderWriter registered with the
mappings of the design derived by the previous
ImportTempTables call of this instance
Notes: The reader/writer reads documents of the imported shape into a
dataset of the derived design and writes the dataset back
into the original document shape

Returns Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentReaderWriter
The configured XmlDocumentReaderWriter
Top

Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentReaderWriter CreateReaderWriter (character, character)

Purpose: Creates an XmlDocumentReaderWriter registered with the
mappings of the design derived by the previous
ImportTempTables call of this instance, applying renames the
tables received while being merged into a design
Notes: The reader/writer reads documents of the imported shape into a
dataset of the derived design and writes the dataset back
into the original document shape

Parameters:
pcOriginalTableNames CHARACTER
The comma-delimited list of the derived temp-table names (empty when no renames apply)
pcRenamedTableNames CHARACTER
The comma-delimited list of the temp-table names in the design
Returns Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentReaderWriter
The configured XmlDocumentReaderWriter
Top

DeleteDataset (handle)

Purpose: Deletes a dynamic ProDataset created by the CreateDataset
method together with its dynamic temp-tables
Notes:

Parameters:
phDataset HANDLE
The handle of the ProDataset to delete
Top

DeriveTables (XmlDocumentImporterParameter)

Purpose: Derives the temp-tables from the analyzed element structure
Notes: In nested mode every group element, repeating element and leaf
element with attributes becomes a temp-table and a root
element that only wraps group elements maps to the dataset
itself. In flattened mode only the root element and repeating
elements become temp-tables. Every table receives an integer
surrogate key field with a unique primary index; child tables
additionally receive the key field of their parent table, an
index on it and a nested data-relation hiding the foreign key

Parameters:
poParameter Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentImporterParameter
The XmlDocumentImporterParameter with the settings for the import
Top

CHARACTER DetermineValueType (character)

Purpose: Returns the ABL data type inferred from a single value
Notes: Returns an empty character value for empty values (no type
information)

Parameters:
pcValue CHARACTER
The value to classify
Returns CHARACTER
The ABL data type (CHARACTER, LOGICAL, INTEGER, INT64, DECIMAL, DATE, DATETIME, DATETIME-TZ) or empty
Top

ExtractTableDataset (handle, character, dataset)

Purpose: Copies a single temp-table (the eTable record together with its
eField and eIndex records) from the given dsBusinessEntity
dataset instance into the output dataset
Notes: Supports merging the tables of a multi-table import result one
by one into a design through the CreateTempTable method of the
BusinessEntityDatasetController, which processes a single table
per invocation

Parameters:
phDataset HANDLE
The handle of a dsBusinessEntity dataset instance containing the import result
pcTableName CHARACTER
The name of the temp-table to copy
dsBusinessEntity DATASET dsBusinessEntity
Output dataset containing only the given temp-table
Top

GenerateReaderWriterClassSource (character, character, character, longchar)

Purpose: Generates the source code of an XML Reader/Writer class for
the design derived by the previous ImportTempTables call of
this instance
Notes: The generated class inherits XmlDocumentReaderWriter and
registers the mappings of the derived design in its
constructor, so applications can read documents of the
imported shape into the (typically flattened) dataset and
write the dataset back into the original document shape

Parameters:
pcClassName CHARACTER
The fully qualified name of the class to generate
pcOriginalTableNames CHARACTER
The comma-delimited list of the derived temp-table names (empty when no renames apply)
pcRenamedTableNames CHARACTER
The comma-delimited list of the temp-table names in the design
plcSource LONGCHAR
OUTPUT The generated class source
Top

CHARACTER GetOwningTablePath (character)

Purpose: Returns the path of the nearest ancestor (or self) element that
is derived as a table
Notes: Returns an empty character value when no table is found in the
ancestor chain (e.g. above the top-level tables when the root
element maps to the dataset)

Parameters:
pcPath CHARACTER
The element path to start the search at
Returns CHARACTER
The path of the owning table element
Top

ImportDocument (handle, XmlDocumentImporterParameter)

Purpose: Derives the temp-table design from the given XML document
Notes: Fills the dsBusinessEntity dataset of this class instance

Parameters:
phDocument HANDLE
The handle of the X-DOCUMENT to import
poParameter Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentImporterParameter
The XmlDocumentImporterParameter with the settings for the import
Top

ImportTempTables (character, XmlDocumentImporterParameter, dataset)

Purpose: Creates eTable and related records based on the structure of
the given XML document file
Notes: The output dataset contains one eTable record per derived
temp-table together with the eField, eIndex and eDataRelation
records describing the derived design and an eBusinessEntity
record carrying the derived DatasetName

Parameters:
pcFileName CHARACTER
The name of the XML document file to import
poParameter Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentImporterParameter
The XmlDocumentImporterParameter with the settings for the import
dsBusinessEntity DATASET dsBusinessEntity
Output dataset containing the derived design
Top

ImportTempTablesFromLongchar (longchar, XmlDocumentImporterParameter, dataset)

Purpose: Creates eTable and related records based on the structure of
the given XML document
Notes: The output dataset contains one eTable record per derived
temp-table together with the eField, eIndex and eDataRelation
records describing the derived design and an eBusinessEntity
record carrying the derived DatasetName

Parameters:
plcXmlDocument LONGCHAR
The XML document to import
poParameter Consultingwerk.BusinessEntityDesigner.Services.XmlDocumentImporterParameter
The XmlDocumentImporterParameter with the settings for the import
dsBusinessEntity DATASET dsBusinessEntity
Output dataset containing the derived design
Top

LOGICAL IsDigits (character)

Purpose: Returns TRUE when the given value consists of digits only
Notes: Returns FALSE for an empty value

Parameters:
pcValue CHARACTER
The value to check
Returns LOGICAL
Logical value indicating if the value consists of digits only
Top

LoadDocumentData (character, handle)

Purpose: Loads the data of the given XML document file into a dataset
created from the design derived by the previous
ImportTempTables call of this instance
Notes: Delegates to an XmlDocumentReaderWriter created from the
import result. Creates one record per table element instance,
assigns the surrogate key fields and converts the values into
the inferred ABL data types. Fields of absent optional
elements keep the unknown value, so WRITE-XML omits them

Parameters:
pcFileName CHARACTER
The name of the XML document file to load
phDataset HANDLE
The handle of a ProDataset created by the CreateDataset method
Top

CHARACTER MapTableName (character, character, character)

Purpose: Maps a derived temp-table name to the name the table received
while being merged into a design
Notes: Returns the name unchanged when no rename lists are given or
the table is not part of them

Parameters:
pcTableName CHARACTER
The derived temp-table name
pcOriginalTableNames CHARACTER
The comma-delimited list of the derived temp-table names
pcRenamedTableNames CHARACTER
The comma-delimited list of the temp-table names in the design
Returns CHARACTER
The mapped temp-table name
Top

RegisterAttributes (handle, character)

Purpose: Registers the attributes of an element instance as values of
the XML document
Notes: Namespace declarations (xmlns) are ignored

Parameters:
phNode HANDLE
The handle of the X-NODEREF of the element
pcElementPath CHARACTER
The path of the element
Top

RegisterValue (character, character, character, logical, character, character)

Purpose: Registers a value occurrence of a leaf element or an attribute
and widens the inferred ABL data type of the value path
Notes:

Parameters:
pcValuePath CHARACTER
The unique path of the value (attribute paths end in /@<name>)
pcElementPath CHARACTER
The path of the element carrying the value
pcValueName CHARACTER
The local name of the leaf element or attribute
plIsAttribute LOGICAL
Logical value indicating if the value is an attribute
pcValue CHARACTER
The value of this occurrence
pcForcedDataType CHARACTER
Optional ABL data type overriding the type detection (e.g. CLOB), empty when not used
Top

CHARACTER SanitizeName (character)

Purpose: Returns a variant of the given XML name that is usable as an
ABL identifier
Notes: Characters that are not letters or digits are removed and the
following character is capitalized (e.g. order-id becomes
OrderId). A name starting with a digit is prefixed with X

Parameters:
pcName CHARACTER
The XML element or attribute name
Returns CHARACTER
The sanitized name
Top

StripCommonLeadingSegments ()

Purpose: Removes leading path segments shared by all fields of a table
from the relative segments of the table's values
Notes: Keeps the composed field names short when the document nests
the actual data in wrapper elements (e.g. the ISO 20022
Document/BkToCstmrStmt envelope). Stripping stops as soon as
any field of the table has only one segment left or the first
segments differ. In nested mode all relative paths are single
segments, so nothing is stripped

Top

CHARACTER WidenDataType (character, character)

Purpose: Widens the inferred ABL data type of a value path with the
data type of a further value occurrence
Notes: Compatible numeric types widen to INT64 or DECIMAL, dates to
DATETIME or DATETIME-TZ; incompatible combinations widen to
CHARACTER. CLOB always wins as it indicates values beyond the
32k character limit

Parameters:
pcCurrentType CHARACTER
The data type inferred so far (may be empty)
pcNewType CHARACTER
The data type of the further value occurrence (may be empty)
Returns CHARACTER
The widened ABL data type


ProDataset Detail

ProDataset dsBusinessEntity

Member tables: eBusinessEntity, eDataRelation, eDataRelationProperties, eTable, eField, eFieldProperties, eIndex, eIndexProperties, eTableProperties, eBusinessEntityProperties


Temp-Table Detail

Temp-Table eBusinessEntity

Defined in:

Temp-Table eBusinessEntityProperties

Defined in:

Temp-Table eDataRelation

Defined in:

Temp-Table eDataRelationProperties

Defined in:

Temp-Table eField

Defined in:

Temp-Table eFieldProperties

Defined in:

Temp-Table eIndex

Defined in:

Temp-Table eIndexProperties

Defined in:

Temp-Table eTable

Defined in:

Temp-Table eTableProperties

Defined in:


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:06:35