- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2025 01:34 PM
Hi.
I was recently tasked with finding a way to populate a field on one form from another form. After doing some research, I learned that setting up a business rule was the best way to achieve this. On Form A, there is a tab named Audit that holds the Audit Engagement number.
Form A:
In the next section below, there's another tab named Remediation tasks. The ask is this: when a user clicks the New button from the Remediation tasks, the Parent field from the Remediation task needs to be populated with the Audit engagement number.
I put together the following script but have not had any luck:
(function executeRule(current, previous /*null when async*/) {
// Only run if the issue field is set and parent is not already set
if (current.issue && !current.parent) {
var issue = new GlideRecord('sn_grc_issue');
if (issue.get(current.issue)) {
// Set parent to the sys_id of the audit engagement referenced by the issue
current.parent = current.issue.sn_audit_engagement;
current.update();
}
}
})(current, previous);
When I run the script I get the following error:
Evaluator.evaluateString() problem: java.lang.RuntimeException: failed to coerce com.glide.script.fencing.ScopedGlideElement to desired type java.lang.String: com.glide.script.fencing.ScopedFunctionObjectTypeHandler.coerceFunctionArgument(ScopedFunctionObjectTypeHandler.java:180)
org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
org.mozilla.javascript.ScriptRuntime.doCall(ScriptRuntime.java:3081)
org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1721)
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:907)
org.mozilla.javascript.InterpretedFunction.lambda$call$0(InterpretedFunction.java:137)
com.glide.caller.gen.sys_security_acl_4212039b1bb2e110b7b35284604bcbcd ➚.call(Unknown Source)
com.glide.script.ScriptCaller.call(ScriptCaller.java:22)
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:135)
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:720)
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:4501)
org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:151)
com.glide.script.ScriptCompiler.executeAndPublishMetric(ScriptCompiler.java:78)
com.glide.script.ScriptEvaluator.execute(ScriptEvaluator.java:464)
com.glide.script.ScriptEvaluator.evaluate(ScriptEvaluator.java:231)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:384)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:328)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScriptAsBoolean(GlideScopedEvaluator.java:482)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScriptAsBoolean(GlideScopedEvaluator.java:457)
com.glide.sys.security.AccessTerm.checkScriptWithoutInstrument(AccessTerm.java:865)
com.glide.sys.security.AccessTerm.checkScript0(AccessTerm.java:833)
com.glide.sys.security.AccessTerm.lambda$checkScript$0(AccessTerm.java:807)
com.glide.sys.security.data_filter.DataFilterDisableOnCurrentUtil.withDataFiltersOnRecordDisabled(DataFilterDisableOnCurrentUtil.java:40)
com.glide.sys.security.AccessTerm.checkScript(AccessTerm.java:806)
com.glide.sys.security.AccessTerm.evaluate0(AccessTerm.java:417)
com.glide.sys.security.AccessTerm.evaluate(AccessTerm.java:322)
com.glide.sys.security.AccessRule.processOr(AccessRule.java:321)
com.glide.sys.security.AccessRule.evaluate(AccessRule.java:200)
com.glide.sys.security.AccessRule.processSequential(AccessRule.java:332)
com.glide.sys.security.AccessRule.evaluate(AccessRule.java:203)
com.glide.sys.security.AccessRule.processAnd(AccessRule.java:306)
com.glide.sys.security.AccessRule.evaluate(AccessRule.java:197)
com.glide.sys.security.ACLAccessHandler.hasRightsToWithoutInstrument(ACLAccessHandler.java:84)
com.glide.sys.security.ACLAccessHandler.hasRightsTo(ACLAccessHandler.java:67)
com.glide.sys.security.ContextualSecurityManager.eval(ContextualSecurityManager.java:1306)
com.glide.sys.security.ContextualSecurityManager.hasRightsToImpl0(ContextualSecurityManager.java:1128)
com.glide.sys.security.ContextualSecurityManager.hasRightsToImpl(ContextualSecurityManager.java:1090)
com.glide.sys.security.ContextualSecurityManager.canAccess(ContextualSecurityManager.java:1065)
com.glide.sys.security.ContextualSecurityManager.canAccess(ContextualSecurityManager.java:1070)
com.glide.script.GlideElement.hasRightsTo(GlideElement.java:1280)
com.glide.script.GlideElement.checkRightsWithDerived(GlideElement.java:2978)
com.glide.script.GlideElement.canRead(GlideElement.java:1210)
com.glide.script.GlideRecordSimpleSerializer.canRead(GlideRecordSimpleSerializer.java:142)
com.glide.script.GlideRecordSimpleSerializer.serialize(GlideRecordSimpleSerializer.java:85)
com.glide.script.GlideRecordSimpleSerializer.serialize(GlideRecordSimpleSerializer.java:213)
com.glide.script.GlideRecordSimpleSerializer.serialize(GlideRecordSimpleSerializer.java:199)
com.glide.processors.xmlhttp.XMLGlideRecordSerializer.query(XMLGlideRecordSerializer.java:98)
com.glide.processors.xmlhttp.AJAXGlideRecord.query(AJAXGlideRecord.java:69)
com.glide.processors.xmlhttp.AJAXGlideRecord.process(AJAXGlideRecord.java:60)
com.glide.processors.xmlhttp.internal.XMLHttpRequestExecutor.process(XMLHttpRequestExecutor.java:110)
com.glide.processors.xmlhttp.internal.XMLHttpRequestExecutor.process(XMLHttpRequestExecutor.java:76)
com.glide.processors.xmlhttp.AJAXXMLHttpAggregator.process(AJAXXMLHttpAggregator.java:79)
com.glide.processors.XMLHttpProcessor.processJavaAJAX(XMLHttpProcessor.java:168)
com.glide.processors.XMLHttpProcessor.process(XMLHttpProcessor.java:121)
com.glide.processors.AProcessor.runProcessor(AProcessor.java:785)
com.glide.processors.AProcessor.processTransaction(AProcessor.java:328)
com.glide.processors.ProcessorRegistry.process0(ProcessorRegistry.java:187)
com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:175)
com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:58)
com.glide.sys.Transaction.run(Transaction.java:2998)
com.glide.ui.HTTPTransaction.run(HTTPTransaction.java:34)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base/java.lang.Thread.run(Thread.java:840)
Exception while executing getSkillConfigObj from extension point: ConversionError: The undefined value has no properties.
Any help someone can provide would be greatly appreciated.
Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2025 07:22 AM
Hi @RodHill11 ,
I don't think this error is coming from the BR
check the scripts of ACLs with sysid ( 4212039b1bb2e110b7b35284604bcbcd, cfae0a0fc31302004e44dccdf3d3ae63)
is parent value populated? with BR
see if there is any issue with those scripts
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2025 06:02 PM
Hi @RodHill11 ,
create Before insert / update BR on the Remediation task
with conditions as highlighted
Script used
(function executeRule(current, previous /*null when async*/ ) {
// Add your code here
current.parent = current.issue.sn_audit_engagement;
})(current, previous);
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2025 06:53 AM
Hi @Chaitanya ILCR . Thank you for your response. I made the changes you suggested but it did not work. I received the following error:
Exception while executing getSkillConfigObj from extension point: ConversionError: The undefined value has no properties.
Slow ACL cfae0a0fc31302004e44dccdf3d3ae63 for the path record/sn_audit_engagement/delete , time was: 20
Evaluator.evaluateString() problem: java.lang.RuntimeException: failed to coerce com.glide.script.fencing.ScopedGlideElement to desired type java.lang.String: com.glide.script.fencing.ScopedFunctionObjectTypeHandler.coerceFunctionArgument(ScopedFunctionObjectTypeHandler.java:180)
org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
org.mozilla.javascript.ScriptRuntime.doCall(ScriptRuntime.java:3081)
org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1721)
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:907)
org.mozilla.javascript.InterpretedFunction.lambda$call$0(InterpretedFunction.java:137)
com.glide.caller.gen.sys_security_acl_4212039b1bb2e110b7b35284604bcbcd ➚.call(Unknown Source)
com.glide.script.ScriptCaller.call(ScriptCaller.java:22)
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:135)
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:720)
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:4501)
org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:151)
com.glide.script.ScriptCompiler.executeAndPublishMetric(ScriptCompiler.java:78)
com.glide.script.ScriptEvaluator.execute(ScriptEvaluator.java:464)
com.glide.script.ScriptEvaluator.evaluate(ScriptEvaluator.java:231)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:384)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:328)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScriptAsBoolean(GlideScopedEvaluator.java:482)
com.glide.script.fencing.GlideScopedEvaluator.evaluateScriptAsBoolean(GlideScopedEvaluator.java:457)
com.glide.sys.security.AccessTerm.checkScriptWithoutInstrument(AccessTerm.java:865)
com.glide.sys.security.AccessTerm.checkScript0(AccessTerm.java:833)
com.glide.sys.security.AccessTerm.lambda$checkScript$0(AccessTerm.java:807)
com.glide.sys.security.data_filter.DataFilterDisableOnCurrentUtil.withDataFiltersOnRecordDisabled(DataFilterDisableOnCurrentUtil.java:40)
com.glide.sys.security.AccessTerm.checkScript(AccessTerm.java:806)
com.glide.sys.security.AccessTerm.evaluate0(AccessTerm.java:417)
com.glide.sys.security.AccessTerm.evaluate(AccessTerm.java:322)
com.glide.sys.security.AccessRule.processOr(AccessRule.java:321)
com.glide.sys.security.AccessRule.evaluate(AccessRule.java:200)
com.glide.sys.security.AccessRule.processSequential(AccessRule.java:332)
com.glide.sys.security.AccessRule.evaluate(AccessRule.java:203)
com.glide.sys.security.AccessRule.processAnd(AccessRule.java:306)
com.glide.sys.security.AccessRule.evaluate(AccessRule.java:197)
com.glide.sys.security.ACLAccessHandler.hasRightsToWithoutInstrument(ACLAccessHandler.java:84)
com.glide.sys.security.ACLAccessHandler.hasRightsTo(ACLAccessHandler.java:67)
com.glide.sys.security.ContextualSecurityManager.eval(ContextualSecurityManager.java:1306)
com.glide.sys.security.ContextualSecurityManager.hasRightsToImpl0(ContextualSecurityManager.java:1128)
com.glide.sys.security.ContextualSecurityManager.hasRightsToImpl(ContextualSecurityManager.java:1090)
com.glide.sys.security.ContextualSecurityManager.canAccess(ContextualSecurityManager.java:1065)
com.glide.sys.security.ContextualSecurityManager.canAccess(ContextualSecurityManager.java:1070)
com.glide.script.GlideElement.hasRightsTo(GlideElement.java:1280)
com.glide.script.GlideElement.checkRightsWithDerived(GlideElement.java:2978)
com.glide.script.GlideElement.canRead(GlideElement.java:1210)
com.glide.script.GlideRecordSimpleSerializer.canRead(GlideRecordSimpleSerializer.java:142)
com.glide.script.GlideRecordSimpleSerializer.serialize(GlideRecordSimpleSerializer.java:85)
com.glide.script.GlideRecordSimpleSerializer.serialize(GlideRecordSimpleSerializer.java:213)
com.glide.script.GlideRecordSimpleSerializer.serialize(GlideRecordSimpleSerializer.java:199)
com.glide.processors.xmlhttp.XMLGlideRecordSerializer.query(XMLGlideRecordSerializer.java:98)
com.glide.processors.xmlhttp.AJAXGlideRecord.query(AJAXGlideRecord.java:69)
com.glide.processors.xmlhttp.AJAXGlideRecord.process(AJAXGlideRecord.java:60)
com.glide.processors.xmlhttp.internal.XMLHttpRequestExecutor.process(XMLHttpRequestExecutor.java:110)
com.glide.processors.xmlhttp.internal.XMLHttpRequestExecutor.process(XMLHttpRequestExecutor.java:76)
com.glide.processors.xmlhttp.AJAXXMLHttpAggregator.process(AJAXXMLHttpAggregator.java:79)
com.glide.processors.XMLHttpProcessor.processJavaAJAX(XMLHttpProcessor.java:168)
com.glide.processors.XMLHttpProcessor.process(XMLHttpProcessor.java:121)
com.glide.processors.AProcessor.runProcessor(AProcessor.java:785)
com.glide.processors.AProcessor.processTransaction(AProcessor.java:328)
com.glide.processors.ProcessorRegistry.process0(ProcessorRegistry.java:187)
com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:175)
com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:58)
com.glide.sys.Transaction.run(Transaction.java:2998)
com.glide.ui.HTTPTransaction.run(HTTPTransaction.java:34)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base/java.lang.Thread.run(Thread.java:840)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2025 07:22 AM
Hi @RodHill11 ,
I don't think this error is coming from the BR
check the scripts of ACLs with sysid ( 4212039b1bb2e110b7b35284604bcbcd, cfae0a0fc31302004e44dccdf3d3ae63)
is parent value populated? with BR
see if there is any issue with those scripts
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-11-2025 08:37 AM
Thanks @Chaitanya ILCR . I checked those ACLs and it appear they are definitely conflicting with what I'm trying to accomplish. I will accept your previous solution. Thanks again.