Discovery Source attribute is not available for Reconciliation rules

Pallavika Mehra
Tera Contributor

We are trying to create reconciliation rules for Computer class to set the priority to SCCM for selected attributes. We first tried to import data through SCCM which updated the 'Discovery Source' field of the records to 'SCCM'. Later on, we tried to run quick discovery for some of the records we imported earlier through SCCM and discovery source is again getting updated to 'ServiceNow'. 

We have set the attributes for our reconciliation rules like what all fields should get updated through SCCM and what fields through Discovery. Now we want to set 'Discovery source' field to only be updated by SCCM and not by discovery. We are unable to find 'Discovery Source' field in the attributes section of our reconciliation rule. By any chance, is there any way we can create or add discovery source field in the attributes section to stop it from getting updated through discovery again and again?

Please let us know whether we can add 'discovery source' attribute or create it manually for the reconciliation rules. 

 

Thank you. 

 

1 ACCEPTED SOLUTION

CMDB Whisperer
Mega Sage
Mega Sage

First, just to be clear, if you are using the SCCM Service Graph Connector, this is set to "SG-SCCM" not "SCCM".  If you are seeing "SCCM" as the discovery source then either you have modified the Service Graph Connector or you are not using it.  If you are not using the Service Graph Connector for SCCM then stop everything and your first goal should be discontinuing your existing SCCM integration and upgrading to the Service Graph Connector.  This is a free plugin and it is the only thing you should be using to import from SCCM.  

 

When you ran the Quick Discovery it updated your Discovery source updated to ServiceNow, which is expected, as that is the Discovery source value used by ServiceNow Discovery.  As you are aware, you need to define Reconciliation rules in order to tell ServiceNow which attributes should be prioritized by which data source.  For these reconciliation rules to work, ALL data sources must be using the Identification and Reconciliation engine.  This is why your reconciliation rules will not work if you are not using the Service Graph Connector for SCCM and are still on the original SCCM integration.  Out of box I don't believe there are any reconciliation rules defined at the Hardware or Computer level for ServiceNow Discovery, nor are any rules defined for SCCM, so you will need to define them both at the Computer level.

 

When you say "we want to set Discovery source field to only be updated by SCCM and not by discovery" that suggests a possible misunderstanding.  You cannot define rules for the Discovery source field itself.  Rather, the Discovery source field is an indicator of the source that was last allowed to update the CI.  Reconciliation rules specify which attributes are allowed for which data sources under which conditions, and how to prioritize those.  If after evaluating the reconciliation rules for a given data source, it is determined that one or more attributes are allowed to be updated on the CI, then the Discovery source is updated to reflect the data source that last updated the CI.  So, by design, this field will always flip back and forth between any data sources that are allowed, and that is what it is intended to do.  So if you are asking for it to be excluded, I would guess either that your understanding or intended use of this field is something other than I have described, or what you are really asking is "how do I prevent my end-user compute devices managed by SCCM from being updated by Discovery?" 

 

So before commenting further on the latter question, please confirm whether this has answered your question.  Bottom line is that the answer to "is there any way we can create or add discovery source field in the attribute section to stop it from getting updated through discovery again and again?" is: 1) no, you cannot exclude discovery source from the list of allowed attributes in a reconciliation rule, and 2) even if you could, that not the effect it would have, as other attributes would still get updated.


The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.

View solution in original post

1 REPLY 1

CMDB Whisperer
Mega Sage
Mega Sage

First, just to be clear, if you are using the SCCM Service Graph Connector, this is set to "SG-SCCM" not "SCCM".  If you are seeing "SCCM" as the discovery source then either you have modified the Service Graph Connector or you are not using it.  If you are not using the Service Graph Connector for SCCM then stop everything and your first goal should be discontinuing your existing SCCM integration and upgrading to the Service Graph Connector.  This is a free plugin and it is the only thing you should be using to import from SCCM.  

 

When you ran the Quick Discovery it updated your Discovery source updated to ServiceNow, which is expected, as that is the Discovery source value used by ServiceNow Discovery.  As you are aware, you need to define Reconciliation rules in order to tell ServiceNow which attributes should be prioritized by which data source.  For these reconciliation rules to work, ALL data sources must be using the Identification and Reconciliation engine.  This is why your reconciliation rules will not work if you are not using the Service Graph Connector for SCCM and are still on the original SCCM integration.  Out of box I don't believe there are any reconciliation rules defined at the Hardware or Computer level for ServiceNow Discovery, nor are any rules defined for SCCM, so you will need to define them both at the Computer level.

 

When you say "we want to set Discovery source field to only be updated by SCCM and not by discovery" that suggests a possible misunderstanding.  You cannot define rules for the Discovery source field itself.  Rather, the Discovery source field is an indicator of the source that was last allowed to update the CI.  Reconciliation rules specify which attributes are allowed for which data sources under which conditions, and how to prioritize those.  If after evaluating the reconciliation rules for a given data source, it is determined that one or more attributes are allowed to be updated on the CI, then the Discovery source is updated to reflect the data source that last updated the CI.  So, by design, this field will always flip back and forth between any data sources that are allowed, and that is what it is intended to do.  So if you are asking for it to be excluded, I would guess either that your understanding or intended use of this field is something other than I have described, or what you are really asking is "how do I prevent my end-user compute devices managed by SCCM from being updated by Discovery?" 

 

So before commenting further on the latter question, please confirm whether this has answered your question.  Bottom line is that the answer to "is there any way we can create or add discovery source field in the attribute section to stop it from getting updated through discovery again and again?" is: 1) no, you cannot exclude discovery source from the list of allowed attributes in a reconciliation rule, and 2) even if you could, that not the effect it would have, as other attributes would still get updated.


The opinions expressed here are the opinions of the author, and are not endorsed by ServiceNow or any other employer, company, or entity.