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.

Note:  Currently, only SQL Server or Oracle data sources can be linked to Mongoose applications.

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.

See  List of basic process defaults.

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.

Related topics