Показать значения всех полей записи. Аналог Show XLM

Добрый день!

Возможно, некоторые из вас помнят такую опцию пользовательского интерфейса в ServiceNow как Show XML, в которой находилась полная информация о текущей записи.

Ей было удобно пользоваться в тех случаях, когда некоторые поля формы скрыты и есть необходимость узнать их значение или наименование поля

Нечто подобное можно реализовать и в SimpleOne при помощи Table API.

Для этого нам потребуется создать новый UI Action [sys_ui_action] со следующими параметрами (расположение на ваше усмотрение):

  • Таблица: Глобальная таблица;
  • Наследуется: Да;
  • Условие: ss.hasRole(‘admin’);
  • На существующей записи: Да;
  • Дождаться ответа сервера: Да;
  • Позиция и стиль: В гамбургер меню;
  • Скрипт ss.setRedirect(`https://${ss.getProperty('simple.instance.uri')}/rest/v1/table/${current.getTableName()}/${current.sys_id}`); -

Тоже самое можно сделать и с использованием Client API:

s_go.open(`https://[INSTANCE]/rest/v1/table/${s_form.getTableName()}/${s_form.getUniqueValue()}`, '_target');

Не забудьте указать признак Клиентское = Да

Стоит упомянуть, что данный метод защищен авторизацией, поэтому при использовании попросит ввести данные учетной записи.

6 лайков

Шикарный интерфейсный сахар для разработчиков) Лайк)

Это опечатка или незнакомый мне сленг?)

Сленг) Синтаксический сахар — Википедия

2 лайка

Привет, Артем!

Объекты ss (SimpleSystem), current недоступны из клиентского API, это серверные объекты - их используем в Business Rules, Event Script Actions, Script Includes, UI Actions (с клиентское = нет), серверных скриптах виджетов и т.д.

Для реализации UI Action на клиенском API (клиентское=да) рекомендую воспользоваться методами SimpleForm: s_form.getTableName(), s_form.getUniqueValue(), а URL экземпляра парсить из window.location.origin

С уважением, Никита

Понял, большое спасибо, не то использовал :slight_smile:

1 лайк