Create Knowledge from Incident

Bcrant
Tera Contributor

Good afternoon. 

I'm noticing that our KA drafts created from Incident records are missing an author. The value is empty. I believe the value should populate with the Incidents resolved by or closed by value. Can anyone direct me to where this update should be made? I found a business rule "Incident Create Knowledge" and the script is copied below. When the system closes the INC record after 5 days, unless closed by customer, then the KA draft author is empty. 

 

var sub = gs.getProperty('glide.knowman.submission.workflow');

if (sub == 'true')
submitCandidate();
else
submitDirect();

function submitDirect() {
var kb = new GlideRecord("kb_knowledge");
kb.source = current.sys_id;
kb.short_description = current.short_description;
kb.sys_domain = current.sys_domain;
kb.text = current.comments.getHTMLValue();
kb.workflow_state = 'draft';
kb.kb_knowledge_base = gs.getProperty("glide.knowman.task_kb", "dfc19531bf2021003f07e2c1ac0739ab");
kbSysId = kb.insert();
if(kbSysId)
gs.addInfoMessage(gs.getMessage('Knowledge Article created: {0} based on closure of Incident: {1}', [kb.number, current.number]));
}

function submitCandidate() {
var gr = new GlideRecord('kb_submission');
gr.parent = current.sys_id;
gr.short_description = current.short_description;
gr.sys_domain = current.sys_domain;
gr.text = current.comments.getHTMLValue();
gr.insert();
gs.addInfoMessage(gs.getMessage('Knowledge Submission created: {0} based on closure of Incident: {1}', [gr.number, current.number]));

}

1 ACCEPTED SOLUTION

Brian Lancaster
Tera Sage

Here is what we are using.

var sub = gs.getProperty('glide.knowman.submission.workflow');

if (sub == 'true')
    submitCandidate();
else
    submitDirect();

function submitDirect() {
    var kb = new GlideRecord("kb_knowledge");
    kb.source = current.sys_id;
    kb.short_description = current.short_description;
    kb.sys_domain = current.sys_domain;
    kb.text = current.comments.getHTMLValue();
    kb.workflow_state = 'draft';
	kb.author = current.assigned_to;
	kb.kb_knowledge_base = gs.getProperty('kb_ss_sysId');
	kbSysId = kb.insert();
	if(kbSysId)
		gs.addInfoMessage(gs.getMessage('Knowledge Article created: {0} based on closure of Incident: {1}', [kb.number, current.number]));
}

function submitCandidate() {
    var gr = new GlideRecord('kb_submission');
    gr.parent = current.sys_id;
    gr.short_description = current.short_description;
    gr.sys_domain = current.sys_domain;
    gr.text = current.comments.getHTMLValue();
	gr.author = current.assigned_to;	
	gr.insert();
    gs.addInfoMessage(gs.getMessage('Knowledge Submission created: {0} based on closure of Incident: {1}', [gr.number, current.number]));

}

View solution in original post

2 REPLIES 2

Brian Lancaster
Tera Sage

Here is what we are using.

var sub = gs.getProperty('glide.knowman.submission.workflow');

if (sub == 'true')
    submitCandidate();
else
    submitDirect();

function submitDirect() {
    var kb = new GlideRecord("kb_knowledge");
    kb.source = current.sys_id;
    kb.short_description = current.short_description;
    kb.sys_domain = current.sys_domain;
    kb.text = current.comments.getHTMLValue();
    kb.workflow_state = 'draft';
	kb.author = current.assigned_to;
	kb.kb_knowledge_base = gs.getProperty('kb_ss_sysId');
	kbSysId = kb.insert();
	if(kbSysId)
		gs.addInfoMessage(gs.getMessage('Knowledge Article created: {0} based on closure of Incident: {1}', [kb.number, current.number]));
}

function submitCandidate() {
    var gr = new GlideRecord('kb_submission');
    gr.parent = current.sys_id;
    gr.short_description = current.short_description;
    gr.sys_domain = current.sys_domain;
    gr.text = current.comments.getHTMLValue();
	gr.author = current.assigned_to;	
	gr.insert();
    gs.addInfoMessage(gs.getMessage('Knowledge Submission created: {0} based on closure of Incident: {1}', [gr.number, current.number]));

}

Bcrant
Tera Contributor

Thanks @Brian Lancaster, looks like I just need to add kb.author to my script.