About Non-Mongoose Data Used in Mongoose Applications
You can incorporate data from a non-Mongoose source, for example a legacy application that is being converted to a Mongoose base. However, certain schema elements required by Mongoose often do not exist in the non-Mongoose data source, as described in this topic.
To incorporate these data sources into your Mongoose-based application, you must create views that provide the schema elements required by Mongoose.
See Including Data from a Different SQL Database into a Mongoose Application or Including Data from an Oracle Database into a Mongoose Application.
Unicode Support
Mongoose databases are designed to support Unicode, but other data sources might not support Unicode. To avoid improper scanning of indexes in the non-Mongoose data sources, you must set a process default in Mongoose.
Optimistic Locking
Mongoose databases use the RecordDate property to provide optimistic locking. In many cases, however, the non-Mongoose data source does not have a RecordDate column. So, one of the major problems with using non-Mongoose data sources is the coordination of optimistic locking. Both the IDO Linked Databases form and the IDO Linked Tables form provide options to specify a column to be used for optimistic locking in the non-Mongoose data source.
These options include:
- Allowing Mongoose to identify whether a RecordDate column exists in the non-Mongoose data source
- Designating a default column on the IDO Linked Databases This is the name of a column that is normally used for optimistic locking by the non-Mongoose tables, if such a column exists.
- Designating a column for optimistic locking on the IDO Linked Tables form
If none of these options exist, the literal string "NODATE" is designated as the RecordDate value. Because this literal string is applied to any access of the non-Mongoose data source, no optimistic locking occurs.
About the Mongoose View
The created Mongoose view over the non-Mongoose data source includes the columns from the data source plus these additional columns, required by Mongoose for processing:
- RecordDate, used for optimistic locking in Mongoose. For a non-Mongoose SQL data source, the system assigns whatever column you have assigned to use for optimistic locking to this value. During run time, Mongoose checks to see if this value has been modified elsewhere since the data was first queried, before your modifications. For an Oracle data source, this value is derived.
- RowPointer, required to be a value that is unique for the entire table. For an Oracle data source, this value is derived.
- AddMongooseFields, with a literal value of 1, which is used internally.
After this view is created, you can create IDOs and forms, and perform read and write operations on the linked database table like any other Mongoose database table. One exception is that you cannot use the non-Mongoose database and tables for any event action where the workflow must be suspended.
See the Guide to the Application Event System.