- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-25-2021 08:23 AM
I need help understanding how to use Data Precedence Rules. NOTE, I do NOT want to use Data Reconciliation Rules unless it's necessary as a tiebreaker.
When I configure the rules in the case study below, the lower priority Discovery Source still is allowed to overwrite the fields that ServiceNow has written to. Could someone please explain how I can achieve the objective?
Objective: Enforce precedence for CI updates so that ServiceNow is the authoritative source and all other sources are secondary (only allowed to update fields ServiceNow has not touched)
Documentation: Define or edit data source precedence rules
Rules:
- cmdb_ci, ServiceNow priority 0
- cmdb_hardware, vRealize Orchestrator, priority 20
Case Study:
- Created 2 Precedence Rules
cmdb_ci, ServiceNow priority 0
cmdb_hardware, vRealize Orchestrator, priority 20 - View the precedence rules on cmdb_ci_win_server and confirm both rules show as "Derived"
- Run a discovery schedule against a windows server
- Run vRealize Orchestrator discovery against a windows server
- View CI History of of windows server
- Validating the test results shows that vRealize Orchestrator was allowed to update fields previously touched by ServiceNow despite having a lower priorityeviously touched by ServiceNow despite having a lower priority
Solved! Go to Solution.
- Labels:
-
Discovery
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-25-2021 11:06 AM
Hi Calebc
Precedence order of reconciliation rules: between 2 rules for same attribute, the rule that is specific directly for the class has precedence over the derived rule. Probably it works similarly for data precedence rules as well (cannot find a statement anywhere in doc). In your screenshot I saw one precedence rule is "created" and another one - "derived" (but not both derived as per mentioned in (2)); you may check how the result of your test will look like if data precedence rule with ServiceNow as a source will be created directly for Hardware class.
Also, I understand data source precedence rules are used in conjunction with reconciliation rules to determine reconciliation steps for a CI. Since you have set reconciliation rules for "Description" attribute only and applied data precedence rules on top, this may not be applicable for all other attributes at all. Please consider adding few more attributes to the reconciliation rules and re-test.
Hope it helps
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-25-2021 11:06 AM
Hi Calebc
Precedence order of reconciliation rules: between 2 rules for same attribute, the rule that is specific directly for the class has precedence over the derived rule. Probably it works similarly for data precedence rules as well (cannot find a statement anywhere in doc). In your screenshot I saw one precedence rule is "created" and another one - "derived" (but not both derived as per mentioned in (2)); you may check how the result of your test will look like if data precedence rule with ServiceNow as a source will be created directly for Hardware class.
Also, I understand data source precedence rules are used in conjunction with reconciliation rules to determine reconciliation steps for a CI. Since you have set reconciliation rules for "Description" attribute only and applied data precedence rules on top, this may not be applicable for all other attributes at all. Please consider adding few more attributes to the reconciliation rules and re-test.
Hope it helps
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2021 03:49 PM
OK. I confirmed you are correct. I removed all Data Reconciliation Rules. Started testing with just Precedence rules then added Reconciliation rules. Here's what I learned.
- By themselves, Data Precedence Rules do nothing. The are only taken into account when Data Reconciliation Rules are configured for the corresponding sources.
- My confusion is is being solved in Paris. The Data Precedence priority is rolled up into Reconciliation rules, see https://community.servicenow.com/community?id=community_question&sys_id=dff14499db2128106621d9d9689619f4&view_source=searchResult
Here are my notes for anyone else who share my confusion.
Expectations (quoted from ServiceNow Docs)
- Any reconciliation rules defined for a child table override the rules defined for its parent table.
- If you want to authorize a data source to update all attributes in a table, leave the attribute list empty in the reconciliation rule for the data source.
- A rule that grants access to specific attributes in a table overrides other rules with an empty attribute list that grants access to the entire table.
- Rules that authorize different data sources for the same attributes of the same table can coexist and do not exclude each other. Data source precedence rules are used to prevent the data sources from overwriting each other's updates.
- After an authorized data source updates an attribute, subsequent updates are accepted only from the same data source or from a data source with a higher precedence priority.
- Smaller numbers designate higher priority. Data sources without a precedence rule are assigned the lowest priority
- Updates from a data source with a lower precedence priority are rejected, unless these two conditions are met:
- The lower propriety source is the first source updating the CI.
- The CI became stale based on data refresh rules for the CI class.
- Specify data refresh rules to determine if a CI is stale for a specific data source. Such CIs can then be updated by a lower-priority authorized data source.
- If you have no data refresh rules defined, the updates to CIs would be as per your data source precedence rules' order only.
Strategy
Define empty Reconciliation rules for all Data Sources at the most applicable parent table.
If a Datasource needs exclusive access to a field, define that Reconciliation rule at the specific child table.
Referenced Docs
CMDB Identification and Reconciliation
IRE - Reconciliation priority vs Data Precedence order
Default Data Refresh rules