Cannot find function getUniqueValue in object
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
Hello everyone,
I'm trying to create a Business Rule to execute a script that is originally locate in script actions (Evaluate assessment result for control).
But when I try to execute my business rule I receive this log erro:
com.glide.script.RhinoEcmaError: Cannot find function getUniqueValue in object b654bae7c3c53e10995c98fdd40131da.
sys_script_include.ec64a479008e3510f877f6eefcbd2717.script : Line(39) column(0)
36: // Chamada ao Script Include
37: var utils = new sn_grc.GRCSmartAssessmentUtils();
38: var asmtM2MScopeItem = utils.getCompletedAsmtScopeItemForGroup(assessmentGroupId, "sn_compliance_control", "ea0a83a07dd23110f87737f2fbd73143");
==> 39:
40: gs.info('*** BR: Objeto retornado pelo Script Include: ' + JSON.stringify(asmtM2MScopeItem));
41:
42: if (asmtM2MScopeItem && asmtM2MScopeItem.scope_item && asmtM2MScopeItem.scope_item.record) {
Stack trace:
at sys_script_include.ec64a479008e3510f877f6eefcbd2717.script:39
at sys_script.18cab9d7c3bcb210995c98fdd4013165.script:38 (executeRule)
at sys_script.18cab9d7c3bcb210995c98fdd4013165.script:53
at sys_ui_action.55b4f5c7c3b83210995c98fdd4013165.script:2
And my busines rule is bellow:
(function executeRule(current, previous /*null when async*/) {
// Buscar último assessment vinculado ao controle
var scopeItemGR = new GlideRecord('sn_smart_asmt_scope_item');
scopeItemGR.addQuery('record', current.getUniqueValue());
scopeItemGR.orderByDesc('sys_updated_on');
scopeItemGR.setLimit(1);
scopeItemGR.query();
if (!scopeItemGR.next()) {
gs.info('*** BR: Nenhum scope item encontrado para controle: ' + current.sys_id);
return;
}
var m2mGR = new GlideRecord('sn_smart_asmt_m2m_instance_scope_item');
m2mGR.addQuery('scope_item.record', current.getUniqueValue());
m2mGR.orderByDesc('sys_updated_on');
m2mGR.setLimit(1);
m2mGR.query();
if (!m2mGR.next()) {
gs.info('*** BR: Nenhum relacionamento M2M encontrado para controle: ' + current.sys_id);
return;
}
var grAssessment = new GlideRecord('sn_smart_asmt_instance');
grAssessment.addQuery('sys_id', m2mGR.getValue('assessment_instance'));
grAssessment.orderByDesc('sys_updated_on');
grAssessment.setLimit(1);
grAssessment.query();
if (grAssessment.next()) {
var assessmentGroupId = grAssessment.getValue('assessment_group');
gs.info('*** BR: Assessment encontrado: ' + grAssessment.sys_id + ', grupo=' + assessmentGroupId);
// Chamada ao Script Include
var utils = new sn_grc.GRCSmartAssessmentUtils();
var asmtM2MScopeItem = utils.getCompletedAsmtScopeItemForGroup(assessmentGroupId, "sn_compliance_control", "ea0a83a07dd23110f87737f2fbd73143");
gs.info('*** BR: Objeto retornado pelo Script Include: ' + JSON.stringify(asmtM2MScopeItem));
if (asmtM2MScopeItem && asmtM2MScopeItem.scope_item && asmtM2MScopeItem.scope_item.record) {
var recordId = asmtM2MScopeItem.scope_item.record; // Corrigido
utils.evaluateControl(recordId + '', grAssessment);
gs.info('*** BR: Avaliação executada para controle: ' + current.sys_id);
} else {
gs.info('*** BR: Nenhum scope item completo encontrado para o grupo do assessment.');
}
} else {
gs.info('*** BR: Nenhum assessment encontrado para controle: ' + current.sys_id);
}
})(current, previous);
So, please, anyone can help me to solve this problem?
0 REPLIES 0
