Property - Property Handle
Property handles are used to handle persistent or transient data sources. A data source is a collection, object instance or an elementary data item. A data source contains the data for a property of a specific object.
A property handle usually handles a collection of subsequent object instance. In special cases the collection is singular (e.g. direction for a Person is exactly one Address object instance). In other cases the instance is elementary (as e.g. the given_names of a Person).
A property handle has a cursor function that allows to select one of the instances in the collection as the "current" instance. Only from the selected instance you can retrieve data by means of subsequent property handles and the value() property for elementary data sources.
When running import/export in a client/server environment, the file name passed in sFilePath has to be a symbolic file name which is defined in the file catalog on client and server side. The export/import is executed on server. The result is transferred finally to the client location defined in the client's file catalog.
One could define typed property handles using a property handle template class PH<type>. This requires that a C++ class header file has been created for the referenced type. In this case, attributes and relationships could be accessed directly by referring to corresponding member names. In this case, however, the system looses control over modifications, which causes missing events and in some cases database inconsistency. Moreover, object model changes requires recompiling the complete application, in many cases.
Hence, generic access is more appropriate, even though one may loose 2 or 3% performance. Generic access uses value handles for accessing attributes and property handle hierarchies in order to access subordinated collections.
In order to access attributes, value handles are provided. Value handles support arithmetical operations and allow updating attribute values. Values in an instance can be accessed by value(name).
Property handles form a tree that defines a specific view in an application. When defining this view once the property handles can be used as long as the application follows the defined "view". When defining a property handle for AllPersons, which is an extent in the database, you may define subordinated property handles for children and company, which refer to the persons children and the company the person is working for. When selecting another person in the AllPersons property handle, the collections for children and company will change automatically, i.e. when changing the selection in a parent property handle the collections for all subordinated property handles are adjusted automatically.
In order to access a subordinated property handle, an instance has to selected in the parent property handle. When changing the selection in the parent property handle, all subordinated property handles will loose their current selection.
Usually a property handle shows all the elements that have been added to the data source. You can restrict the number of visible instances by setting a filter (filter(expression)) using an expression or a C++ context function function, which overloads the doAfterRead() handler.
Property handles support set operations or more complex operation paths. Set operations are provided as property handle functions. Extended features are provided with operation paths, which can be opened as property handle data source.
- 1. Administration - Administration functions
- 2. Access - Basic access functions
- 2.1. Locking - Locking features
- 2.2. Indexes and keys - Access functions - keyed access
- 2.3. Operation - Access functions - operations
- 2.4. Status - Access functions - status
- 2.5. Optimizing - Access functions - optimizing
- 2.6. Extensions - Access functions - property extensions
- 3. Meta-information - Meta-information function
- 4. Context function support - Context function support
- 5. Versioning - Versioning features
- 9. Maintenance - Maintenance functions
- Property - Create property handle
- accessKey - Access key property
- accessKeyDefinition - Get access key definition
- accessMode - Access mode
- accessVersion - Instance access version
- accessible - Is property accessible
- active - Is property an active property
- allocateArea - Allocate instance area
- append - Append instance to collection
- appendKey - Append key to collection
- appendReference - Append persistent instance
- appendResult - Append string to result
- attributeExtension - Provide attribute extension value
- attributeExtensionExist - Does attribute extension exist?
- attributeExtensionsCount - Get number of attribute extensions
- autoNumber - Get value for auto-number
- autoSelect - Automatic instance selection
- average - Get average value for a collection
- canCreate - Can instance(s) be created for collection
- canDelete - Can selected instance be deleted
- canInsert - Can instance(s) be inserted into collection
- canRemove - Can selected instance be removed from collection
- canRename - Can selected instance be renamed
- canUpdate - Can selected instance be modified
- canUpdateCollection - Can collection be updated
- cancel - Cancel selection
- changeAccessKey - Set Access Key
- changeBuffer - Change collection buffer count
- changeCache - Change cache size
- check - Check property handle
- checkCollection - Check collection consistency
- checkValidity - Check property handle validity
- close - Close Property Handle
- closeAll - Close all property handles for the same cursor object
- collectionLocked - Is collection locked
- collectionLockedForUpdate - Is collection locked for update
- collectionLoid - Local collection identity
- collectionProperty - Get parent collection property handle
- collectionSize - Collection size property
- collectionUpdateCount - Number of changes for a collection
- compareAccessKey - Compare keys according to current sort order
- compareKey - Compare key values for passed key
- comparePrimaryKey - Compare two identifying key values
- contextEnabled - Context enabled property
- copy - Copy instance
- copyCollection - Copy collection
- copyData - Copy data from an instance area
- copyExtensions - Copy property extensions
- copyFilter - Copy filter condition
- count - Get number of instances in a collection
- createAttributeExtension - Create attribute extension
- createDocument - Create document
- createVersion - Create new instance version
- currentKey - Current key property
- currentKeyDefinition - Current key definition property
- currentPosition - Current index property
- currentTypeDefinition - Current type definition property
- cursorCopy - Create copy for property handle
- cursorEquals - Is property handle the same
- database - Database property
- dereference - Dereference collection handle
- deviation - Calculate standard deviation value for a collection
- dictionary - Dictionary property
- dirty - Is property handle dirty
- duplicate - Duplicate instance
- erase - Delete/remove instance from collection
- eraseCollection - Delete/remove all instance in a collection
- eraseExtension - Remove property extension
- eraseIndexes - Delete all indexes
- eventHandling - Event handling property
- execute - Execute Handle
- executeExpression - Execute expression
- executeTemplate - Execute OSI inline template
- expandFilter - Expand filter condition
- exportData - Export data to file
- extensionExist - Does property extension exist?
- extensionProperty - Get extension property handle
- extensionValue - Get extension value handle
- extensionsCount - Number of property extensions
- filter - Filter condition
- first - Try selecting first instance in a collection
- fixKeyComponents - Fix key component values
- genericAccessKeyType - Generic access key type property
- genericAttributeType - Generic attribute type property
- get - Get property instance
- getKey - Get key at position
- getRelative - Get relative instance
- globalLoid - Get local unique identifier (LOID)
- group - Grouping operation (not yet implemented)
- guid - Get global identity string for the current instance
- hasAccessKey - Does property have an access key
- hasCurrentKey - Is primary key defined for current instance
- hasFilter - Has a filter been set
- hasGenericAttributes - Does the instance have generic attributes
- hasInstances - Has property instances
- hasParent - Does property has a parent
- hasPrimaryKey - Is primary key defined for property type
- hasPropertyDefinition - Is description available
- hasSuperset - Does collection have a super set
- hierarchyPath - Get Accesspath for property handle hierarchy
- identityPath - Get property identity string
- importData - Import data from external file
- initializeAttributes - Initialize instance attributs
- initializeInstance - Provide initialized instance
- initializedInstance - Is instance initialized instance
- insert - Insert instance to collection
- insertGlobal - Add instance globally to collection
- insertKey - Insert key in collection
- insertObject - Insert object by object identity
- insertReference - Insert persistent instance
- instanceAction - Execute instance action
- instanceArea - Provide instance area
- instanceLocked - Check whether instance is locked
- instanceLoid - Get local instance identity (LOID)
- instanceRefresh - Refresh instance data
- instanceUpdateCount - Get instance modification count
- instanceUpdated - Check for external instance modifications
- intersect - Intersect collections
- isAutoSelection - Auto selection property
- isBasetypeProperty - Is property member of the base type
- isClient - Is client property
- isCollection - Is property a collection?
- isCollectionDeleting - Is collection going to be deleted?
- isCursorCopy - Is property handle a copy handle
- isCursorOwner - Is property handle owner of the property handle cursor
- isInstanceDeleting - Is currently selected instance going to be deleted?
- isInstanceUpdating - Is instance updating
- isNewInstance - Has instance just being created
- isOperationPath - Is property handle an operation
- isParentOf - Is property handle parent
- isPathProperty - Is property a path expression
- isProperty - Is property a property with the name passed?
- isServer - Is property a server handle?
- isShareBaseHandle - Is property handle for base structure
- isSorted - Is collection ordered
- isTransient - Is property transient
- isTransientAttribute - Is property a transient attribute
- isValid - Check for valid property handle
- isValidForParent - Is subhandle valid for parent passed
- isVariableType - May type of instances change?
- key - Extract key value
- keyCheck - Key check property
- keyDefinition - Get key definition
- keyFilter - Set filter condition based on key value
- keyInstance - Key instance property
- last - Try selecting last instance in a collection
- loadData - Load data by means of property source definitions
- locateKey - Locate instance according to key
- locateLoid - Locate object by identity
- locatePosition - Locate instance by position
- located - Is instance located in the collection index
- locatedKey - Get located key value
- lockCollection - Lock collection
- lockCollectionForUpdate - Lock collection
- lockInstance - Lock instance
- markUsed - Mark property handle as used
- maximum - Get maximum value for a collection
- minimum - Get minimum value for a collection
- minus - Subtract collections
- modified - Modified property
- move - Move instance to another collection
- moveDown - Move instance down
- moveUp - Move instance one position up
- next - Try selecting next instance in collection
- nextKey - Locate next key value
- nextVersion - Select next instance version
- objectSpace - Get Database Object handle
- oldValue - Get value before being modified
- open - Create property handle
- openExtern - Open property handle for external file
- openHierarchy - Open hierarchy property handle
- operator!= - Are property handles different?
- operator= - Assign property instances
- operator== - Are property handles equal?
- orderBy - Order collection by attribute list
- origin - Get original property handle
- parent - Get parent property
- plus - Union two collections
- position - Select an instance relative to the current selection
- positionHierarchy - Select hierarchy for property handle
- positionTop - Position parent collections
- positioned - Is instance positioned
- prepareAccess - Check position
- prepareInstanceUpdate - Prepare instance for update
- previous - Try selecting previous instance in collection
- previousKey - Locate previous key value
- previousVersion - Select previous instance version
- primaryKey - Extract identifying key value
- primaryKeyDefinition - Get key definition for primary key
- property - Provide property handle
- propertyAction - Execute property action
- propertyContext - Get property context
- propertyDefinition - Property definition property
- propertyPath - Get property path for property handle
- provide - Provide instance
- provideExtension - Create property extension
- provideGUID - Provide Global Instance Identifier (GUID)
- provideGenericAttribute - Provide generic attributes for new instance
- provideGlobal - Provide instance outside the transaction
- readBuffer - Fill instance buffer from position
- readOnly - Is property read only
- rebuildIndex - Rebuild index
- refresh - Refresh selected instance
- relativeCount - Get relative count
- relativePosition - Get relative position of current or last instance
- releaseBuffer - Release instance buffer
- removeAttributeExtension - Remove attribute
- removeFromCollection - Remove instance from collection
- removeOrder - Remove transient order
- rename - Rename instance
- reopen - Reopen property
- repairCollection - Repair collection
- repairIndex - Repair Index for current collection
- repairKey - Check key value(s) in collection
- reset - Reset instance
- resetBuffer - Cancel all buffered instances
- resetTransientReference - Reset transient property handle
- resetVersion - Reset instance or owner scope version
- result - Result property
- resultProperty - Get result property for property handle
- save - Store instance
- select - Create a subset from a collection
- selected - Is instance selected
- self - - internal feature (not documented)
- setAccessVersion - Convert Timestamp to instance version
- setContextVariables - Set context variables
- setDynamicLength - Activate dynamic length handling
- setGenericAccessKeyType - Change type for generic index
- setGenericAttributeType - Change generic attribute type property
- setTransientReference - Setting property handle for transient property (reference)
- setType - Set type for weak-typed collection
- statistic - Calculate statistic values for a collection
- storeData - Store data by means of property source definitions
- sum - Calculate sum value for a collection
- superset - Get collection handle for super set (base collection)
- supersetRoot - Get topmost super set
- top - Position to top of collection
- tryGet - Try selecting an instance in a collection
- typeContext - Get type context
- typeDefinition - Type definition property
- unlockCollection - Unlock collection
- unlockCollectionForUpdate - Unlock collection for update
- unlockInstance - Unlock instance
- updateVersion - Update instance version
- use - Use passed property handle
- validate - Check whether property handle is valid
- validateForParent - Is property handle still valid for parent
- value - Provide value handle
- variance - Calculate variance value for a collection
- version - Get version number for selected instance
- writeProtected - Persistent write protection property
- ~Property - Destructor