Top Method Summary
Options Name Purpose
BuildKeyFilters () Builds the list of the filters of the DatasetModel that are based on a Key value object
INTEGER EndOfLine (longchar, integer) Returns the position of the line break that ends the line containing the given position
CHARACTER FindOutputFolder () Returns the output folder (source code folder for business logic)
LONGCHAR GenerateConstructors (character, AbstractModelClassGeneratorPlugin) Generates the constructors of the DatasetModel class that accept a Key value object
LONGCHAR GenerateFilterStatements (buffer, logical, AbstractModelClassGeneratorPlugin) Generates the statements that filter the TableModel by the values of a Key value object
LONGCHAR GenerateGetKeyMethod (character) Generates the method of the TableModel class that returns the Key value object of the current record
LONGCHAR GenerateNewFilterMethods (AbstractModelClassGeneratorPlugin) Generates the NewFilter methods of the generated DatasetModel class that accept a Key value object
GenerateValueObjectClass (character, character, character, character, character, character, AbstractModelClassGeneratorPlugin) Generates a ValueObject class for a primary unique key
GenerateValueObjectClasses () Generates ValueObject classes for primary unique keys
GenerateValueObjectClasses (dataset) Generates the ValueObject Classes
CHARACTER GetBufferParameterName (character) Returns the name of the buffer parameter of the constructor of the Key value object class that accepts a static buffer
GetFieldsData (character, character, longchar, longchar, longchar, longchar) Gets the fields data
CHARACTER GetFilterDescription (buffer) Returns the description of a filter for the comment of the generated constructor or method
CHARACTER GetKeyClassName (character, character) Returns the fully qualified class name of the Key value object of a temp-table
Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin GetModelClassGeneratorPlugin () Returns the reference to the Model Class Generator plugin
LOGICAL GetPrimaryUniqueIndex (character, character, character) Returns the primary unique index of a temp-table
LOGICAL IsClassAvailable (character) Returns if the source code or the r-code of a class is found on the PROPATH or below the output folder
LOGICAL IsFilterField (character, character) Returns if the given field of a temp-table can be used with the Filter API of the TableModel
LOGICAL IsTableModelAvailable (character, character, AbstractModelClassGeneratorPlugin) Returns if the TableModel class of a temp-table is available, so that the constructor of the Key value object class accepting the TableModel can be generated
ProcessTemplateBlock (longchar, character, character, logical) Keeps or removes the block of a template that is enclosed by the given marker lines, and removes the marker lines themselves
LONGCHAR RemoveLine (longchar, integer) Removes the line that contains the given position from the source code
LOGICAL ResolveRelationKey (character, RelationDesignAttributes, character, character) Resolves the Key value object of the target of a relation

Top Constructor Summary
Options Name Purpose
AbstractKeyValueObjectGeneratorPlugin () Constructor for the AbstractKeyValueObjectGeneratorPlugin class

Top Property Summary
Options Name Purpose
CHARACTER KeyParameterName
INTEGER MaxIdentifierLength
Consultingwerk.BusinessEntityDesigner.Common.IBusinessEntityDesignerPluginManager PluginManager
CHARACTER Prefix
CHARACTER Suffix


Method Detail
Top

BuildKeyFilters ()

Purpose: Builds the list of the filters of the DatasetModel that are
based on a Key value object
Notes: Evaluates the primary unique index and the relations of every
temp-table of the design. The uniqueness of a Key value object
type is evaluated across all temp-tables, as the constructors
of all tables share the DatasetModel class. The Key value
object of the table itself wins over a relation with the same
Key value object type

Top

INTEGER EndOfLine (longchar, integer)

Purpose: Returns the position of the line break that ends the line
containing the given position
Notes: Returns the length of the source code when the line is the last
line and has no line break

Parameters:
plcCode LONGCHAR
The source code
piPosition INTEGER
The position within the line
Returns INTEGER
The position of the line feed character ending the line
Top

CHARACTER FindOutputFolder ()

Purpose: Returns the output folder (source code folder for business logic)
Notes: Mirrors the folder resolution of the Business Entity Generator -
an empty setting resolves to the working directory. The
generated Key value object classes are written below this
folder, so that a server side generation run with a configured
source code folder (e.g. the MCP server) writes them next to the
other generated classes

Returns CHARACTER
The output folder including a trailing slash, or an empty string
Top

LONGCHAR GenerateConstructors (character, AbstractModelClassGeneratorPlugin)

Purpose: Generates the constructors of the DatasetModel class that accept
a Key value object
Notes: SCL-4733. One constructor and one constructor with FetchOptions
per Key value object type that is unique within the DatasetModel

Parameters:
pcClassName CHARACTER
The name of the DatasetModel class
poModelClassGenerator Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin
The reference to the Model Class Generator plugin
Returns LONGCHAR
The source code for the constructors
Top

LONGCHAR GenerateFilterStatements (buffer, logical, AbstractModelClassGeneratorPlugin)

Purpose: Generates the statements that filter the TableModel by the
values of a Key value object
Notes: The Key value object of the table itself is resolved through
the static query of the primary unique index when one is
generated, every other filter through the Filter API of the
TableModel

Parameters:
ttKeyFilter buffer
The buffer with the filter to generate the statements for
plResetFilter LOGICAL
Logical value indicating if the current filter of the TableModel is reset first
poModelClassGenerator Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin
The reference to the Model Class Generator plugin
Returns LONGCHAR
The source code for the statements
Top

LONGCHAR GenerateGetKeyMethod (character)

Purpose: Generates the method of the TableModel class that returns the
Key value object of the current record
Notes: SCL-4733. Returns an empty string when the temp-table has no
primary unique index, as there is no Key value object then

Parameters:
pcTempTableName CHARACTER
The name of the temp-table
Returns LONGCHAR
The source code for the method
Top

LONGCHAR GenerateNewFilterMethods (AbstractModelClassGeneratorPlugin)

Purpose: Generates the NewFilter methods of the generated DatasetModel
class that accept a Key value object
Notes: SCL-4733. A Key value object type that is unique within the
DatasetModel gets a NewFilter overload, the others get a named
New<RelationName>Filter method

Parameters:
poModelClassGenerator Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin
The reference to the Model Class Generator plugin
Returns LONGCHAR
The source code for the methods
Top

GenerateValueObjectClass (character, character, character, character, character, character, AbstractModelClassGeneratorPlugin)

Purpose: Generates a ValueObject class for a primary unique key
Notes:

Parameters:
pcDatasetPath CHARACTER
The dataset path
pcDatasetName CHARACTER
The dataset name
pcTempTableName CHARACTER
The temporary table name
pcEntityClassName CHARACTER
The entity class name
pcEntityPackageName CHARACTER
The entity package name
pcIndexFields CHARACTER
The index fields
poPlugin Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin
The Model Class Generator plugin
Top

GenerateValueObjectClasses ()

Purpose: Generates ValueObject classes for primary unique keys
Notes: Raises an EntityNameNotSetException before any class is written,
when a temp-table with a primary unique index has no entity
package name or no entity class name (SCL-6017)

Top

GenerateValueObjectClasses (dataset)

Purpose: Generates the ValueObject Classes
Notes: This routine is intended to be used from outside of the Business Entity
designer (automatic source code generation, unit testing)

Parameters:
dsBusinessEntity DATASET dsBusinessEntity
Business Entity with the Design dataset, called with the BY-REFERENCE keyword
Top

CHARACTER GetBufferParameterName (character)

Purpose: Returns the name of the buffer parameter of the constructor of
the Key value object class that accepts a static buffer
Notes: SCL-6019. The name is pb<TempTableName>, unless that exceeds the
maximum length of an ABL identifier - a temp-table name of 31 or
32 characters (e.g. eOrphanedSmartSecurityAssignment) then gets
the generic parameter name pbBuffer

Parameters:
pcTempTableName CHARACTER
The name of the temp-table
Returns CHARACTER
The name of the buffer parameter
Top

GetFieldsData (character, character, longchar, longchar, longchar, longchar)

Purpose: Gets the fields data
Notes:

Parameters:
pcTempTableName CHARACTER
The temporary table name
pcIndexFields CHARACTER
The index fields
plcProperties LONGCHAR
The generated text for the property definitions
plcComments LONGCHAR
The generated text for the comments
plcParameters LONGCHAR
The generated text for the parameters
plcAssignments LONGCHAR
The generated text for the assignments
Top

CHARACTER GetFilterDescription (buffer)

Purpose: Returns the description of a filter for the comment of the
generated constructor or method
Notes:

Parameters:
ttKeyFilter buffer
The buffer with the filter to describe
Returns CHARACTER
The description of the filter
Top

CHARACTER GetKeyClassName (character, character)

Purpose: Returns the fully qualified class name of the Key value object
of a temp-table
Notes: SCL-6015. The single place that defines the naming of the Key
value object classes

Parameters:
pcEntityPackageName CHARACTER
The entity package name of the temp-table
pcEntityClassName CHARACTER
The entity class name of the temp-table
Returns CHARACTER
The fully qualified class name of the Key value object
Top

Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin GetModelClassGeneratorPlugin ()

Purpose: Returns the reference to the Model Class Generator plugin
Notes: Resolved through the plugin manager, so the desktop and the
server side variant of the plugin are supported

Returns Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin
The reference to the Model Class Generator plugin or ?
Top

LOGICAL GetPrimaryUniqueIndex (character, character, character)

Purpose: Returns the primary unique index of a temp-table
Notes: The index the Key value object of the temp-table is generated for

Parameters:
pcTempTableName CHARACTER
The name of the temp-table
pcIndexName CHARACTER
OUTPUT The name of the index
pcFieldNames CHARACTER
OUTPUT The comma-delimited list of the fields of the index
Returns LOGICAL
Logical value indicating if the temp-table has a primary unique index with fields
Top

LOGICAL IsClassAvailable (character)

Purpose: Returns if the source code or the r-code of a class is found on
the PROPATH or below the output folder
Notes: Used for the Key value object class of the target of a relation
and for the TableModel class of a temp-table (SCL-6019)

Parameters:
pcClassName CHARACTER
The fully qualified class name
Returns LOGICAL
Logical value indicating if the class is available
Top

LOGICAL IsFilterField (character, character)

Purpose: Returns if the given field of a temp-table can be used with the
Filter API of the TableModel
Notes: Matches the fields the Model Class Generator plugin generates a
filter property for

Parameters:
pcTempTableName CHARACTER
The name of the temp-table
pcFieldName CHARACTER
The name of the field
Returns LOGICAL
Logical value indicating if the field has a filter property
Top

LOGICAL IsTableModelAvailable (character, character, AbstractModelClassGeneratorPlugin)

Purpose: Returns if the TableModel class of a temp-table is available, so
that the constructor of the Key value object class accepting the
TableModel can be generated
Notes: SCL-6019. The class is available when the Model Class Generator
plugin generates the model classes of the current design, or
when its source code or r-code exists already (e.g. generated
by a configuration that loads the Model Class Generator plugin).
A design without a Business Entity or with the
"ModelClassGenerator.Disabled" custom property has no TableModel
classes, and a Key value object class referencing them would not
compile

Parameters:
pcEntityPackageName CHARACTER
The entity package name of the temp-table
pcTableModelName CHARACTER
The short class name of the TableModel class
poPlugin Consultingwerk.BusinessEntityDesigner.Common.Plugins.AbstractModelClassGeneratorPlugin
The reference to the Model Class Generator plugin or ?
Returns LOGICAL
Logical value indicating if the TableModel class is available
Top

ProcessTemplateBlock (longchar, character, character, logical)

Purpose: Keeps or removes the block of a template that is enclosed by the
given marker lines, and removes the marker lines themselves
Notes: SCL-6019. A template without the markers (e.g. a customized copy
of the keyvalueobject.template that predates the markers) is
returned unchanged, so it keeps generating the block as before.
The markers are expected on lines of their own; a marker line is
removed including its line break. The functions operate on the
longchar, as generated source code may exceed the character limit

Parameters:
plcCode LONGCHAR
INPUT-OUTPUT The source code generated from the template
pcBeginMarker CHARACTER
The marker that starts the block
pcEndMarker CHARACTER
The marker that ends the block
plKeepBlock LOGICAL
Logical value indicating if the block between the markers is kept
Top

LONGCHAR RemoveLine (longchar, integer)

Purpose: Removes the line that contains the given position from the source
code
Notes: Removes the text from the position to the end of the line,
including the line break - so the position is expected to be
the start of the line or the start of a marker that has the
line of its own

Parameters:
plcCode LONGCHAR
The source code
piPosition INTEGER
The position of the first character to remove
Returns LONGCHAR
The source code without the line
Top

LOGICAL ResolveRelationKey (character, RelationDesignAttributes, character, character)

Purpose: Resolves the Key value object of the target of a relation
Notes: A relation qualifies when its target fields are exactly the
fields of the primary unique index of the target table, when
the fields of the own temp-table have a filter property and
when the Key value object class of the target is available. The
Key value object of a table of the current design is generated
in the same run, so its availability is not verified

Parameters:
pcTempTableName CHARACTER
The name of the temp-table the relation belongs to
poAttributes Consultingwerk.BusinessEntityDesigner.Plugins.BusinessEntityRelations.RelationDesignAttributes
The RelationDesignAttributes instance
pcKeyClassName CHARACTER
OUTPUT The fully qualified class name of the Key value object
pcFieldPairs CHARACTER
OUTPUT The comma-delimited list of field pairs (own field, property of the Key value object)
Returns LOGICAL
Logical value indicating if the relation qualifies


Constructor Detail
Top

AbstractKeyValueObjectGeneratorPlugin ()

Purpose: Constructor for the AbstractKeyValueObjectGeneratorPlugin class
Notes: The second copy of the design dataset is used to read the design
of the target Business Entity of a relation, so its serialize
names have to match the ones written into a .bedgm file



Property Detail
Top

CHARACTER KeyParameterName


Returns CHARACTER
Top

INTEGER MaxIdentifierLength


Returns INTEGER
Top

Consultingwerk.BusinessEntityDesigner.Common.IBusinessEntityDesignerPluginManager PluginManager


Returns Consultingwerk.BusinessEntityDesigner.Common.IBusinessEntityDesignerPluginManager
Top

CHARACTER Prefix


Returns CHARACTER
Top

CHARACTER Suffix


Returns CHARACTER


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       10.10.2026 15:21:08