Top Method Summary
Options Name Purpose
AddCustomizationResultCode (JsonObject, character, ISmartRepositoryService) Adds the customization result code of a container to a response
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 CreateCustomizedObjectMaster (character, character, character, character) Creates a customized variant of an object master for a customization result code
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 CreateLink (character, character, character, character, character) Creates a link between two object instances or to/from the container Notes : SCL-5905: A customization result code addresses the customized variant of the container, the link is added to the variant and may refer to instances of the base object master @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) @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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 CreateObjectInstance (character, character, character, character, character, JsonObject, character) Creates an object instance in a container object master Notes : SCL-5905: A customization result code addresses the customized variant of the container, the instance is added to the variant and may be placed on a page and below a parent instance of the base object master. See the overload without the code for the details @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) @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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 CreatePage (character, integer, character, character, character, character, character, character) Creates a page in an object master Notes : SCL-5905: A customization result code addresses the customized variant of the container, the page is added to the variant. The page number and page key are unique across the base object master and its variants @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) @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @return JsonObject with the created page information */
Progress.Json.ObjectModel.JsonObject CreateProductModule (character, character, character, character, character) Creates a new repository product module (SmartModule record) Notes : SCL-6012. A product module is not an object master, the record is created through the ModuleDatasetModel, so the validation of the ModuleBusinessEntity applies. A duplicate product module name is rejected - the other tools address a product module by its name alone (ISmartRepositoryService:GetProductModuleGuid) @param pcProductModule The name of the new product module (required) @param pcDescription The description of the new product module (optional) @param pcProduct The product code or GUID of the product the module belongs to (required) @param pcDataFolder The relative data folder for the repository data export of the module (optional) @param pcPackage The package name of the module (optional) @return JsonObject with the created product module 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 */
Progress.Json.ObjectModel.JsonObject DeleteLink (character, character, character, character, character) Deletes a link between two object instances or to/from the container Notes : SCL-5905: A customization result code addresses the customized variant of the container. The links of the base object master are read-only through a variant @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) @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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 */
Progress.Json.ObjectModel.JsonObject DeleteObjectInstance (character, character, character) Deletes an object instance from a container Notes : SCL-5905: A customization result code addresses the customized variant of the container. The instances of the base object master are read-only through a variant @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) @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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 */
Progress.Json.ObjectModel.JsonObject DeletePage (character, integer, character) Deletes an existing page of an object master Notes : SCL-5905: A customization result code addresses the customized variant of the container. The pages of the base object master are read-only through a variant @param pcObjectMaster The Object Master Name or GUID that the page belongs to (required) @param piPageNumber The number of the page to delete (required) @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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.JsonArray GetCustomizationResultCodes () Returns the customization result codes of the repository
Progress.Json.ObjectModel.JsonArray GetCustomizedVariantCodes (character) Returns the customization result codes of the customized variants of a base object master
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 */
CHARACTER GetRecordSource (character) Returns the source of a record of the merged view of a customized variant
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 GetRepositoryInstanceEvents (character, character, character) Returns the events of an instance in a container with the registered event handlers
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 GetRepositoryObject (character, character) Returns the repository object with its instances, pages and links
CHARACTER MapCustomizedInstanceGuid (character) Maps the ObjectInstanceGuid of a customized (shadow) instance to the ObjectInstanceGuid of its base instance
MergeBaseObjectMaster (ObjectMasterBusinessEntity, character, character) Merges the pages, instances and links of the base object master into the dsObjectMaster dataset holding the records of a customized variant
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 */
Progress.Json.ObjectModel.JsonObject MoveObjectInstance (character, character, character, character) Moves an object instance to another parent instance within a container Notes : SCL-5905: A customization result code addresses the customized variant of the container. The instances of the base object master are read-only through a variant, the new parent may be an instance of the base object master @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 @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @return JsonObject with the moved instance information */
RecordOrigin (character, character, character) Records the origin of a record of the merged view of a customized variant
CHARACTER ResolveContainerObjectMasterGuid (character, character, character, character, ISmartRepositoryService) Resolves the container object master guid from the object master parameter or from an object instance guid and applies the customization result code
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 ResolveCustomizedInstanceGuid (character, character, ISmartRepositoryService) Returns the ObjectInstanceGuid of the customized (shadow) instance of an instance of the base object master addressed through a customized variant
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 */
CHARACTER SetRepositoryInstanceEvent (character, character, character, character, character, character) Registers a server-side event handler for an event of an instance
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 */
Progress.Json.ObjectModel.JsonObject UpdatePage (character, integer, character, character, character, character, character, character) Updates an existing page of an object master Notes : SCL-5905: A customization result code addresses the customized variant of the container. The pages of the base object master are read-only through a variant @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 @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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 UpdateRepositoryAttributes (character, character, JsonObject, character) Updates attributes of an object master or of an object instance Notes : SCL-5905: A customization result code addresses the customized variant of the object master. The attribute values of a base instance updated through a variant are stored on the customized (shadow) instance of the variant, resetting the last override removes the customized instance again. See the overload without the code for the attributes format @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 @param pcCustomizationResultCode The customization result code of the variant, empty for the base object master @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

AddCustomizationResultCode (JsonObject, character, ISmartRepositoryService)

Purpose: Adds the customization result code of a container to a response
Notes: SCL-5905: Only added for a customized variant

Parameters:
poResponse Progress.Json.ObjectModel.JsonObject
The JsonObject of the response
pcContainerGuid CHARACTER
The ObjectMasterGuid of the container
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
The reference to the ISmartRepositoryService
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 CreateCustomizedObjectMaster (character, character, character, character)

Purpose: Creates a customized variant of an object master for a customization
result code
Notes: SCL-5905: The variant has an empty delta - no pages, instances, links
or attribute values - and lives in its own product module, the module
of the base object master applies when no module is provided

Parameters:
pcObjectMaster CHARACTER
The Object Master Name or GUID of the base object master (required)
pcCustomizationResultCode CHARACTER
The customization result code of the variant (required)
pcProductModule CHARACTER
The name or GUID of the product module of the variant (optional)
pcDescription CHARACTER
The description of the variant (optional)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created variant information
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 CreateLink (character, character, character, character, character)

Purpose: Creates a link between two object instances or to/from the container
Notes : SCL-5905: A customization result code addresses the customized
variant of the container, the link is added to the variant and may
refer to instances of the base object master

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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 CreateObjectInstance (character, character, character, character, character, JsonObject, character)

Purpose: Creates an object instance in a container object master
Notes : SCL-5905: A customization result code addresses the customized
variant of the container, the instance is added to the variant and
may be placed on a page and below a parent instance of the base
object master. See the overload without the code for the details

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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 CreatePage (character, integer, character, character, character, character, character, character)

Purpose: Creates a page in an object master
Notes : SCL-5905: A customization result code addresses the customized
variant of the container, the page is added to the variant. The
page number and page key are unique across the base object master
and its variants

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created page information
Top

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

Purpose: Creates a new repository product module (SmartModule record)
Notes : SCL-6012. A product module is not an object master, the record is
created through the ModuleDatasetModel, so the validation of the
ModuleBusinessEntity applies. A duplicate product module name is
rejected - the other tools address a product module by its name
alone (ISmartRepositoryService:GetProductModuleGuid)

Parameters:
pcProductModule CHARACTER
The name of the new product module (required)
pcDescription CHARACTER
The description of the new product module (optional)
pcProduct CHARACTER
The product code or GUID of the product the module belongs to (required)
pcDataFolder CHARACTER
The relative data folder for the repository data export of the module (optional)
pcPackage CHARACTER
The package name of the module (optional)
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the created product module 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

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

Purpose: Deletes a link between two object instances or to/from the container
Notes : SCL-5905: A customization result code addresses the customized
variant of the container. The links of the base object master are
read-only through a variant

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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

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

Purpose: Deletes an object instance from a container
Notes : SCL-5905: A customization result code addresses the customized
variant of the container. The instances of the base object master
are read-only through a variant

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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

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

Purpose: Deletes an existing page of an object master
Notes : SCL-5905: A customization result code addresses the customized
variant of the container. The pages of the base object master are
read-only through a variant

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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.JsonArray GetCustomizationResultCodes ()

Purpose: Returns the customization result codes of the repository
Notes: SCL-5905: The customization results (SmartCustomizationResult) with
their code, description and customization type, in the order of the
codes

Returns Progress.Json.ObjectModel.JsonArray
The JsonArray with one JsonObject per customization result
Top

Progress.Json.ObjectModel.JsonArray GetCustomizedVariantCodes (character)

Purpose: Returns the customization result codes of the customized variants
of a base object master
Notes: SCL-5905

Parameters:
pcObjectName CHARACTER
The name of the base object master
Returns Progress.Json.ObjectModel.JsonArray
The JsonArray with the customization result codes, in alphabetical order
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

CHARACTER GetRecordSource (character)

Purpose: Returns the source of a record of the merged view of a customized
variant
Notes: SCL-5905

Parameters:
pcRecordGuid CHARACTER
The guid of the page, instance or link
Returns CHARACTER
"base" for a record of the base object master, "variant" otherwise
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 GetRepositoryInstanceEvents (character, character, character)

Purpose: Returns the events of an instance in a container with the
registered event handlers
Notes: SCL-5905: A customization result code addresses the customized
variant of the container, the handlers of a base instance
customized by the variant are those of its customized instance

Parameters:
pcContainerName CHARACTER
The name of the container (form or viewer) holding the instance
pcInstanceName CHARACTER
The name of the instance inside the container
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject with one property per event, the value is the registered handler or null
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 GetRepositoryObject (character, character)

Purpose: Returns the repository object with its instances, pages and links
Notes: SCL-5905: A customization result code addresses the customized
variant of the object master (SCL-5899). The response of a variant
is the merged container: the pages, instances and links of the base
object master and of the variant, each marked with its source
("base" or "variant"). A base instance customized by the variant is
marked as customized and carries the attribute values of its
customized (shadow) instance. Every attribute value names the layer
it comes from (inheritedFrom). The response of a base object master
lists the customization result codes of its variants

Parameters:
pcObjectName CHARACTER
The name of the repository object
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the repository object details
Top

CHARACTER MapCustomizedInstanceGuid (character)

Purpose: Maps the ObjectInstanceGuid of a customized (shadow) instance to the
ObjectInstanceGuid of its base instance
Notes: SCL-5905: Returns the given guid when it does not belong to a
customized instance

Parameters:
pcObjectInstanceGuid CHARACTER
The ObjectInstanceGuid to map
Returns CHARACTER
The ObjectInstanceGuid of the base instance or the given guid
Top

MergeBaseObjectMaster (ObjectMasterBusinessEntity, character, character)

Purpose: Merges the pages, instances and links of the base object master into
the dsObjectMaster dataset holding the records of a customized variant
Notes: SCL-5905: Follows the merge rules of SmartRepositoryService:
FetchRepositoryObject (SCL-5900) - the pages are merged by page
number, an instance of the variant with the name of a base instance
is the customized (shadow) instance of that base instance, the base
instance keeps its identity and the customized instance is recorded
in the ttRecordOrigin temp-table, so that the attribute values of the
base instance are read from it. Parent and link references of the
variant to a customized instance are mapped to the base instance.
All records carry the ObjectMasterGuid of the variant as
ContainerObjectMasterGuid afterwards

Parameters:
poEntity Consultingwerk.SmartFramework.Repository.Object.ObjectMasterBusinessEntity
The ObjectMasterBusinessEntity to fetch the base object master with
pcBaseObjectMasterGuid CHARACTER
The ObjectMasterGuid of the base object master
pcObjectMasterGuid CHARACTER
The ObjectMasterGuid of the customized variant
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

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

Purpose: Moves an object instance to another parent instance within a container
Notes : SCL-5905: A customization result code addresses the customized
variant of the container. The instances of the base object master
are read-only through a variant, the new parent may be an instance
of the base object master

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
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
Returns Progress.Json.ObjectModel.JsonObject
JsonObject with the moved instance information
Top

RecordOrigin (character, character, character)

Purpose: Records the origin of a record of the merged view of a customized
variant
Notes: SCL-5905

Parameters:
pcRecordGuid CHARACTER
The guid of the page, instance or link
pcSource CHARACTER
The source of the record, "base" or "variant"
pcCustomizedObjectInstanceGuid CHARACTER
The ObjectInstanceGuid of the customized (shadow) instance of a base instance, empty when the variant does not customize the instance
Top

CHARACTER ResolveContainerObjectMasterGuid (character, character, character, character, ISmartRepositoryService)

Purpose: Resolves the container object master guid from the object master
parameter or from an object instance guid and applies the
customization result code
Notes: SCL-5905: When a customization result code is provided the customized
variant of the resolved container is returned, the container
resolved from an instance may be the base or a variant

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
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the container as resolved
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
The reference to the ISmartRepositoryService
Returns CHARACTER
The Object Master Guid of the container
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 ResolveCustomizedInstanceGuid (character, character, ISmartRepositoryService)

Purpose: Returns the ObjectInstanceGuid of the customized (shadow) instance
of an instance of the base object master addressed through a
customized variant
Notes: SCL-5905: Returns the given ObjectInstanceGuid when the container is
not a customized variant, when the instance belongs to the container
or when the variant has not customized the instance

Parameters:
pcContainerGuid CHARACTER
The ObjectMasterGuid of the container
pcInstanceGuid CHARACTER
The ObjectInstanceGuid of the instance
poRepository Consultingwerk.SmartFramework.Repository.ISmartRepositoryService
The reference to the ISmartRepositoryService
Returns CHARACTER
The ObjectInstanceGuid of the customized instance or the given ObjectInstanceGuid
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

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

Purpose: Registers a server-side event handler for an event of an instance
Notes: SCL-5905: A customization result code addresses the customized
variant of the container. The handler of a base instance is stored
on the customized (shadow) instance of the variant, a
ServerSideEventHandler bootstrapped for the container is stored on
the variant. See the overload without the code for the details

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)
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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

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

Purpose: Updates an existing page of an object master
Notes : SCL-5905: A customization result code addresses the customized
variant of the container. The pages of the base object master are
read-only through a variant

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
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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 UpdateRepositoryAttributes (character, character, JsonObject, character)

Purpose: Updates attributes of an object master or of an object instance
Notes : SCL-5905: A customization result code addresses the customized
variant of the object master. The attribute values of a base
instance updated through a variant are stored on the customized
(shadow) instance of the variant, resetting the last override
removes the customized instance again. See the overload without
the code for the attributes format

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
pcCustomizationResultCode CHARACTER
The customization result code of the variant, empty for the base object master
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       10.10.2026 15:33:35