Create custom data lookups
Creating custom data lookups involves adding a lookup value, creating the definition, and activating data lookup.
Create a custom data lookup table
Create a custom table to store lookup data.
The custom table must extend the Data Lookup Matcher Rules [dl_matcher] table. For example, this custom lookup table stores information about VIP callers and incident assignments.
| Field | Sample value |
|---|---|
| Label | VIP Caller Lookup |
| Table name | u_vip_caller_lookup |
| Extends base table | dl_matcher |
| Create new module | True |
| Add module to menu | System Policy |
Add a data lookup value to the data lookup table
The columns of a data lookup table contain both matcher and setter field data.
Before you begin
Role required: admin
About this task
Each data lookup is a query that searches for a row containing values that match the matcher fields. The data lookup then returns the value listed in the setter fields. For example, this Priority Data Lookup [dl_u_priority] table lists the combinations of impact and urgency (matcher fields) that produce a particular priority value (setter field).
| Matcher fields | Setter field |
|---|---|
| Impact | Urgency |
| 1 - High | 1 - High |
| 1 - High | 2 - Medium |
| 1 - High | 3 - Low |
| 2 - Medium | 1 - High |
| 2 - Medium | 2 - Medium |
| 2 - Medium | 3 - Low |
| 3 - Low | 1 - High |
| 3 - Low | 2 - Medium |
| 3 - Low | 3 - Low |
Procedure
In the navigation filter, enter the name of the new custom lookup table.
For example,
u_vip_caller_lookup.list.Configure the list and create new fields.
For this example, create the new fields in the following table.
Name Type Field length or Table to reference Caller Reference User [sys_user] Priority Integer Assignment Group Reference Group [sys_user_group] For more information, see Configuring lists on the ServiceNow AI Platform.
From the table list, select New and enter appropriate matcher and setter field values.
For example:
Matcher field Setter fields Caller Priority Beth Anglin 2 Fred Luddy 1 Note: Each row in a data lookup table must be unique.
Create a data lookup definition record
Data lookup requires a definition record that specifies how to set one or more field values when specified conditions are met.
Before you begin
Role required: admin
Procedure
Navigate to All > System Policy > Rules > Data Lookup Definitions.
Select New.
Select Data Lookup Rule.
Complete the Data Lookup Rule form using the following table.
| Field | Description |
|---|---|
| Name | Enter a unique name to identify the definition record. |
| Source Table | Select the table containing the fields you want to automatically update with lookup values. Data Lookup Definitions are not inherited by extension tables. For example, a Data Lookup Definition on the Task table cannot match values on the Incident table. |
| Matcher Table | Select the table containing the lookup values. This table should always start with a u_ prefix. This table can be any table within the current scope containing the lookup values.Note: The list shows only tables and database views that are in the same scope as the catalog data lookup definition. |
| Active | Select this check box to run this data lookup rule. Clear the check box to ignore this data lookup rule. |
| Run on form change | Select this check box to automatically look up values whenever a user or onChange client script changes a field value on a source table form. Note: This does not include changes automatically made by other data lookup rules, such as the Priority Lookup Rules. |
| Run on insert | Select this check box to automatically look up values whenever a user creates a new record. |
| Run on update | Select this check box to automatically look up values whenever a user saves or updates a record. |
Select and hold (or right-click) the form header and select Save.
From the Matcher Field Definitions related list, click New.
Complete the Matcher Field Definitions using the following table.
A data lookup only occurs on fields with matcher field definitions. The data lookup uses the values of the source table fields to look up one or more values from the matcher table. Note that data lookup does not work with Journal type fields.
| Field | Description |
|---|---|
| Data Lookup | Displays the name of the parent data lookup definition record. |
| Source table field | Select the field from the source table that contains the data to match. |
| Matcher table field | Select the field from the matcher table that contains the data to match. This table can be any table within the current scope containing the lookup values. |
| Exact lookup match | Select this check box to require the matcher table to contain a matching row for every possible combination of values (including empty values). Clearing this check box means that any empty values in the matcher table match any value. For example, suppose the Priority field is empty in the matcher table. When this check box is selected, there is a match only when the Priority value is empty in the source table row. When this check box is cleared, the empty matcher field value matches any value in the source table field. Note: If the lookup does not require an exact match, matcher table rows containing empty values are treated as wild cards, matching all values. |
Select Submit.
From the Setter Field Definitions related list, click New.
Complete the Setter Field Definitions form using the following table.
Field Description Data Lookup Displays the name of the parent data lookup definitions record. Source table field Select the field from the source table that the data lookup updates. Matcher table field Select the field from the matcher table that provides the new value for the update. Always replace Select this check box to replace any existing value with a value from the data lookup. Clear this check box to ignore the update if the field has an existing value. Select Submit.
Select Update.
Create a data lookup module
You can create a module for data lookup so it appears in the instance application navigator.
Before you begin
Role required: admin
Procedure
Navigate to All > System Definition > Application Menus, then select an application to add the module to.
In the Modules related list, select New.
Configure a module for the data lookup table you created using the following properties.
Property Required value Table Select the data lookup table you created in Step 2. For example u_vip_caller_lookup. Link type List of Records Select Submit.
Troubleshooting data lookup
If the custom data lookup definition rules are not behaving as expected, check for certain conditions.
- Verify that the data lookup definition is set to run on the appropriate events.
- Verify that the matcher field is not read-only. Because users cannot change read-only fields, user interactions cannot trigger an on form change event for read-only fields.
- Verify a client script is not changing a field value. Client scripts can trigger Run on form change events even on read-only fields.
- Verify that the data in the matcher table is correct.
- If the lookup requires an exact match, verify that there is a matcher table row for each possible combination (including blank values). The lookup fails if cannot find a matching value.
Verify that you have not created a recursive rule, such as:
If Field A = 1, then Field B =2. If Field B = 2, then Field A = 2.