Как получить данные из одного столбца таблицы в другой столбец таблицы в ServiceNow?

Я создал приложение ServiceNow, рабочий процесс которого:

  1. Пользователь создает новый инцидент с помощью модуля «Создать новый» в Инциденте.

  2. После отправки инцидента ему присваивается номер KA (статья базы знаний) на основе его краткого описания и других полей. Назначение номера КА выполняется моим скриптом Python.

  3. Инцидент и его номер KA хранятся в таблице под названием «Знания, применяемые к задачам (m2m_kb_task)». Инцидент хранится в m2m_kb_task в столбце «задача». Он хранится в виде ссылки, которая указывает на таблицу «Задачи». (Некоторая справочная информация: таблица инцидентов расширяет таблицу задач. Столбец «Число» в задаче используется как номер инцидента). Таким же образом номер KA сохраняется в m2m_kb_task в столбце kb_knowledge. Он также сохраняется как ссылка, которая указывает на таблицу kb_knowledge.

  4. Когда пользователь нажимает на инцидент, присутствующий в списке, он может увидеть статью базы знаний, прикрепленную к этому инциденту, в разделе «Ссылки по теме» -> вкладка «Прикрепленные знания».

Однако я хочу, чтобы номер статьи базы знаний (пример - KB0000011) также сохранялся в таблице инцидентов. Он должен храниться в отношении инцидента, которому он сопоставлен.

Есть ли к этому способ?


person Pratik Haware    schedule 17.04.2018    source источник


Ответы (1)


Выполните следующие действия, чтобы открыть страницу статьи, когда вы нажимаете Attached Knowledge tab ui action на связанных ссылках.

Шаг 1. Создайте новое действие пользовательского интерфейса в incident форме

Шаг 2: Откройте форму действия пользовательского интерфейса и убедитесь, что флажок form link установлен (истина). И флажок 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=");

Скриншот формы действия пользовательского интерфейса PFA.

введите здесь описание изображения

person Shivaji Varma    schedule 17.04.2018
comment
Я намерен получить номер KA и отправить его вместе с кратким описанием во внешнюю систему, используя сообщение REST и бизнес-правила. По этой причине я хочу сохранить номер KA в таблице инцидентов, так как краткое описание также хранится в таблице инцидентов. - person Pratik Haware; 18.04.2018
comment
почему бы вам просто не запросить его непосредственно перед вызовом REST. - person Shivaji Varma; 18.04.2018
comment
Спасибо за ваш ответ. Поскольку я новичок в разработке Service Now, можете ли вы предоставить фрагмент кода или шаги для выполнения вышеупомянутого требования? Нужно ли мне запрашивать таблицу m2m_kb_task в моем бизнес-правиле, учитывая тот факт, что мое бизнес-правило основано на таблице инцидентов. - person Pratik Haware; 19.04.2018
comment
@PratikHaware: Я могу вам с этим помочь. Можете ли вы уточнить свой вариант использования? Когда пользователь нажимает Attached Knowledge tab, вы хотите показать ему список статей базы знаний, прикрепленных к нему? (как в представлении списка новых страниц или другом представлении, таком как модальное окно) - person Shivaji Varma; 19.04.2018
comment
@PratikHaware: обновил ответ выше фрагментом кода :) - person Shivaji Varma; 19.04.2018
comment
Спасибо, Шиваджи :) - person Pratik Haware; 20.04.2018