The Now Platform® Washington DC release is live. Watch now!

Help
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sanjay_gupta
ServiceNow Employee
ServiceNow Employee

General Notes 

It is possible for SCCM to report software without reporting hardware in the same pull.  This was seen at some customers and their devs had talked to SCCM and confirmed that SCCM’s internal process was not guaranteed to be 100% internally consistent at every point in time. 

 

Migration related: 

1. How to upgrade from the legacy SCCM plugin to SG-SCCM? 

Please refer to https://docs.servicenow.com/bundle/quebec-servicenow-platform/page/product/configuration-management/... for the steps to upgrade. 

2. Do the steps mentioned in the documentation above for migrating from SCCM 2016 to SG-SCCM apply to SCCM 2012 as well?

Yes, the same steps can be used for SCCM 2012 too. 

3. Do we need to install any plugins or dependencies during migration? 

No additional dependency needs to be installed because SG-SCCM is a store app and it will resolve all required dependencies during installation. However, make sure that the platform instance version is compatible with the SG-SCCM version. 

4. Do any tables need to be cleaned up during migration? 

No, you just need to perform a full import (clear 'last date time' and run scheduled data import). 

5. What are the risks if we do not migrate to SG-SCCM? 

Customers will be missing out on better performance during importing data, new features, and bug fixes. Also, support for SCCM-2016 is being deprecated and will no longer be supported by Tokyo release, detailed information about the depreciation is here.  SG-SCCM is free for all customers of ServiceNow. 

6. What are the components of the old plugin that will be automatically migrated to the new one and what will not? 

Any customization done in the older plugin will not be migrated to SG-SCCM. There is a Migration Readiness Tool (link here) for Service Graph Connector for SCCM that helps the user to identify issues that will impact your migration. 

7. Computer CIs are not loading 

There could be any number of underlying issues contributing to this problem. Things to check out: 

  • sys_object_source record(s) with a target sys_id pointing to a computer that does not exist in CMDB. If this is the case, we will see an error from IRE with ‘invalid sys_id’. We need to clean up those records in sys_object_source where the target sys_id does not have a valid computer record in CMDB for the SG-SCCM source.  
  • Other clean ups that can be done
  1. Remove all records in cmdb_ire_partial_payloads table (probably populated from previous runs) 
  2. Cancel any SG-SCCM import jobs if they are running 
  3. Remove the date/time value from the 'Last run date time field in the 'SG-SCCM Computer Identity' data source and update/save it. (to enable a full pull of all the computers from SCCM Server). It is important we bring in all computer records to avoid any possible partial payloads which could reference a computer that does not exist with the discovery source of 'SG-SCCM'. If the customer ran the older/legacy SCCM 2016, it may have 'SCCM' in the source. It can exist but will not be used by 'SG-SCCM'. 
  4. Run the import schedule for a computer so it runs the entire integration 

8. How do I handle removing software 

Please refer to the blog - Handle Remove Software

9. Is there any tools available for help in Migration? 

There is the migration readiness tool (link Migration Tool) . This tool evaluates the configuration of the legacy integration and the CMDB Itself and identifies items that need further investigation. 

10. SCCM License Questions

a. What are licensing requirements for Service Graph Connector for SCCM? 

No subscription required is licensing requirements for Service Graph Connector for SCCM. Licensing restrictions is removed from version 2.3.1. 

b. Is this a limitation with the connector? Does Service Graph Connector for SCCM consume ITOM subscription units? 

The system only counts Server CIs from very specific discovery sources. The SG-SCCM discovery source is not on that list. 

Performance-related: 

1. SCCM import leading to high memory usage which degrades the instance performance. 

Refer to https://community.servicenow.com/community?id=community_blog&sys_id=66c85d111bfeb850c16b43f6fe4bcba9 for more details on this. 

2. Improve performance of SG-SCCM CleanupUTIL 

Refer the blog to distribute a script across different nodes
https://community.servicenow.com/community?id=community_article&sys_id=e3cd4cc31b2638d0d01143f6fe4bcb72

Miscellaneous

1. IP address not being populated by SCCM. 

Refer to https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0870438 for more details on this. 

2. Will SG-SCCM replace the general OOB Discovery? 

There is no such plan. SG-SCCM and Discovery complement each other. 

3. Does SG-SCCM support domain separation? 

  1. No, it does not. 

4. Is SG-SCCM/SCCM 2016 plugin compatible with SCCM 'x' version? 

Version compatibilities are mentioned in the documentation. If some version is not mentioned, it means the compatibility with that version has not been tested and therefore we cannot comment on the consequences. 

 

Mapping Issues

1. Lenovo – Mapping 

SCCM, in some customer’s instances, is sending the Model information in the version column especially for ‘Lenovo’ model types. Here is the recommended solution to reset the map for this correctly per Jim in a case task (CSTASK186351 - SCCM Graph pulling wrong Model ID for Lenovo workstations) 

 This is a multi-tiered issue so I'll try to break it down as best as I can.

1) The data coming from this particular instance of SCCM is not the normal data we are seeing from other customers so this isn't a defect with the OOTB SCCM integration
2) The customer appears to be trying to solve this via changing the SQL and/or modifying the CmdbIntegrationHardwareModelUtil script. These two approaches are not recommended. Changing the SQL is a complicated ordeal that may have unforeseen issues. Changing CmdbIntegrationHardwareModelUtil will affect ALL integrations, this script should be reverted back to the original script.
3) The recommended approach is to customize the transformation and mapping through the IntegrationHub ETL application. This will require the following steps to complete:

To do this we will need to go into the IntegrationHub ETL, select the SG-SCCM Computer Identity record, and select an import set in step 1
Once step 1 is completed we can go to step 2 Prepare Source Data for Mapping
1) Delete the current transform on the cleansed_manufacturer_model column and transform.
2) Create a new Multi-Input Script Operation
2a) It will have an output column of cleansed_manufacturer_model
2b) It will take 3 values as input u_manufacturer, u_model, and u_version
2c)The script value will be something similar to the following:

(function(batch, output) {
for (var i = 0; i < batch.length; i++) {
var manufacturer = batch[i].u_manufacturer;
var model = batch[i].u_model;
var version = batch[i].u_version;

if ("LENOVO" == manufacturer.toUpperCase()) {
model = version;
}

var outputJson = new sn_cmdb_int_util.CmdbIntegrationHardwareModelUtil().cleanseModelAndCompany(manufacturer, model);
var concatenatedOutput = outputJson.companyName + '|||' + outputJson.companySysId + '|||' + outputJson.modelSysId + '|||' + outputJson.modelName;
output[i] = concatenatedOutput;
}
})(batch, output);

3) Once this operation is done they will need to create a Split operation on the cleansed_manufacturer_model column

  • The character seperator will be |||
  • Ouput columns (in order) will be cleansed_companyName, cleansed_companySysId, cleansed_modelSysId, cleansed_modelName


4) We will need to modify the mappings to select the new cleansed_companySysId and cleansed_modelSysId to map to Manufacturer and Model ID. For this we will proceed to step 3 Map Data to CMDB and Add Relationships -> Select CMDB Classes to Map Source Data -> SCCM Computer Identity - Computer

  • Add 2 attributes, Manufacturer and Model ID 
  • Drag cleansed_companySysId into the Manufacturer input 
  • Drag cleansed_modelSysId into the Model IDinput 

 

 

15 Comments