我制作了一个ServiceNow应用程序,其工作流程为:
用户使用“事件”中的“新建”模块创建新事件。
提交事件后,根据其简短描述和其他字段为其分配KA编号(知识文章)。 KA编号的分配由我的Python脚本完成。
事件及其KA编号存储在名为“知识应用于任务(m2m_kb_task)”的表中。事件存储在'task'列中的m2m_kb_task中。它存储为指向“任务”表的链接。 (一些背景信息:事件表扩展了任务表。任务中的'Number'列用作事件编号)。以相同的方式,KA编号存储在'kb_knowledge'列下的m2m_kb_task中。它也存储为指向'kb_knowledge'表的链接。
当用户点击列表中出现的事件时,她可以在相关链接中看到该事件附带的知识文章 - >附加知识选项卡
但是,我希望知识文章编号(示例 - KB0000011)也存储在事件表中。它应该根据映射到的事件进行存储。
有没有办法解决这个问题?
答案 0 :(得分:1)
点击相关链接上的Attached Knowledge tab
ui操作后,请按照以下步骤打开文章页面。
第1步:在incident
表单
步骤2:打开ui操作表单,看到form link
复选框已选中(true)。并且Client
复选框未选中(false)
步骤3:将以下代码粘贴到“脚本”部分。
var m2mGr = new GlideRecord('m2m_kb_task');
m2mGr.addQuery('task', current.sys_id); // current represents incident on opened page
m2mGr.query();
if(m2mGr.next()){
action.setRedirectURL("/kb_view.do?sys_kb_id="+m2mGr.kb_knowledge); // Open article view
//In case you what to open knowledge record instead of view.
/*
var kbGr = new GlideRecord('kb_knowledge');
kbGr.get(m2mGr.kb_knowledge)
action.setRedirectURL(kbGr);
*/
} else {
gs.addInfoMessage("No article found related to incident :" + current.sys_id)
}
如果您认为会有多篇文章附加到事件中,那么最好将知识列表页面显示给任务。你可以简单地使用下面的代码来做到这一点。
action.setRedirectURL("/m2m_kb_task_list.do?sysparm_query=task.sys_id%3D" + current.sys_id + "&sysparm_first_row=1&sysparm_view=");
UI动作表单的PFA屏幕截图。