Reuse the approval e-signature for change cancellation process
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a month ago - last edited a month ago
How to enforce e-signature validation for change cancellation actions in the same way as Approval/Reject ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Yep — that error makes sense.
promptCheck() isn’t a “standard” function that exists everywhere in ServiceNow. It only exists on pages where the OOB eSignature/Approval UI scripts are loaded. Your Cancel UI Action is calling it on the Change form, but that form doesn’t have that script loaded, so the browser throws “promptCheck function not found.”
What to do:
Stop using “approved/approve” (you’re building Cancel).
Change sysparm_target_state to your Canceled state value
Don’t set the state to approved
Don’t hardcode the sys_id
Use: var sysID = g_form.getUniqueValue();
Find where promptCheck is defined and make sure it loads on the Change form
Go to System UI → UI Scripts
Search the script contents for: function promptCheck
Once you find it, you need that same UI script (or UI macro) to be included/loaded on the Change form, otherwise promptCheck() will never exist there.
Quick sanity check you can add right now before calling it:
if (typeof promptCheck !== 'function') {
g_form.addErrorMessage("eSignature script isn't loaded on this form, so promptCheck() can't run.");
return;
}@naresh831 - Please mark as Accepted Solution and Thumbs Up if you found Helpful!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago - last edited 4 weeks ago
@Matthew_13 promptCheck is in on Submit Client script on approval table, I've recreated the same client script on Change_request table. Once I enable this client script, when I click cancel button getting onclick client function not available error..
It seems there are no UI Scripts/Macros.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
4 weeks ago
Indeed;
promptCheck() is not a global client function. It is loaded and supported only in the approval (sysapproval_approver) context by the Approval with e-Signature plugin.
When the approval onSubmit Client Script is copied to change_request it introduces a client-side error during form load because approval-specific dependencies are not available on the Change form. Once that error occurs, the page fails to register later client functions, which is why the Cancel UI Action throws:
“onclick client function not available”
(runClientCode() never loads).
This is not related to missing UI Scripts or Macros.
To enforce e-signature on Cancel Change, the logic must be implemented directly in the Cancel UI Action or a dedicated shared UI Script not by reusing approvaltable client scripts.
So at the end of day: It must be implemented inside the Cancel UI Action itself basically or via a prebuilt shared UI Script rather than reusing approval table client scripts.
Specifically:
Validate e-signature via ESignatureUtils.formUpdateCheck
Trigger the e-signature flow if required
On success, submit the Cancel UI Action normally
This basically keeps the logic self contained and avoids approval only dependencies.
@naresh831 - Please mark as Accepted Solution and Thumbs Up if you found Helpful!!
