Properties of JSDO
- Last Updated: January 23, 2026
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
Every JSDO has several built-in properties and supports the creation of user-defined properties to manage its state. We have already introduced the following JSDO built-in properties:
- Table and field reference properties that provide access to table data
loaded into JSDO memory and the
recordproperty, which provides access to individual record objects on a given table reference (see How JSDO memory works) - The
autoApplyChangesproperty on a JSDO, which indicates whether record change operations that complete with any kind of error cause the affected records to automatically revert to their values prior to the record change in JSDO memory (see Error handling for Data Object operations)
Four additional built-in properties are available for access on a JSDO:
-
autoSort— Abooleanproperty on a JSDO and its table references that indicates if record objects are sorted automatically at the completion of a supported JSDO operation that updates JSDO memory. In addition to setting this property totrue(the default), in order to enable automatic sorting, you must invoke one or both of thesetSortFields( )andsetSortFn( )methods to specify how associated record objects are to be sorted—using specified sort fields or a user-defined sort function, respectively. You can set and reset this property at any time during the life of a JSDO to change what table references in JSDO memory are automatically sorted. -
caseSensitive— Abooleanproperty on a JSDO and its table references that indicates if comparisons ofstringfields performed by supported JSDO operations on record objects in JSDO memory are case sensitive or case-insensitive for the affected table references. The setting of this property affectsstringcomparisons only for merging record objects into JSDO memory using theaddRecords( )method and for the sorting of record objects in JSDO memory, including automatic sorting using theautoSortproperty and manual sorting using thesort( )method. You can set and reset this property at any time during the life of a JSDO to change the case sensitivity of these supportedstringcomparisons for selected table references in JSDO memory. However, note that any defaultstringcomparisons that you perform directly using JavaScript are case sensitive following JavaScript rules, regardless of thecaseSensitiveproperty setting. -
name— Astringproperty that returns the name of the Data Object resource for which the JSDO is created. You must set this value either directly or indirectly using theprogress.data.JSDOclass constructor when you instantiate a JSDO. You can read the property on the JSDO after the JSDO is created. -
useRelationships— Abooleanproperty that when set totruemakes all data-relations active in JSDO memory so that searches on a child table reference involve only records related to its parent. In addition, record objects created in a child table have their key fields automatically set in relation to their parent. When set tofalse, searches on a child table reference involve all record objects stored in the JSDO table, regardless of data-relations, and any record objects created in a child table have no automatic settings for their key fields. You can set and reset this property at any time during the life of a JSDO to change the effect of data-relations on JSDO memory.
In addition to these JSDO built-in properties, you can set additional
initialization properties in the class constructor, along with the JSDO name property itself. These initialization properties, which you
cannot access after the JSDO is created, allow you to specify that certain JSDO methods are
called during instantiation, including:
- Automatically calling the
fill( )method to initialize JSDO memory as the object is created - Subscribing handler callbacks to JSDO events, especially to the
beforeFillandafterFill(or thebeforeReadandafterRead) events in order to handle the automatic execution of thefill( )method
For more information on setting the JSDO name and initialization properties in the JSDO
class constructor, see Create and manage access to a JSDO instance.
Any JSDO also supports the creation of user-defined properties that you can
use to store custom state information to help manage a given JSDO instance. You can create and
access these user-defined properties using a set of JSDO built-in methods. Note that the JSDO
reserves a subset of user-defined properties to support some of its behavior (currently, only
the "server.count" user-defined property). For more
information on working with user-defined properties, see: