Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

In OOB data certification task, if we certify any element then the respective CI in cmdb_ci table should display value "certified" for the custom field ''datacertificationstatus" in cmdb_ci table

Sachin Gavhane
Giga Guru

Step 1 : I have created a custom field named "datacertificationstatus" on cmdb_ci table

Step 2 : In OOB data certification task, if any element is certified then associated CIs in cmdb_ci table should display value as "certified" for the above custom field created in cmdb_ci table

find_real_file.png

if we certify above elements then respective CIs in cmdb_ci table should display value as "certified" for the custom field "datacertificationstatus" in cmdb_ci table

1 ACCEPTED SOLUTION

Hi @Sachin Gavhane 

There was a flaw in the script shared before where I forgot to pass the parameter correctly when it need to be certified.

So have updated the script , please use the same and test. I have tested it and works fine for me now.

(function executeRule(current, previous /*null when async*/ ) {

    // Add your code here
    var getCI = current.id;
    var gettargetTable = current.table;

    var getAllDetails = CheckCIColumn(getCI);
    if (getAllDetails == true) {
        updateCI(gettargetTable,getCI);
    }

    function CheckCIColumn(CI) {
        var gr = new GlideRecord('cert_audit_result');
        gr.addQuery('id', CI);
        gr.addQuery('state','Pending'); // This will check if there are any un Certified records or not.
        gr.query();
        if (gr.next()) {
            gs.info('There are still record which are not certified. So please certify first');
			return false;
        }else{
			return true;
		}
    }

    function updateCI(gettargetTable,getCI) {
        var gr = new GlideRecord(gettargetTable);
        gr.addQuery('sys_id', getCI);
        gr.query();
        if (gr.next()) {
            gr.short_description = 'certified'; // Please make sure to replace "certified" with its correct back end value here and and also replace "FieldName" with the correct field name which you want to set.
            gr.update();
        }
    }



})(current, previous);

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

View solution in original post

17 REPLIES 17

Sachin Gavhane
Giga Guru

@shloke04  requesting you to help me with the above requirement. Thanks

shloke04
Kilo Patron

Hi @Sachin Gavhane 

Please write a After Update Business Rule on the Table "Audit Results(cert_audit_result)" and use the script below:

BR Details:

Table Name : Audit Results(cert_audit_result)

When: After Update

Condition: State Changes to Certified

Script:

(function executeRule(current, previous /*null when async*/) {

	// Add your code here
	var getCI = current.id;
	var gettargetTable = current.table;
	
	var gr = new GlideRecord(gettargetTable);
	gr.addQuery('sys_id',getCI);
	gr.query();
	if(gr.next()){
		gr.FIELD_NAME = 'certified'; // Please make sure to replace "certified" with its correct back end value here and and also replace "FieldName" with the correct field name which you want to set.
		gr.update();
	}

})(current, previous);

find_real_file.png

This is working for me in my PDI.

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Hi Shloke,

will this work if there are two CIs in one record of certifying elements?

find_real_file.png

 

In above row there are two CIs , Business Application : kofax total agility  and Name (Application service): kofax total agility (production), for both these CIs the custom field should have value "Certified", so will above business rule will work for both the CIs?

 

 

 

 

@Sachin Gavhane 

Yes it will work for any number of CI which are getting certified.

You just need to set up the Business Rule exactly similar to the way I have mentioned.

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke