knowledge checkbox on incident form
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2024 06:11 AM
Hi,
We have the knwoledge checkbox on the incident form under the resolution tab, we have set it up when a user resolves a ticket and checks the box it creates an KB article in draft.
The knowledge base it creates it in is some kind of default knowledge base which is set by a BR script, we want to prompt the user to select the correct knowledge base.
any ideas ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2024 08:52 AM
Hi @jean-pauldehaas ,
1. Deactivate the OOTB BR to create Knowledge when Checkbox is true and incident changes to Closed.
2. Create onSubmit client script with below script:
function onSubmit() {
if (g_scratchpad._action_confirmed) {
return true;
}
var state = g_form.getValue('state');
var knowledge = g_form.getValue('knowledge');
var shortDes = g_form.getValue('short_description');
var num = g_form.getValue('number');
if (state == '7' && knowledge) {
var gm = new GlideModal("glide_prompt", true, 600);
gm.setTitle("Confirm Knowledge Base");
gm.setPreference("title", "Please enter the knowledge base");
gm.setPreference("onPromptComplete", doComplete);
gm.setPreference("onPromptCancel", doCancel);
gm.render();
}
function doComplete(value) {
if (value != '') {
var ga = new GlideAjax('validateHelper');
ga.addParam("sysparm_name", 'createArticle');
ga.addParam("sysparm_input", value.toString());
ga.addParam("sysparm_sysID", g_form.getUniqueValue());
ga.addParam("sysparm_shortDes", shortDes);
ga.addParam("sysparm_num", num);
ga.getXMLAnswer(getResponse);
} else alert('You should enter the knowledge base');
}
function getResponse(response) {
if (response != 'Knowledge base not found') {
g_scratchpad._action_confirmed = true;
gsftSubmit(null, g_form.getFormElement(), g_form.getActionName());
g_form.addInfoMessage(response);
} else alert(response);
}
function doCancel(value) {
alert("in doCancel. Update is aborted. value = " + value);
}
return false;
}
3. Create a Script Include "validateHelper", Client callable is True, with Script as below:
createArticle: function() {
var result;
var input = this.getParameter('sysparm_input');
var sysID = this.getParameter('sysparm_sysID');
var shortDes = this.getParameter('sysparm_shortDes');
var num = this.getParameter('sysparm_num');
var base = new GlideRecord("kb_knowledge_base");
base.addQuery('title', input);
base.query();
if (base.next()) {
var kb = new GlideRecord("kb_knowledge");
kb.source = sysID;
kb.short_description = shortDes;
kb.sys_domain = 'global';
kb.workflow_state = 'draft';
kb.kb_knowledge_base = base.getUniqueValue();
kbSysId = kb.insert();
if (kbSysId) {
result = gs.getMessage('Knowledge Article created: {0} based on closure of Incident: {1}', [kb.number, num])
}
} else result = 'Knowledge base not found';
return result;
},
Please test it and give your feedback.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 12:31 AM
@Community Alums thanks i tried it but nothing pops up where i can enter the knowledge base when i resolve an incident.
any idea?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 01:07 AM
@jean-pauldehaas you mean there was no pop-up modal? I tried multiple times it worked.
Could you check if this condition is correct? Which of the below alerts appear?
alert(state + ' ' + knowledge)
if (state == '7' && knowledge) {
alert('condition true')
}
Note that you have to change the Incident state from other states to Closed and Knowledge checkbox is ticked -> Save the record -> Modal displays
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 01:19 AM - edited 04-11-2024 01:20 AM
@Community Alums this is how the client script looks like :
The 2 alert lines were not in your previous script
also it needs to appear on resolve not closed but thats why i changed 7 to 6
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2024 01:49 AM
@jean-pauldehaas The client script should run on Incident table, this is where we handle the pop-up