- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2022 11:31 AM
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
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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-04-2022 12:15 AM
Hi
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
Regards,
Shloke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2022 11:37 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2022 08:52 PM
Hi
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);
This is working for me in my PDI.
Hope this helps. Please mark the answer as correct/helpful based on impact.
Regards,
Shloke
Regards,
Shloke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2022 10:33 PM
Hi Shloke,
will this work if there are two CIs in one record of certifying elements?
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-28-2022 11:55 PM
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
Regards,
Shloke