- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2022 09:38 AM
Hello, I would like to prevent Discovery from updating a field if the field has already been populated. There are multiple sources and I really don't care who populated the field if there is already a value.
I created a Reconciliation Rule with Discovery as the Source, priority 1, with the field selected in the attributes, and a filter condition where the field is empty.
Will that do the trick or is that going to create a scenario where no other source can not update it? Do I need to add all the other possible sources to the rule even though the only factor I'm concerned about is if the field is populated.
Thank you.
Solved! Go to Solution.
- Labels:
-
Discovery
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-09-2022 07:52 AM
you have to setup reconciliation rules .
rule 1
discovery source:- SG-SCCM
priority :-1
attributes- description // you can select multiple
rule 2
discovery source:- SG-Intune
priority :-2
attributes- description //can select multiple
Create Data refresh rule
discovery source :- SG-SCCM
days:- 5000
After creation,
first run the SG-SCCM data source.
and then SG-INTUNE
you will notice SG-intune will not update the attributes example here for 5000 days- "description"
why 5000?
logic behind reconciliation is that whenever data passes through IRE, an entry for each CIs attribute is created in cmdb_datasource_last_update table.
So whenever the IRE runs ,reconciliation checks data source and last updated time of the attribute and according to that second data source priority updates/not update it as per data refresh rules.
Example:-
description was updated by SG-SCCM today , so from 5000 days from today (if its still stale till that time) SG-INTUNE will update this field.
and since your SG-SCCM will run on weekly/monthly basis , the description field will always be up to date and second priority INTUNE data source will never have chance to update this.
SG-INTUNE will create CIs as it does.
Reconciliation is for updation.
If it works for you please mark answer as correct or let me know in case of issues.
Anshu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2022 09:57 AM
So if you create a priority that discovery will update it as number 1,then
you need to define other data sources as well which are passing via IRE and give them priority.
If your all cmdb sources passes via IRE engine then please mention all the rules.
If its getting updated via other sources/manually, then reconciliation wont work.
reconciliation works only if cmdb payload passes through IRE .
Now stopping someone to edit that field manually needs read-only access to that field.
At the end you have to identify each data sources which is updating it.
In my case there was a field coming via discovery and 3rd party database so i had to ignore that field in transform map for that field. so discovery was only updating it.
Later on i made all my data sources 4(altiris,sepm,discovery,solarwinds) via IRE engine.
I used IntegrationHUB ETL for cmdb.
Hope this is helpful.
Anshu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-09-2022 06:57 AM
Hi Anshu,
Thanks for your response. But i have a scenario and lets take an example of "Description" field. i don't want the SG-Intune to update this field but SG-SCCM should update this field always as that has the correct value. In addition to this, SG-Intune can create new records but it should not update the "Description" field. Hence how can i create a rule to just exclude the data from one source (Intune) and it should continue to update the field from another source(SCCM)?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-09-2022 07:52 AM
you have to setup reconciliation rules .
rule 1
discovery source:- SG-SCCM
priority :-1
attributes- description // you can select multiple
rule 2
discovery source:- SG-Intune
priority :-2
attributes- description //can select multiple
Create Data refresh rule
discovery source :- SG-SCCM
days:- 5000
After creation,
first run the SG-SCCM data source.
and then SG-INTUNE
you will notice SG-intune will not update the attributes example here for 5000 days- "description"
why 5000?
logic behind reconciliation is that whenever data passes through IRE, an entry for each CIs attribute is created in cmdb_datasource_last_update table.
So whenever the IRE runs ,reconciliation checks data source and last updated time of the attribute and according to that second data source priority updates/not update it as per data refresh rules.
Example:-
description was updated by SG-SCCM today , so from 5000 days from today (if its still stale till that time) SG-INTUNE will update this field.
and since your SG-SCCM will run on weekly/monthly basis , the description field will always be up to date and second priority INTUNE data source will never have chance to update this.
SG-INTUNE will create CIs as it does.
Reconciliation is for updation.
If it works for you please mark answer as correct or let me know in case of issues.
Anshu
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-14-2022 07:19 PM
I used this approach for my field with the only tweak being a filter I put on the pri-2 rule where field was not empty.