|
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
*/
|