Including Data from an External Database into a Mongoose Application
Mongoose-based applications can communicate with external databases hosted on various types of servers through the IDO layer. To set up communication, use these steps.
If you want to link to a non-Unicode database, use the Process Defaults form to set the process default for Non Unicode Literal. This ensures that the database indexes are scanned and accessed properly when performing queries.
Notes about the process:
- The profile that is stored with an IDO definition is used to make an ApplicationDB object within the IDO layer for read and write operations on the table, as well as for method calls to that database.
- As an alternative to building an IDO through the wizard, which
allows basic read-write functionality to the external database, you can use
IDORuntime.Context.CreateOutriggerApplicationDB in a
custom program to provide direct access to the outrigger database.
See Example: Custom Code to Communicate with an Outrigger Database for a code sample that uses this assembly.
- For DB2 databases, a third party driver package must be installed and configured. Contact Support for details.
- For Oracle and Progress databases, a license to a third party driver package must be purchased. Contact Support for details.
- There are two modes for connecting to Oracle databases:
- If the application server is the Oracle server or Oracle Client software is installed on the application server, in the Options grid, specify an option of Direct with a value of False, and in Data Source, specify the Oracle service name (SID).
- Otherwise, in the Options grid, add an option of Direct with a value of True, in Data Source, specify the Oracle server's IP address or DNS name, and add an additional option of SID with a value of the Oracle service name on the Oracle server. You can also add an option of Port with the port number to connect to. The default value is 1521. In this mode, you can perform write operations on a linked table in an Oracle database only through a configuration where the flag is cleared.
- Asynchronous event handlers cannot be used when communicating with external databases.
- You cannot use the external database and tables for any event action where the workflow must be suspended.
- User-defined fields cannot be used when communicating with external databases.
- All external tables referenced in an IDO must exist in the same database.
- RowPointer and RecordDate properties are used by Mongoose but do not exist in external tables, so those IDO properties are derived instead of pointing to base table columns.
- A called Oracle IDO method must be a function with a return type of integer.
- Due to driver limitations, these data-types are not supported for linked tables in a Progress database: LVARBINARY, BLOB, LVARCHAR, CLOB, BINARY, VARBINARY, RECID, TINYINT, BIGINT.
- For Postgres databases, the BIT data-type is not supported because IDO Properties have no equivalent data-type.
- Due to security requirements, you can perform read and write operations on a linked table in a DB2, Oracle, Postgres, or Progress database only through a configuration, where the flag is cleared.
- Due to driver limitations, you can perform write operations on a linked table in a DB2 or Progress database only through a configuration, where the flag is cleared.