External Class Model Flow

Whenever a user opens a graphical mapping tool or clicks the Refresh External Class Model button in UCMDB, a request is made against the adapter for the ServiceNow external class model. The adapter queries the following tables:

  1. sys_db_object – this table contains information about all the tables that compose ServiceNow schema
  2. sys_dictionary – this table contains all the table fields that compose ServiceNow schema
  3. sys_transform_entry – this table contains the information about all the staging table to target table mappings in ServiceNow.

Users can specify the list of prefixes of the ServiceNow tables that compose external class model in the adapter configuration. Using this information, the adapter builds the external class model and sends it to UCMDB.

Note that if a table that goes into the class model has a reference to a table that doesn’t go into the class model then this reference field is excluded from the external class model.

Incremental Update

Since the external class model is pretty big the adapter offers a configuration property that enables incremental class model update. Incremental update is a nice feature that greatly improves performance. Using this feature, after the adapter is started or restarted the complete external class model will be fetched by the adapter only at first request. All the subsequent requests for the class model will only fetch the modifications in the class model.

However, incremental update can’t detect deletions in the class model. That is to say, if a user deletes a table or a field in a table in ServiceNow side the incremental update won’t detect this. The incremental update only detects new items and modifications in the class model. Even with this limitation this feature is pretty handy and it is recommended to use it.

Users can enable/disable incremental update in the adapter configuration file. The configuration file is explained below.