Top Method Summary
Options Name Purpose
CHARACTER CanonicalListValue (character, character) Returns the value in the casing of the list entry Notes : ABL compares case-insensitive, the stored value should be the canonical one @param pcValue The value @param pcList The comma-delimited list of the valid values @return The list entry matching the value, or the value itself when it is not in the list */
Progress.Json.ObjectModel.JsonObject CreateSmartRelation (character, character, character, character, character, character, character, character, character, character, logical, logical) Creates a SmartRelation record including the referential integrity rule Notes : The parent and child table are resolved from their qualified Database.Table names; the validation of the RelationBusinessEntity applies. A relation with the same parent table, child table and relation name must not exist yet, as that triple identifies the relation in the MCP interface @param pcParentTable The qualified name (Database.Table) of the parent table @param pcChildTable The qualified name (Database.Table) of the child table @param pcRelationName The name of the relation @param pcRelationDescription The description of the relation @param pcRelationFieldPair The comma-delimited field pairs (parent field, child field, ...) @param pcParentRoleDescription The description of the role of the parent table @param pcChildRoleDescription The description of the role of the child table @param pcParentCardinality The cardinality of the parent table (1, 01, 01n, 1n), defaults to 1 @param pcChildCardinality The cardinality of the child table (1, 01, 01n, 1n), defaults to 01n @param pcOnParentDelete The referential integrity rule (DoNothing, Cascade, Nullify, SetDefault, Restrict) @param plDefaultParentRelation Logical value indicating if this is the default parent relation of the child table @param plInactive Logical value indicating if the relation is inactive @return JsonObject with the created SmartRelation record */
Progress.Json.ObjectModel.JsonObject DeleteSmartRelation (character, character, character) Deletes a SmartRelation record Notes : The relation is identified by parent table, child table and relation name @param pcParentTable The qualified name (Database.Table) of the parent table @param pcChildTable The qualified name (Database.Table) of the child table @param pcRelationName The name of the relation @return JsonObject describing the deleted relation */
Consultingwerk.SmartFramework.System.RelationDatasetModel FillRelations (character, character, character) Returns a RelationDatasetModel filled with the SmartRelation records matching the parent table, child table and relation name Notes : The caller deletes the model @param pcParentTable The qualified name of the parent table @param pcChildTable The qualified name of the child table @param pcRelationName The name of the relation @return The RelationDatasetModel positioned on the first matching record (or not available) */
Consultingwerk.SmartFramework.System.RelationDatasetModel FindRelation (character, character, character) Returns a RelationDatasetModel positioned on the single SmartRelation record identified by parent table, child table and relation name Notes : Throws a NotFoundException when no relation matches and an Exception listing the candidates when the triple matches more than one record. The caller deletes the model @param pcParentTable The qualified name of the parent table @param pcChildTable The qualified name of the child table @param pcRelationName The name of the relation @return The RelationDatasetModel positioned on the SmartRelation record */
Consultingwerk.SmartFramework.System.TableDatasetModel FindSmartTable (character) Returns a TableDatasetModel positioned on the SmartTable record of the given table Notes : A qualified Database.Table name is resolved through the unique DatabaseTable index. An unqualified table name is accepted when exactly one SmartTable record carries that table name. Throws a NotFoundException when the table is not registered. The caller deletes the model @param pcTableName The qualified (or unqualified) name of the database table @return The TableDatasetModel positioned on the SmartTable record */
CHARACTER GetQualifiedTableName (TableDatasetModel) Returns the qualified Database.Table name of the SmartTable record the model is positioned on Notes : @param poTableDatasetModel The TableDatasetModel positioned on the SmartTable record @return The qualified table name */
Progress.Json.ObjectModel.JsonObject GetSmartTableResponse (TableDatasetModel) Returns the response object for a SmartTable record: the identity of the table and the SmartTable registration Notes : @param poTableDatasetModel The TableDatasetModel positioned on the SmartTable record @return The JsonObject describing the SmartTable record */
Progress.Json.ObjectModel.JsonObject ImportDatabaseTables (character, character) Registers database tables of a connected database in the SmartFramework table maintenance (SmartTable) Notes : Tables that are already registered are reported and left untouched. The import reuses TableBusinessEntity:ImportDatabaseTables, restricted to the named tables @param pcDatabaseName The logical database name @param pcTableNames The comma-delimited list of the tables to register @return JsonObject with the created SmartTable records and the names of the tables that were already registered */
CHARACTER NormalizeTableNames (character, character) Trims the entries of the comma-delimited table name list and verifies that every table exists in the database Notes : Throws a NotFoundException for a table that does not exist @param pcDatabaseName The logical database name @param pcTableNames The comma-delimited list of table names @return The normalized comma-delimited list of table names */
RefreshRelationCache () Refreshes the relation cache of the IRelationService Notes : The service evaluates the SmartRelation records (referential integrity) from a session cache that it populates on first use - through the RelationBusinessEntity. When that first use is the ProcessWrite / ProcessDelete of a SmartRelation record, the RelationBusinessEntity is saving that record at that moment and refuses to fetch data, so the save fails. Therefore the cache is populated before every save of a SmartRelation record, and refreshed afterwards so that the created, changed or deleted relation takes effect in this session */
LOGICAL TableExists (character, character) Returns if the table exists in the database Notes : Creating a dynamic buffer for an unknown table raises an error, which is turned into the logical result here @param pcDatabaseName The logical database name @param pcTableName The database table name @return Logical value indicating if the table exists */
Progress.Json.ObjectModel.JsonObject UpdateSmartRelation (character, character, character, character, character, character, character, character, character, character, character, logical, logical) Updates a SmartRelation record including the referential integrity rule Notes : The relation is identified by parent table, child table and relation name. Only the arguments that are passed (character arguments that are not empty, logical arguments that are not unknown) are written @param pcParentTable The qualified name (Database.Table) of the parent table @param pcChildTable The qualified name (Database.Table) of the child table @param pcRelationName The name of the relation @param pcNewRelationName The new name of the relation, empty to leave the name unchanged @param pcRelationDescription The new description, empty to leave the field unchanged @param pcRelationFieldPair The new comma-delimited field pairs, empty to leave the field unchanged @param pcParentRoleDescription The new parent role description, empty to leave the field unchanged @param pcChildRoleDescription The new child role description, empty to leave the field unchanged @param pcParentCardinality The new parent cardinality (1, 01, 01n, 1n), empty to leave the field unchanged @param pcChildCardinality The new child cardinality (1, 01, 01n, 1n), empty to leave the field unchanged @param pcOnParentDelete The new referential integrity rule (DoNothing, Cascade, Nullify, SetDefault, Restrict), empty to leave the field unchanged @param plDefaultParentRelation The new DefaultParentRelation flag, unknown to leave the field unchanged @param plInactive The new Inactive flag, unknown to leave the field unchanged @return JsonObject with the updated SmartRelation record and the list of the updated fields */
Progress.Json.ObjectModel.JsonObject UpdateSmartTable (character, character, character, character, character, character, character, character, character) Updates the description and the record key definition of a SmartTable record Notes : Only the arguments that are passed (not empty) are written, all other fields of the record are left untouched @param pcDatabaseName The logical database name @param pcTableName The database table name @param pcTableDescription The new TableDescription, empty to leave the field unchanged @param pcDescriptionFields The new DescriptionFields, empty to leave the field unchanged @param pcDescriptionFormats The new DescriptionFormats, empty to leave the field unchanged @param pcDescriptionSubstitute The new DescriptionSubstitute, empty to leave the field unchanged @param pcUniqueKeyFields The new UniqueKeyFields, empty to leave the field unchanged @param pcUniqueKeyFormats The new UniqueKeyFormats, empty to leave the field unchanged @param pcUniqueKeySubstitute The new UniqueKeySubstitute, empty to leave the field unchanged @return JsonObject with the updated SmartTable record and the list of the updated fields */
ValidateListValue (character, character, character) Verifies that a value is one of the entries of a list Notes : Empty values are accepted (they mean: not passed / unchanged). The Business Entity validation rejects invalid values as well, this check just produces the clearer message naming the parameter @param pcParameterName The name of the parameter @param pcValue The value to verify @param pcList The comma-delimited list of the valid values */


Method Detail
Top

CHARACTER CanonicalListValue (character, character)

Purpose: Returns the value in the casing of the list entry
Notes : ABL compares case-insensitive, the stored value should be the canonical one

Parameters:
pcValue CHARACTER
The value
pcList CHARACTER
The comma-delimited list of the valid values
Returns CHARACTER
The list entry matching the value, or the value itself when it is not in the list
Top

Progress.Json.ObjectModel.JsonObject CreateSmartRelation (character, character, character, character, character, character, character, character, character, character, logical, logical)

Purpose: Creates a SmartRelation record including the referential integrity rule
Notes : The parent and child table are resolved from their qualified Database.Table
names; the validation of the RelationBusinessEntity applies. A relation
with the same parent table, child table and relation name must not exist
yet, as that triple identifies the relation in the MCP interface

Parameters:
pcParentTable CHARACTER
The qualified name (Database.Table) of the parent table
pcChildTable CHARACTER
The qualified name (Database.Table) of the child table
pcRelationName CHARACTER
The name of the relation
pcRelationDescription CHARACTER
The description of the relation
pcRelationFieldPair CHARACTER
The comma-delimited field pairs (parent field, child field, ...)
pcParentRoleDescription CHARACTER
The description of the role of the parent table
pcChildRoleDescription CHARACTER
The description of the role of the child table
pcParentCardinality CHARACTER
The cardinality of the parent table (1, 01, 01n, 1n), defaults to 1
pcChildCardinality CHARACTER
The cardinality of the child table (1, 01, 01n, 1n), defaults to 01n
pcOnParentDelete CHARACTER
The referential integrity rule (DoNothing, Cascade, Nullify, SetDefault, Restrict)
plDefaultParentRelation LOGICAL
Logical value indicating if this is the default parent relation of the child table
plInactive LOGICAL
Logical value indicating if the relation is inactive
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created SmartRelation record
Top

Progress.Json.ObjectModel.JsonObject DeleteSmartRelation (character, character, character)

Purpose: Deletes a SmartRelation record
Notes : The relation is identified by parent table, child table and relation name

Parameters:
pcParentTable CHARACTER
The qualified name (Database.Table) of the parent table
pcChildTable CHARACTER
The qualified name (Database.Table) of the child table
pcRelationName CHARACTER
The name of the relation
Returns Progress.Json.ObjectModel.JsonObject
JsonObject describing the deleted relation
Top

Consultingwerk.SmartFramework.System.RelationDatasetModel FillRelations (character, character, character)

Purpose: Returns a RelationDatasetModel filled with the SmartRelation records
matching the parent table, child table and relation name
Notes : The caller deletes the model

Parameters:
pcParentTable CHARACTER
The qualified name of the parent table
pcChildTable CHARACTER
The qualified name of the child table
pcRelationName CHARACTER
The name of the relation
Returns Consultingwerk.SmartFramework.System.RelationDatasetModel
The RelationDatasetModel positioned on the first matching record (or not available)
Top

Consultingwerk.SmartFramework.System.RelationDatasetModel FindRelation (character, character, character)

Purpose: Returns a RelationDatasetModel positioned on the single SmartRelation
record identified by parent table, child table and relation name
Notes : Throws a NotFoundException when no relation matches and an Exception
listing the candidates when the triple matches more than one record.
The caller deletes the model

Parameters:
pcParentTable CHARACTER
The qualified name of the parent table
pcChildTable CHARACTER
The qualified name of the child table
pcRelationName CHARACTER
The name of the relation
Returns Consultingwerk.SmartFramework.System.RelationDatasetModel
The RelationDatasetModel positioned on the SmartRelation record
Top

Consultingwerk.SmartFramework.System.TableDatasetModel FindSmartTable (character)

Purpose: Returns a TableDatasetModel positioned on the SmartTable record of the
given table
Notes : A qualified Database.Table name is resolved through the unique
DatabaseTable index. An unqualified table name is accepted when exactly
one SmartTable record carries that table name. Throws a NotFoundException
when the table is not registered. The caller deletes the model

Parameters:
pcTableName CHARACTER
The qualified (or unqualified) name of the database table
Returns Consultingwerk.SmartFramework.System.TableDatasetModel
The TableDatasetModel positioned on the SmartTable record
Top

CHARACTER GetQualifiedTableName (TableDatasetModel)

Purpose: Returns the qualified Database.Table name of the SmartTable record the
model is positioned on
Notes :

Parameters:
poTableDatasetModel Consultingwerk.SmartFramework.System.TableDatasetModel
The TableDatasetModel positioned on the SmartTable record
Returns CHARACTER
The qualified table name
Top

Progress.Json.ObjectModel.JsonObject GetSmartTableResponse (TableDatasetModel)

Purpose: Returns the response object for a SmartTable record: the identity of the
table and the SmartTable registration
Notes :

Parameters:
poTableDatasetModel Consultingwerk.SmartFramework.System.TableDatasetModel
The TableDatasetModel positioned on the SmartTable record
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject describing the SmartTable record
Top

Progress.Json.ObjectModel.JsonObject ImportDatabaseTables (character, character)

Purpose: Registers database tables of a connected database in the SmartFramework
table maintenance (SmartTable)
Notes : Tables that are already registered are reported and left untouched. The
import reuses TableBusinessEntity:ImportDatabaseTables, restricted to the
named tables

Parameters:
pcDatabaseName CHARACTER
The logical database name
pcTableNames CHARACTER
The comma-delimited list of the tables to register
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created SmartTable records and the names of the tables that were already registered
Top

CHARACTER NormalizeTableNames (character, character)

Purpose: Trims the entries of the comma-delimited table name list and verifies
that every table exists in the database
Notes : Throws a NotFoundException for a table that does not exist

Parameters:
pcDatabaseName CHARACTER
The logical database name
pcTableNames CHARACTER
The comma-delimited list of table names
Returns CHARACTER
The normalized comma-delimited list of table names
Top

RefreshRelationCache ()

Purpose: Refreshes the relation cache of the IRelationService
Notes : The service evaluates the SmartRelation records (referential integrity)
from a session cache that it populates on first use - through the
RelationBusinessEntity. When that first use is the ProcessWrite /
ProcessDelete of a SmartRelation record, the RelationBusinessEntity is
saving that record at that moment and refuses to fetch data, so the
save fails. Therefore the cache is populated before every save of a
SmartRelation record, and refreshed afterwards so that the created,
changed or deleted relation takes effect in this session

Top

LOGICAL TableExists (character, character)

Purpose: Returns if the table exists in the database
Notes : Creating a dynamic buffer for an unknown table raises an error, which is
turned into the logical result here

Parameters:
pcDatabaseName CHARACTER
The logical database name
pcTableName CHARACTER
The database table name
Returns LOGICAL
Logical value indicating if the table exists
Top

Progress.Json.ObjectModel.JsonObject UpdateSmartRelation (character, character, character, character, character, character, character, character, character, character, character, logical, logical)

Purpose: Updates a SmartRelation record including the referential integrity rule
Notes : The relation is identified by parent table, child table and relation name.
Only the arguments that are passed (character arguments that are not empty,
logical arguments that are not unknown) are written

Parameters:
pcParentTable CHARACTER
The qualified name (Database.Table) of the parent table
pcChildTable CHARACTER
The qualified name (Database.Table) of the child table
pcRelationName CHARACTER
The name of the relation
pcNewRelationName CHARACTER
The new name of the relation, empty to leave the name unchanged
pcRelationDescription CHARACTER
The new description, empty to leave the field unchanged
pcRelationFieldPair CHARACTER
The new comma-delimited field pairs, empty to leave the field unchanged
pcParentRoleDescription CHARACTER
The new parent role description, empty to leave the field unchanged
pcChildRoleDescription CHARACTER
The new child role description, empty to leave the field unchanged
pcParentCardinality CHARACTER
The new parent cardinality (1, 01, 01n, 1n), empty to leave the field unchanged
pcChildCardinality CHARACTER
The new child cardinality (1, 01, 01n, 1n), empty to leave the field unchanged
pcOnParentDelete CHARACTER
The new referential integrity rule (DoNothing, Cascade, Nullify, SetDefault, Restrict), empty to leave the field unchanged
plDefaultParentRelation LOGICAL
The new DefaultParentRelation flag, unknown to leave the field unchanged
plInactive LOGICAL
The new Inactive flag, unknown to leave the field unchanged
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the updated SmartRelation record and the list of the updated fields
Top

Progress.Json.ObjectModel.JsonObject UpdateSmartTable (character, character, character, character, character, character, character, character, character)

Purpose: Updates the description and the record key definition of a SmartTable record
Notes : Only the arguments that are passed (not empty) are written, all other fields
of the record are left untouched

Parameters:
pcDatabaseName CHARACTER
The logical database name
pcTableName CHARACTER
The database table name
pcTableDescription CHARACTER
The new TableDescription, empty to leave the field unchanged
pcDescriptionFields CHARACTER
The new DescriptionFields, empty to leave the field unchanged
pcDescriptionFormats CHARACTER
The new DescriptionFormats, empty to leave the field unchanged
pcDescriptionSubstitute CHARACTER
The new DescriptionSubstitute, empty to leave the field unchanged
pcUniqueKeyFields CHARACTER
The new UniqueKeyFields, empty to leave the field unchanged
pcUniqueKeyFormats CHARACTER
The new UniqueKeyFormats, empty to leave the field unchanged
pcUniqueKeySubstitute CHARACTER
The new UniqueKeySubstitute, empty to leave the field unchanged
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the updated SmartTable record and the list of the updated fields
Top

ValidateListValue (character, character, character)

Purpose: Verifies that a value is one of the entries of a list
Notes : Empty values are accepted (they mean: not passed / unchanged). The
Business Entity validation rejects invalid values as well, this check
just produces the clearer message naming the parameter

Parameters:
pcParameterName CHARACTER
The name of the parameter
pcValue CHARACTER
The value to verify
pcList CHARACTER
The comma-delimited list of the valid values


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       10.10.2026 15:33:32