What is this?
...
glide.ui.permitted_tables
Add sys_template as a permitted table, otherwise people won't be able to see the templates to attach to the knowledge article.
Roles
template_editor, template_editor_group or template_editor_global must be granted to allow people to alter and view the templates as well.
...
Code Block | ||
---|---|---|
| ||
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue == '')
return;
var template = g_form.getReference('u_kb_article_template').u_template;
var ga = new GlideAjax('YaleAjax');
ga.addParam('sysparm_name','hasChildTemplates');
ga.addParam('sysparm_template',template);
ga.getXML(hasTemplate);
function hasTemplate(response) {
answer = response.responseXML.documentElement.getAttribute("answer");
if(answer == 'true'){
// If there's child templates we have to save the record first
g_form.checkMandatory = false;
gsftSubmit(null, g_form.getFormElement(), 'apply_my_template');
}else{
// If there's no child record, no need to save before
applyTemplate(template);
}
}
} |
Script Include
We need to determine if there's child templates or not.
Code Block | ||
---|---|---|
| ||
var YaleAjax = Class.create(); YaleAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, { hasChildTemplates: function() { template = this.getParameter('sysparm_template'); gr = new GlideRecord('sys_template'); gr.get(template); if(gr.next != '' || gr.next_child != ''){ // If there's child templates return true return true; }else{ // There are no child templates return false; } }, _privateFunction: function() { // this function is not client callable } }); |
UI Action
This handles the case when there are tasks on the template and the record needed to be saved first.
Action Name : apply_my_template
Code Block | ||
---|---|---|
| ||
action.setRedirectURL(current);
current.applyTemplate(current.u_kb_article_template.u_template.name);
current.update(); |
References
https://community.servicenow.com/thread/143298
...