Top Method Summary
Options Name Purpose
ApplyAttributesFromJson (JsonObject) Applies attribute values from a JSON attributes object to the loaded dsDesignAttributeValue records Notes : Iterates the keys of poAttrObject. For each key matching an eDesignAttributeValue record the corresponding typed value field is updated and IsInherited is set to false. Tracking changes must be enabled on dsDesignAttributeValue before calling this method. @param poAttrObject JsonObject keyed by AttributeLabel; each value is a JsonObject with a "value" key */
CollectAttributeValues (JsonObject, ISmartRepositoryService, DictionaryAttributeValue, character, character) Collects typed attribute values and reset requests from a flat JSON attributes object Notes : The attributes object is keyed by attribute name with the value in the matching JSON type (string, number, boolean); null values are collected into the list of attributes to reset. Date attributes accept ISO date strings. Throws an error for unknown attribute names and for values whose JSON type does not match the attribute data type @param poAttributes The JsonObject with the attributes @param poRepository The reference to the ISmartRepositoryService @param poValues The DictionaryAttributeValue to add the typed values to @param pcUpdatedNames OUTPUT The comma delimited list of attribute names with new values @param pcResetNames OUTPUT The comma delimited list of attribute names to reset */
CollectInstanceInput (JsonArray, character) Flattens the nested instances JSON array into ttInstanceInput Notes : The InstanceName is treated as unique key. ParentInstanceName is derived from nesting. @param poInstances JsonArray with instances @param pcParentInstanceName The parent instance name for the current level */
Progress.Json.ObjectModel.JsonObject CreateLink (character, character, character, character) Creates a link between two object instances or to/from the container Notes : An empty source or target instance denotes the container itself @param pcObjectMaster The Object Master Name or GUID of the container holding the link (required unless an instance is specified by its GUID) @param pcSourceObjectInstance The Object Instance Name or GUID of the link source, empty when the link source is the container @param pcTargetObjectInstance The Object Instance Name or GUID of the link target, empty when the link target is the container @param pcLink The name of the link type (e.g. Data, TableIO, Navigation) @return JsonObject with the created link information */
Progress.Json.ObjectModel.JsonObject CreateObjectInstance (character, character, character, character, character, JsonObject) Creates an object instance in a container object master Notes : When the instance name is empty the instance object master's name is used; for MetaDataField (or inherited) masters only the last part of the field name is used. A duplicate instance name is rejected @param pcContainerObjectMaster The Object Master Name or GUID of the container (required) @param pcInstanceObjectMaster The Object Master Name or GUID of the object master to create an instance of (required) @param pcInstanceName The name for the new instance (optional) @param pcParentInstance The Instance Name or GUID of the parent of the new instance (optional) @param pcPage The PageKey or page number of the page to add the instance to (optional, MetaForm / MetaControlGroup containers only) @param poAttributes The JsonObject with initial attribute values (optional) @return JsonObject with the created instance information */
Progress.Json.ObjectModel.JsonObject CreateObjectMaster (character, character, character, character, JsonObject) Creates a new object master (typically a MetaForm, MetaControlGroup or derived) Notes : The attributes object is keyed by attribute name with the value in the matching JSON type (string, number, boolean); null values are ignored when creating an object master - every attribute of a new master is inherited anyway. A duplicate object master name is rejected @param pcObjectMasterName The name for the new Object Master (required) @param pcObjectType The name or GUID of the object type of the new Object Master, e.g. MetaForm or MetaControlGroup (required) @param pcProductModule The name or GUID of the product module to add the master to (required) @param pcDescription The description of the new Object Master (optional) @param poAttributes The JsonObject with initial attribute values (optional) @return JsonObject with the created object master information */
Progress.Json.ObjectModel.JsonObject CreatePage (character, integer, character, character, character, character, character) Creates a page in an object master Notes : Only applicable when the container is a MetaForm or MetaControlGroup (or derived). A duplicate page number or page key is rejected @param pcObjectMaster The Object Master Name or GUID to add the page to (required) @param piPageNumber The number of the page to create (required) @param pcPageKey The key of the page to create (optional, but strongly advised) @param pcPageLabel The label of the page to create (required) @param pcTabGroup The tab group the page belongs to (optional) @param pcPageIcon The PNG image for the Desktop, relative path (optional) @param pcPageIconWeb The font based icon or relative PNG file name for the Web (optional) @return JsonObject with the created page information */
Progress.Json.ObjectModel.JsonObject DeleteLink (character, character, character, character) Deletes a link between two object instances or to/from the container Notes : An empty source or target instance denotes the container itself @param pcObjectMaster The Object Master Name or GUID of the container holding the link (required unless an instance is specified by its GUID) @param pcSourceObjectInstance The Object Instance Name or GUID of the source of the link to delete, empty when the link source is the container @param pcTargetObjectInstance The Object Instance Name or GUID of the target of the link to delete, empty when the link target is the container @param pcLink The name of the link type of the link to delete (e.g. Data, TableIO, Navigation) @return JsonObject with the deleted link information */
DeleteLinks (character) Deletes eSmartLink records for the given repository object master that are not present in ttLinkInput Notes : ttLinkInput is prepared in UpdateRepositoryObject @param pcObjectMasterGuid The object master guid of the container */
Progress.Json.ObjectModel.JsonObject DeleteObjectInstance (character, character) Deletes an object instance from a container Notes : Child instances are cascade-deleted together with the instance, including the links and attribute values of every deleted instance @param pcObjectMaster The Object Master Name or GUID of the container (required unless the instance is specified by its GUID) @param pcObjectInstance The Object Instance Name or GUID to delete (required) @return JsonObject with the deleted instance information */
DeleteObjectInstances (character) Deletes eSmartObjectInstance records for the given repository object master that are not present in ttInstanceInput Notes : Also deletes eSmartLink records that reference the deleted instance to avoid dangling references @param pcObjectMasterGuid The object master guid of the container */
Progress.Json.ObjectModel.JsonObject DeletePage (character, integer) Deletes an existing page of an object master Notes : The object instances placed on the page are cascade-deleted together with the page, including their child instances, links and attribute values @param pcObjectMaster The Object Master Name or GUID that the page belongs to (required) @param piPageNumber The number of the page to delete (required) @return JsonObject with the deleted page information */
DeletePages (character) Deletes eSmartPage records for the given repository object master that are not present in ttPageInput Notes : ttPageInput is prepared in UpdateRepositoryObject @param pcObjectMasterGuid The object master guid of the container */
Progress.Json.ObjectModel.JsonObject GetDataSourceFields (character) Returns details about a repository data source and its fields Notes : The result contains the IDataSourceInfo properties and a field map keyed by short field name @param pcDataSourceName The data source name to inspect @return JsonObject containing data source details and field metadata */
Progress.Json.ObjectModel.JsonObject GetEventDetails () Returns the event details from the current dsDesignAttributeValue dataset Notes : The result is a JsonObject keyed by AttributeLabel, each entry contains a value and optional metadata @return JsonObject containing event details */
Progress.Json.ObjectModel.JsonArray GetObjectInstances (character, character, AttributeValueBusinessEntity, logical) Returns the object instances for a container and parent instance guid Notes : This method is recursive and walks the eSmartObjectInstance hierarchy @param pcContainerObjectMasterGuid The ObjectMasterGuid of the container (object master) @param pcParentInstanceGuid The parent instance guid (empty string for root) @param poAttributes The AttributeValueBusinessEntity instance used to retrieve design attributes @param plIncludeLayoutPosition Include LayoutPosition attribute (in MetaForm or MetaControlGroup container) @return JsonArray containing one JsonObject per instance */
Progress.Json.ObjectModel.JsonArray GetObjectLinks () Returns the links of the currently loaded repository object Notes : Iterates the eSmartLink temp-table. Resolves LinkType name from LinkTypeGuid. @return JsonArray containing link details */
Progress.Json.ObjectModel.JsonArray GetObjectPages () Returns the pages of the currently loaded repository object Notes : Iterates the eSmartPage temp-table @return JsonArray containing page details */
INTEGER GetPageSequence (character) Returns the page sequence for a page guid Notes : Uses the already retrieved eSmartPage temp-table @param pcPageGuid The page guid to resolve @return The PageSequence value or 0 when not found */
Progress.Json.ObjectModel.JsonObject GetPropertyDetails (character) Returns the property details from the current dsDesignAttributeValue dataset Notes : The result is a JsonObject keyed by AttributeLabel, each entry contains a value and optional metadata @param pcObjectTypeGuid The ObjectTypeGuid of the object master or object instance @return JsonObject containing property details */
Progress.Json.ObjectModel.JsonObject GetRepositoryAttributeDetails () Returns repository attribute details for all attributes Notes : Reads all records from the AttributeBusinessEntity and returns a JsonObject keyed by AttributeLabel @return JsonObject containing one entry per repository attribute */
Progress.Json.ObjectModel.JsonObject GetRepositoryInstanceEvents (character, character) Returns the events registered against the object type of an instance Notes : Resolves the instance (validating the container and instance name), retrieves the events defined for the object type via the foundation method GetObjectTypeEvents and returns, keyed by event name, the currently registered event handler value (a string) for each event on the instance, or null when no handler is registered. @param pcContainerName The name of the container (form or viewer) holding the instance @param pcInstanceName The name of the instance inside the container @return JsonObject keyed by event name with the registered event handler value */
Progress.Json.ObjectModel.JsonObject GetRepositoryObject (character) Returns details about a repository object master Notes : Uses ObjectMasterDatasetModel and enriches the result with design-time attributes and events @param pcObjectName The object name to load @return JsonObject containing object details */
Progress.Json.ObjectModel.JsonObject MoveObjectInstance (character, character, character) Moves an object instance to another parent instance within a container Notes : An empty parent instance moves the instance to the top level @param pcObjectMaster The Object Master Name or GUID of the container (required unless the instance is specified by its GUID) @param pcObjectInstance The Object Instance Name or GUID to move (required) @param pcParentInstance The Instance Name or GUID of the new parent instance, empty for top level @return JsonObject with the moved instance information */
CHARACTER ResolveContainerObjectMasterGuid (character, character, character, ISmartRepositoryService) Resolves the container object master guid from the object master parameter or from an object instance guid Notes : When the object master parameter is empty, the container is resolved from the first of the two instance parameters that is a known Object Instance GUID @param pcObjectMaster The Object Master Name or GUID, may be empty @param pcInstance1 The first Object Instance Name or GUID candidate @param pcInstance2 The second Object Instance Name or GUID candidate @param poRepository The reference to the ISmartRepositoryService @return The Object Master Guid of the container */
CHARACTER SetRepositoryInstanceEvent (character, character, character, character, character) Registers a server-side event handler for an event of an instance Notes : Validates the container and instance via GetObjectInstanceGuid. The handler value is stored as 'server:<class name>:<method name>`. When pcHandlerClass is empty the container's ServerSideEventHandler attribute is used (and an error is raised when that is also empty); when pcHandlerClass is provided and the container does not define a ServerSideEventHandler value yet, it is stored on the container. When pcMethodName is empty '<Instance Name>@lt;Event Name>Handler' is used as the method name. @param pcContainerName The name of the container (form or viewer) holding the instance @param pcInstanceName The name of the instance inside the container @param pcEventName The name of the event to register the handler for @param pcHandlerClass The name of the server-side event handler class (optional) @param pcMethodName The name of the event handler method (optional) @return An informal message describing the registered event handler */
UpdateLinks (character, JsonObject) Updates or creates links for the repository object master and prepares ttLinkInput Notes : Reads the 'links' JsonArray from the provided object @param pcObjectMasterGuid The object master guid of the container @param poObject The repository object JSON */
UpdateObjectInstanceAttributes (character, JsonArray, AttributeValueBusinessEntity) Saves instance attribute overrides for all instances in poInstances Notes : Recursively processes nested instances. For each instance with an "attributes" key, loads design attributes via GetObjectInstanceDesignAttributes, applies JSON values via ApplyAttributesFromJson, and persists via StoreObjectInstanceDesignAttributes. Must be called after SaveChanges so instance records exist in the database. @param pcObjectMasterGuid The GUID of the container object master @param poInstances The JsonArray of instance objects @param poAttributeEntity The AttributeValueBusinessEntity */
UpdateObjectInstances (character, JsonObject, ISmartRepositoryService) Updates or creates object instances for the repository object master and prepares ttInstanceInput Notes : Reads the nested 'instances' JsonArray from the provided object and sets ParentInstanceGuid based on nesting @param pcObjectMasterGuid The object master guid of the container @param poObject The repository object JSON @param poRepository Repository service used for resolving object masters */
UpdateObjectMasterAttributes (character, JsonObject, AttributeValueBusinessEntity) Saves object master attribute overrides from the "attributes" key of the input JSON Notes : Loads current design attributes via GetObjectMasterDesignAttributes, applies values from the JSON using ApplyAttributesFromJson, then persists overrides via StoreObjectMasterDesignAttributes. Must be called after SaveChanges so the object master record exists in the database. @param pcObjectMasterGuid The GUID of the object master @param poObject The repository object JSON @param poAttributeEntity The AttributeValueBusinessEntity */
Progress.Json.ObjectModel.JsonObject UpdatePage (character, integer, character, character, character, character, character) Updates an existing page of an object master Notes : Only the provided (non-empty) values are updated - empty parameters leave the current value unchanged @param pcObjectMaster The Object Master Name or GUID that the page belongs to (required) @param piPageNumber The number of the page to update (required) @param pcPageKey The key of the page, only updated when provided @param pcPageLabel The label of the page, only updated when provided @param pcTabGroup The tab group the page belongs to, only updated when provided @param pcPageIcon The PNG image for the Desktop, only updated when provided @param pcPageIconWeb The font based icon or relative PNG file name for the Web, only updated when provided @return JsonObject with the updated page information */
UpdatePages (character, JsonObject) Updates or creates pages for the repository object master and prepares ttPageInput Notes : Reads the 'pages' JsonArray from the provided object @param pcObjectMasterGuid The object master guid of the container @param poObject The repository object JSON */
Progress.Json.ObjectModel.JsonObject UpdateRepositoryAttributes (character, character, JsonObject) Updates attributes of an object master or of an object instance Notes : The attributes object is keyed by attribute name with the value in the matching JSON type (string, number, boolean); null values reset the attributes to their inherited values @param pcObjectMaster The Object Master Name or GUID (required unless the object instance is specified by its Object Instance GUID) @param pcObjectInstance The Object Instance Name or GUID (required to update object instance attributes, otherwise object master attributes are updated) @param poAttributes The JsonObject with the attributes to set @return JsonObject with update result information */
Progress.Json.ObjectModel.JsonObject UpdateRepositoryObject (JsonObject) Updates or creates a repository object master and synchronizes its pages, instances and links Notes : The input JSON is expected to follow the structure returned by GetRepositoryObject. The method loads dsObjectMaster, enables TrackingChanges, applies changes and calls SaveChanges when needed. @param poObject The updated repository object JSON @return JsonObject with basic update result information */
VerifyContainerSupportsPages (character, ISmartRepositoryService) Verifies that the container of a page supports pages Notes : Throws a clear error when the container is not a MetaForm or MetaControlGroup (or a derived type) @param pcContainerName The name of the container object master @param poRepository The reference to the ISmartRepositoryService */


Method Detail
Top

ApplyAttributesFromJson (JsonObject)

Purpose: Applies attribute values from a JSON attributes object to the loaded dsDesignAttributeValue records
Notes : Iterates the keys of poAttrObject. For each key matching an eDesignAttributeValue record
the corresponding typed value field is updated and IsInherited is set to false.
Tracking changes must be enabled on dsDesignAttributeValue before calling this method.

Parameters:
poAttrObject Progress.Json.ObjectModel.JsonObject
JsonObject keyed by AttributeLabel; each value is a JsonObject with a "value" key
Top

CollectAttributeValues (JsonObject, ISmartRepositoryService, DictionaryAttributeValue, character, character)

Purpose: Collects typed attribute values and reset requests from a flat
JSON attributes object
Notes : The attributes object is keyed by attribute name with the value in
the matching JSON type (string, number, boolean); null values are
collected into the list of attributes to reset. Date attributes
accept ISO date strings. Throws an error for unknown attribute
names and for values whose JSON type does not match the attribute
data type

Parameters:
poAttributes Progress.Json.ObjectModel.JsonObject
The JsonObject with the attributes
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
The reference to the ISmartRepositoryService
poValues Consultingwerk.SmartFramework.Repository.DictionaryAttributeValue
The DictionaryAttributeValue to add the typed values to
pcUpdatedNames CHARACTER
OUTPUT The comma delimited list of attribute names with new values
pcResetNames CHARACTER
OUTPUT The comma delimited list of attribute names to reset
Top

CollectInstanceInput (JsonArray, character)

Purpose: Flattens the nested instances JSON array into ttInstanceInput
Notes : The InstanceName is treated as unique key. ParentInstanceName is derived from nesting.

Parameters:
poInstances Progress.Json.ObjectModel.JsonArray
JsonArray with instances
pcParentInstanceName CHARACTER
The parent instance name for the current level
Top

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

Purpose: Creates a link between two object instances or to/from the container
Notes : An empty source or target instance denotes the container itself

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID of the container holding the link (required unless an instance is specified by its GUID)
pcSourceObjectInstance CHARACTER
The Object Instance Name or GUID of the link source, empty when the link source is the container
pcTargetObjectInstance CHARACTER
The Object Instance Name or GUID of the link target, empty when the link target is the container
pcLink CHARACTER
The name of the link type (e.g. Data, TableIO, Navigation)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created link information
Top

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

Purpose: Creates an object instance in a container object master
Notes : When the instance name is empty the instance object master's name is
used; for MetaDataField (or inherited) masters only the last part of
the field name is used. A duplicate instance name is rejected

Parameters:
pcContainerObjectMaster CHARACTER
The Object Master Name or GUID of the container (required)
pcInstanceObjectMaster CHARACTER
The Object Master Name or GUID of the object master to create an instance of (required)
pcInstanceName CHARACTER
The name for the new instance (optional)
pcParentInstance CHARACTER
The Instance Name or GUID of the parent of the new instance (optional)
pcPage CHARACTER
The PageKey or page number of the page to add the instance to (optional, MetaForm / MetaControlGroup containers only)
poAttributes Progress.Json.ObjectModel.JsonObject
The JsonObject with initial attribute values (optional)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created instance information
Top

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

Purpose: Creates a new object master (typically a MetaForm, MetaControlGroup
or derived)
Notes : The attributes object is keyed by attribute name with the value in the
matching JSON type (string, number, boolean); null values are ignored
when creating an object master - every attribute of a new master is
inherited anyway. A duplicate object master name is rejected

Parameters:
pcObjectMasterName CHARACTER
The name for the new Object Master (required)
pcObjectType CHARACTER
The name or GUID of the object type of the new Object Master, e.g. MetaForm or MetaControlGroup (required)
pcProductModule CHARACTER
The name or GUID of the product module to add the master to (required)
pcDescription CHARACTER
The description of the new Object Master (optional)
poAttributes Progress.Json.ObjectModel.JsonObject
The JsonObject with initial attribute values (optional)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created object master information
Top

Progress.Json.ObjectModel.JsonObject CreatePage (character, integer, character, character, character, character, character)

Purpose: Creates a page in an object master
Notes : Only applicable when the container is a MetaForm or MetaControlGroup
(or derived). A duplicate page number or page key is rejected

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID to add the page to (required)
piPageNumber INTEGER
The number of the page to create (required)
pcPageKey CHARACTER
The key of the page to create (optional, but strongly advised)
pcPageLabel CHARACTER
The label of the page to create (required)
pcTabGroup CHARACTER
The tab group the page belongs to (optional)
pcPageIcon CHARACTER
The PNG image for the Desktop, relative path (optional)
pcPageIconWeb CHARACTER
The font based icon or relative PNG file name for the Web (optional)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created page information
Top

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

Purpose: Deletes a link between two object instances or to/from the container
Notes : An empty source or target instance denotes the container itself

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID of the container holding the link (required unless an instance is specified by its GUID)
pcSourceObjectInstance CHARACTER
The Object Instance Name or GUID of the source of the link to delete, empty when the link source is the container
pcTargetObjectInstance CHARACTER
The Object Instance Name or GUID of the target of the link to delete, empty when the link target is the container
pcLink CHARACTER
The name of the link type of the link to delete (e.g. Data, TableIO, Navigation)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the deleted link information
Top

DeleteLinks (character)

Purpose: Deletes eSmartLink records for the given repository object master that are not present in ttLinkInput
Notes : ttLinkInput is prepared in UpdateRepositoryObject

Parameters:
pcObjectMasterGuid CHARACTER
The object master guid of the container
Top

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

Purpose: Deletes an object instance from a container
Notes : Child instances are cascade-deleted together with the instance,
including the links and attribute values of every deleted instance

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID of the container (required unless the instance is specified by its GUID)
pcObjectInstance CHARACTER
The Object Instance Name or GUID to delete (required)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the deleted instance information
Top

DeleteObjectInstances (character)

Purpose: Deletes eSmartObjectInstance records for the given repository object master that are not present in ttInstanceInput
Notes : Also deletes eSmartLink records that reference the deleted instance to avoid dangling references

Parameters:
pcObjectMasterGuid CHARACTER
The object master guid of the container
Top

Progress.Json.ObjectModel.JsonObject DeletePage (character, integer)

Purpose: Deletes an existing page of an object master
Notes : The object instances placed on the page are cascade-deleted
together with the page, including their child instances, links
and attribute values

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID that the page belongs to (required)
piPageNumber INTEGER
The number of the page to delete (required)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the deleted page information
Top

DeletePages (character)

Purpose: Deletes eSmartPage records for the given repository object master that are not present in ttPageInput
Notes : ttPageInput is prepared in UpdateRepositoryObject

Parameters:
pcObjectMasterGuid CHARACTER
The object master guid of the container
Top

Progress.Json.ObjectModel.JsonObject GetDataSourceFields (character)

Purpose: Returns details about a repository data source and its fields
Notes : The result contains the IDataSourceInfo properties and a field map keyed by short field name

Parameters:
pcDataSourceName CHARACTER
The data source name to inspect
Returns Progress.Json.ObjectModel.JsonObject
JsonObject containing data source details and field metadata
Top

Progress.Json.ObjectModel.JsonObject GetEventDetails ()

Purpose: Returns the event details from the current dsDesignAttributeValue dataset
Notes : The result is a JsonObject keyed by AttributeLabel, each entry contains a value and optional metadata

Returns Progress.Json.ObjectModel.JsonObject
JsonObject containing event details
Top

Progress.Json.ObjectModel.JsonArray GetObjectInstances (character, character, AttributeValueBusinessEntity, logical)

Purpose: Returns the object instances for a container and parent instance guid
Notes : This method is recursive and walks the eSmartObjectInstance hierarchy

Parameters:
pcContainerObjectMasterGuid CHARACTER
The ObjectMasterGuid of the container (object master)
pcParentInstanceGuid CHARACTER
The parent instance guid (empty string for root)
poAttributes Consultingwerk.SmartFramework.Repository.Class.AttributeValueBusinessEntity
The AttributeValueBusinessEntity instance used to retrieve design attributes
plIncludeLayoutPosition LOGICAL
Include LayoutPosition attribute (in MetaForm or MetaControlGroup container)
Returns Progress.Json.ObjectModel.JsonArray
JsonArray containing one JsonObject per instance
Top

Progress.Json.ObjectModel.JsonArray GetObjectLinks ()

Purpose: Returns the links of the currently loaded repository object
Notes : Iterates the eSmartLink temp-table. Resolves LinkType name from LinkTypeGuid.

Returns Progress.Json.ObjectModel.JsonArray
JsonArray containing link details
Top

Progress.Json.ObjectModel.JsonArray GetObjectPages ()

Purpose: Returns the pages of the currently loaded repository object
Notes : Iterates the eSmartPage temp-table

Returns Progress.Json.ObjectModel.JsonArray
JsonArray containing page details
Top

INTEGER GetPageSequence (character)

Purpose: Returns the page sequence for a page guid
Notes : Uses the already retrieved eSmartPage temp-table

Parameters:
pcPageGuid CHARACTER
The page guid to resolve
Returns INTEGER
The PageSequence value or 0 when not found
Top

Progress.Json.ObjectModel.JsonObject GetPropertyDetails (character)

Purpose: Returns the property details from the current dsDesignAttributeValue dataset
Notes : The result is a JsonObject keyed by AttributeLabel, each entry contains a value and optional metadata

Parameters:
pcObjectTypeGuid CHARACTER
The ObjectTypeGuid of the object master or object instance
Returns Progress.Json.ObjectModel.JsonObject
JsonObject containing property details
Top

Progress.Json.ObjectModel.JsonObject GetRepositoryAttributeDetails ()

Purpose: Returns repository attribute details for all attributes
Notes : Reads all records from the AttributeBusinessEntity and returns a JsonObject keyed by AttributeLabel

Returns Progress.Json.ObjectModel.JsonObject
JsonObject containing one entry per repository attribute
Top

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

Purpose: Returns the events registered against the object type of an instance
Notes : Resolves the instance (validating the container and instance name),
retrieves the events defined for the object type via the foundation
method GetObjectTypeEvents and returns, keyed by event name, the
currently registered event handler value (a string) for each event on
the instance, or null when no handler is registered.

Parameters:
pcContainerName CHARACTER
The name of the container (form or viewer) holding the instance
pcInstanceName CHARACTER
The name of the instance inside the container
Returns Progress.Json.ObjectModel.JsonObject
JsonObject keyed by event name with the registered event handler value
Top

Progress.Json.ObjectModel.JsonObject GetRepositoryObject (character)

Purpose: Returns details about a repository object master
Notes : Uses ObjectMasterDatasetModel and enriches the result with design-time attributes and events

Parameters:
pcObjectName CHARACTER
The object name to load
Returns Progress.Json.ObjectModel.JsonObject
JsonObject containing object details
Top

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

Purpose: Moves an object instance to another parent instance within a container
Notes : An empty parent instance moves the instance to the top level

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID of the container (required unless the instance is specified by its GUID)
pcObjectInstance CHARACTER
The Object Instance Name or GUID to move (required)
pcParentInstance CHARACTER
The Instance Name or GUID of the new parent instance, empty for top level
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the moved instance information
Top

CHARACTER ResolveContainerObjectMasterGuid (character, character, character, ISmartRepositoryService)

Purpose: Resolves the container object master guid from the object master
parameter or from an object instance guid
Notes : When the object master parameter is empty, the container is resolved
from the first of the two instance parameters that is a known
Object Instance GUID

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID, may be empty
pcInstance1 CHARACTER
The first Object Instance Name or GUID candidate
pcInstance2 CHARACTER
The second Object Instance Name or GUID candidate
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
The reference to the ISmartRepositoryService
Returns CHARACTER
The Object Master Guid of the container
Top

CHARACTER SetRepositoryInstanceEvent (character, character, character, character, character)

Purpose: Registers a server-side event handler for an event of an instance
Notes : Validates the container and instance via GetObjectInstanceGuid. The
handler value is stored as 'server:<class name>:<method name>`.
When pcHandlerClass is empty the container's ServerSideEventHandler
attribute is used (and an error is raised when that is also empty);
when pcHandlerClass is provided and the container does not define a
ServerSideEventHandler value yet, it is stored on the container. When
pcMethodName is empty '<Instance Name>@lt;Event Name>Handler'
is used as the method name.

Parameters:
pcContainerName CHARACTER
The name of the container (form or viewer) holding the instance
pcInstanceName CHARACTER
The name of the instance inside the container
pcEventName CHARACTER
The name of the event to register the handler for
pcHandlerClass CHARACTER
The name of the server-side event handler class (optional)
pcMethodName CHARACTER
The name of the event handler method (optional)
Returns CHARACTER
An informal message describing the registered event handler
Top

UpdateLinks (character, JsonObject)

Purpose: Updates or creates links for the repository object master and prepares ttLinkInput
Notes : Reads the 'links' JsonArray from the provided object

Parameters:
pcObjectMasterGuid CHARACTER
The object master guid of the container
poObject Progress.Json.ObjectModel.JsonObject
The repository object JSON
Top

UpdateObjectInstanceAttributes (character, JsonArray, AttributeValueBusinessEntity)

Purpose: Saves instance attribute overrides for all instances in poInstances
Notes : Recursively processes nested instances. For each instance with an "attributes"
key, loads design attributes via GetObjectInstanceDesignAttributes, applies JSON
values via ApplyAttributesFromJson, and persists via StoreObjectInstanceDesignAttributes.
Must be called after SaveChanges so instance records exist in the database.

Parameters:
pcObjectMasterGuid CHARACTER
The GUID of the container object master
poInstances Progress.Json.ObjectModel.JsonArray
The JsonArray of instance objects
poAttributeEntity Consultingwerk.SmartFramework.Repository.Class.AttributeValueBusinessEntity
The AttributeValueBusinessEntity
Top

UpdateObjectInstances (character, JsonObject, ISmartRepositoryService)

Purpose: Updates or creates object instances for the repository object master and prepares ttInstanceInput
Notes : Reads the nested 'instances' JsonArray from the provided object and sets ParentInstanceGuid based on nesting

Parameters:
pcObjectMasterGuid CHARACTER
The object master guid of the container
poObject Progress.Json.ObjectModel.JsonObject
The repository object JSON
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
Repository service used for resolving object masters
Top

UpdateObjectMasterAttributes (character, JsonObject, AttributeValueBusinessEntity)

Purpose: Saves object master attribute overrides from the "attributes" key of the input JSON
Notes : Loads current design attributes via GetObjectMasterDesignAttributes, applies values
from the JSON using ApplyAttributesFromJson, then persists overrides via
StoreObjectMasterDesignAttributes. Must be called after SaveChanges so the
object master record exists in the database.

Parameters:
pcObjectMasterGuid CHARACTER
The GUID of the object master
poObject Progress.Json.ObjectModel.JsonObject
The repository object JSON
poAttributeEntity Consultingwerk.SmartFramework.Repository.Class.AttributeValueBusinessEntity
The AttributeValueBusinessEntity
Top

Progress.Json.ObjectModel.JsonObject UpdatePage (character, integer, character, character, character, character, character)

Purpose: Updates an existing page of an object master
Notes : Only the provided (non-empty) values are updated - empty
parameters leave the current value unchanged

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID that the page belongs to (required)
piPageNumber INTEGER
The number of the page to update (required)
pcPageKey CHARACTER
The key of the page, only updated when provided
pcPageLabel CHARACTER
The label of the page, only updated when provided
pcTabGroup CHARACTER
The tab group the page belongs to, only updated when provided
pcPageIcon CHARACTER
The PNG image for the Desktop, only updated when provided
pcPageIconWeb CHARACTER
The font based icon or relative PNG file name for the Web, only updated when provided
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the updated page information
Top

UpdatePages (character, JsonObject)

Purpose: Updates or creates pages for the repository object master and prepares ttPageInput
Notes : Reads the 'pages' JsonArray from the provided object

Parameters:
pcObjectMasterGuid CHARACTER
The object master guid of the container
poObject Progress.Json.ObjectModel.JsonObject
The repository object JSON
Top

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

Purpose: Updates attributes of an object master or of an object instance
Notes : The attributes object is keyed by attribute name with the value in the
matching JSON type (string, number, boolean); null values reset the
attributes to their inherited values

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID (required unless the object instance is specified by its Object Instance GUID)
pcObjectInstance CHARACTER
The Object Instance Name or GUID (required to update object instance attributes, otherwise object master attributes are updated)
poAttributes Progress.Json.ObjectModel.JsonObject
The JsonObject with the attributes to set
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with update result information
Top

Progress.Json.ObjectModel.JsonObject UpdateRepositoryObject (JsonObject)

Purpose: Updates or creates a repository object master and synchronizes its pages, instances and links
Notes : The input JSON is expected to follow the structure returned by GetRepositoryObject.
The method loads dsObjectMaster, enables TrackingChanges, applies changes and calls SaveChanges when needed.

Parameters:
poObject Progress.Json.ObjectModel.JsonObject
The updated repository object JSON
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with basic update result information
Top

VerifyContainerSupportsPages (character, ISmartRepositoryService)

Purpose: Verifies that the container of a page supports pages
Notes : Throws a clear error when the container is not a MetaForm or
MetaControlGroup (or a derived type)

Parameters:
pcContainerName CHARACTER
The name of the container object master
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
The reference to the ISmartRepositoryService


Temp-Table Detail


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