Connections to External Databases for Value Lists
You can set M-Files to update value lists to and from an external database.
This section tells you how to set value lists to use an application connection to an external database. To use the legacy database connection, see the section "Using the Legacy Database Connection for Value Lists".
Prerequisites
Take note of this important information before you start the setup:
- Before you set up an application connection to an external database, you must have an
external object type connector installed and enabled.
- The connector must support the application connection. You can use M-Files
OLE
DB External Object Type Connector,
which is normally installed to the vault but is disabled.
- To use the connector, a license is not necessary.
- For instructions on adding connectors and managing vault applications, see Adding a Connector and Installing and Managing Vault Applications.
- If you use the Ground Link service, the connector must be enabled on the Ground Link proxy. For instructions, see Configuring External Object Types over Ground Link. If you use a local service, the connector must be enabled in the vault.
- The connector must support the application connection. You can use M-Files
OLE
DB External Object Type Connector,
which is normally installed to the vault but is disabled.
- If you use replication and application connection to an external database service, you must configure the connection separately for each vault in the replication scheme. Make sure that the necessary configuration changes are also made to each vault. We also recommend that you read the section Replication of External Objects of the document Replication and Archiving - User's Guide.
- It is not possible to include the configuration for External Object Type Connector to replication packages.
- In SELECT FROM statements, the columns are selected in order of appearance. There is no relation between column and property names, which is why the order must be the same in the SELECT FROM and INSERT INTO statements, and SELECT FROM and UPDATE statements. Also, columns not used in the INSERT INTO and UPDATE statements must always be listed last in the SELECT FROM statement.
To use a connection to external database and to open the service configuration:
-
- Open M-Files Admin.
- In the left-side tree view, expand an M-Files server connection.
- Expand Document Vaults.
- Expand a vault.
- Expand Metadata Structure (Flat View).
-
Click Value Lists.
Result:The value list listing is opened in the right pane.
-
In the right-pane listing, double-click the value list.
Result:The Value List Properties dialog is opened.
- Go to the Connection to External Database tab and enable the option Use a connection to an external database to import and modify objects that reside in the external database.
- Select Application connection.
-
In Service, select the service.
Option Description M-Files OLE DB at vault <name of the vault> Select this option to use the local service. M-Files OLE DB from Ground Link proxy <name of the Ground Link proxy> Select this option to establish the connection with a remote service through Ground Link. The services that have the (OK) suffix, have a configuration for the value list.
Result:Information of the service configuration with possible errors is shown. -
Click Configure.
Result:The External Object Type Connector dialog is opened.
- Expand .
-
In Provider, select the provider for the external
database connection.
Example:Microsoft OLE DB Driver for SQL Server.Note: The list of providers shows all the available providers on the server machine that runs the external object type connector. Thus, it can include providers that cannot be used in external database connections.The syntax of the connection string is different for each Object Linking and Embedding Database (OLE DB) supplier used for establishing the connection to the external database. If Open Database Connectivity (ODBC) is necessary to create the connection, the data store must be accessed over OLE DB and ODBC. For a list of recommended providers, see Provider Recommendations for External Database Connections.
- Optional: If you selected Custom provider (manual configuration), in Custom provider, specify the provider.
-
Under Connection to External Database, complete one
of these steps:
Option Description Specify the other settings. The correct values are different for each provider and external database.
For more information, select a setting and see the Info tab.
In Advanced Options, enter the connection string. Use this option if it is not possible to use the other settings with the selected provider. When you enter the connection string, make sure that all values are correctly enclosed and the connection string has the necessary formatting. - Optional:
Under Optional SELECT Statements, define the
settings.
Note: The application connection does not support the Connections to External Databases settings in the Advanced Vault Settings section in M-Files Admin. To use these settings, define them here.
-
Under Service-Specific Settings, in SELECT Statement, write the SELECT
statement for getting source columns from the external database.
Examples of SELECT statements:
SELECT CustomerNumber, CustomerName FROM Customer
SELECT ID, Name + ' ' + Department FROM Company
SELECT ID, Name, CustomerID FROM Contacts
SELECT * FROM Customer
Tip: You can write a multi-line statement. - Click Save.
- Optional:
To configure a remote service:
-
To authenticate the common user, open the Dashboard
tab and click Authenticate.
Result:The Log In dialog is opened.
-
Enter the common user credentials and click Log
In.
Note: The ODBC driver does not support all special characters. If your connection uses ODBC, the values that contain special characters must be enclosed in curly brackets. The correct format is {username or password}.
- In the dialog that is opened, click OK.
-
Click Save to get the source columns.
- Optional: To configure a remote service, repeat step 16.
Note: You cannot save the configuration if there are no changes.Result:The dialog closes and the configuration refreshes. On the Configuration tab, the Column Mappings section shows the source columns that your SELECT statement returned from the external database.
- On the Configuration tab, go to Column Mappings and expand a source column node.
-
In Mapping Type, specify how the source column is mapped to
M-Files.
- To map a source column as the external ID, select Object ID.
- To map the source column as the name of the value list item, select Name or Title.
- To map the the source column as the ID of the owner value list item, select Owner.
- To map the the source column as the ID of the value list's parent item, select Parent.
For more information on value list hierarchy, see Value list hierarchy. - Optional:
If the Mapping Type is Name or
Title, specify the setting Use in Insert
Operation and define the related statements.
If you want to... Complete the following steps: Allow read-only access Set the Use in Insert Operation setting to No. Do not specify the statements in this table. Allow users to create but not update or delete information - Set the Use in Insert Operation to Yes.
- Under Service-Specific Settings, in INSERT INTO statement, write the two statements in this table.
Statement Definition Examples UPDATE When you edit an object in M-Files, M-Files Server edits the corresponding record in the external database using an UPDATE statement. Use a question mark (?) to signal columns to be updated. UPDATE Customers SET CustomerName = ? WHERE CustomerID = ?
UPDATE Contact SET Name = ?, CustomerID = ? WHERE ContactID = ?
INSERT INTO When you create a new value list item in M-Files, M-Files Server adds a corresponding record into the external database using an INSERT INTO statement. Use a question mark (?) to indicate the value of each column. Note: The INSERT INTO statement input to M-Files does not define a value for the ID column. The database should be set up to automatically provide an ID for new records. For example in Microsoft SQL Server databases, set the type of the ID column as identity. If the external database cannot produce new ID values, the INSERT INTO statement cannot be used.INSERT INTO Customers( CustomerName ) VALUES( ? )
INSERT INTO ContactPersons( Name, CustomerID ) VALUES( ?, ? )
Get ID SELECT After a new record has been created with the INSERT INTO statement, M-Files Server gets the ID of the newly created record with this SELECT statement. SELECT MAX( CustomerID ) FROM Customer
DELETE When you delete an object from M-Files, M-Files Server deletes the corresponding record in the external database using a DELETE statement. Use a question mark (?) for the ID of the record to be deleted. DELETE FROM Customers WHERE CustomerID = ?
DELETE FROM Contacts WHERE ContactID = ?
- Repeat the steps from 21 to 23 for all the necessary source columns.
-
Under General Settings, set Enabled to Yes.
Tip: You can enable and disable the external database connection also with the Disabled check box on the Connection to External Database tab of the Value List Properties dialog.
If the connection is disabled, information between the vault and the external database is not synchronized.
- Optional:
To configure a remote service:
- Click OK to close the Value List Properties dialog.