Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

What is the best approach for moving Smart Assessment Templates between environments?

AlexR2
Tera Expert

As we are starting our journey to convert classic attestations to new attestations using the Smart Assessment engine we found ourselves at a decision point on how we migrate the templates between the environments.

 

Background: we cannot build the templates directly in production for the following reasons:

  • Only admins have the scope switcher and the control category templates need to be built in the GRC: Policy and Compliance Scope, similar to the OOTB "GRC attestation"

AlexR2_0-1763488397568.png

 

  • There is currently no preview capability to work out all the bugs and once you publish the template there is no going back to editing this template once you kick off some attestations. OOTB ACL is set to "nobody" for deleting any attestations records.

We came up with two approaches and both have pros and cons.

  1. Publish customization to our app repo
    • Pro: easy to grab the entire set of application files
    • Con: will also grab all in progress changes and move to upper environments prematurely
  2. Update Sets
    • Pro: moves only the files related to the template
    • Con: need to identify all the classes that need to be captured

What is everyone else doing?

 

1 ACCEPTED SOLUTION

Connor Levien
ServiceNow Employee
ServiceNow Employee

@AlexR2 Smart assessment templates are intended to be moved via update sets like other configuration in ServiceNow. For example if you are making a new GRC attestation, you should use the GRC: Policy and Compliance Management application scope, create a new update set. You shouldn't modify the OOTB templates but you can create a copy and all the attributes of the template will be auto added to the update set. Just make sure you stay in the same app scope during the set up (e.g dont build part of the smart assessment in one scope and part of it in another it can be done but just means more update sets are needed). 

 

If you want to see in more detail you can open the smart assessment template in the classic ui and add the versions related list to see all the updates added to the update sets

View solution in original post

5 REPLIES 5

Connor Levien
ServiceNow Employee
ServiceNow Employee

@AlexR2 Smart assessment templates are intended to be moved via update sets like other configuration in ServiceNow. For example if you are making a new GRC attestation, you should use the GRC: Policy and Compliance Management application scope, create a new update set. You shouldn't modify the OOTB templates but you can create a copy and all the attributes of the template will be auto added to the update set. Just make sure you stay in the same app scope during the set up (e.g dont build part of the smart assessment in one scope and part of it in another it can be done but just means more update sets are needed). 

 

If you want to see in more detail you can open the smart assessment template in the classic ui and add the versions related list to see all the updates added to the update sets

Thank you @Connor Levien !

 

I think I captured the all the required objects correctly in the update set. Can you please confirm if you think anything is missing?

AlexR2_0-1763568407771.png

 

 

 

Connor Levien
ServiceNow Employee
ServiceNow Employee

@AlexR2 looks about right, hard for me to validate but that looks like the appropriate tables

I missed Assessment duration - sn_smart_asmt_duration

 

Probably because it doesn't contain the scope on the record. (I blanked out our data with xxxxxx) but you can see the scope is not part of the record.

 

<xml>
<sn_smart_asmt_duration>
<assessment_template display_value="xxxxxx">xxxxxx</assessment_template>
<duration>1970-01-31 00:00:00</duration>
<sys_created_by>xxxxxx</sys_created_by>
<sys_created_on>xxxxxx</sys_created_on>
<sys_id>xxxxxx</sys_id>
<sys_mod_count>0</sys_mod_count>
<sys_updated_by>xxxxxx</sys_updated_by>
<sys_updated_on>xxxxxx</sys_updated_on>
</sn_smart_asmt_duration>
</xml>