Конфигурационные единицы

Добрый день,

можно ли руками не программиста сделать так, чтобы при выборе определенного типа КЕ, менялись аттрибуты карточки КЕ.
Пример (грубый).
Тип: сервер
Поля:
1. название
2. модель
3. IP адрес

или

Тип: интернет
Поля:
1. провайдер (сидит в контрагентах)
2. метод подключения
3. скорость
4. тариф

Если да, то как?
Спасибо.

Нравится

11 комментариев

Здравствуйте, Кирилл!

Функциональность пользовательских полей позволяет показывать либо скрывать добавленные поля в зависимости от типа.

Для этого следует при настройке пользовательских полей указать, для каких типов их показывать. Все настройки можно произвести в мастере настройки пользовательских полей в клиентнской части Terrasoft.

Инструкция по работе с пользовательскими полями есть у Руководстве администратора в разделе Подготовка системы к работе - настройка пользовательских полей.

123

Анна, спасибо.
Но относится ли данное решение к BPMOnline Service Desk?
Я так понимаю, что вы мне дали решения для Terrasoft Service Desk

Кирилл, без программирования этого сделать не получится.

Для того, чтобы поле скрывалось в зависимости от типа, следует в процесс карточки в скрипт на PageLoadComplete добавить следующие строки:

Page.<поле_карточки>.Enabled = Page.DataSource.ActiveRow.GetTypedColumnValue<Guid>("TypeId") != {идентификатор_типа};

Анна, спасибо!
Не могли бы вы "на пальцах" объяснить, как попасть в процесс карточки и найти там этот скрипт.
Заранее благодарен.

Кирилл, в данном конкретном случае Вам следует выполнить такие шаги:

1. Войти в BPMonline под учетной записью администратора и открыть конфигурацию.

2. Найти карточку редактирования конфигурационных единиц и открыть ее на редактирование:

111

3. Выбрать поле, которое планируется скрывать, и скопировать его название.

111

4. Открыть процесс карточки:

111

5. Найти обработчик события PageLoadComplete, и в его скрипт добавить программный код, который скрывает или показывает поле в зависисмости от типа. В данном конкретном случае поле недоступно для редактирования, если не заполнено другое поле карточки:

111

6. Затем найдите скрипт обработчика изменения типа, и добавьте в него аналогичный программный код:

111

7. Сохраните и опубликуйте процесс.

111

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

Анна, прошу прощения за задержку.
Во-первых, спасибо!

"Alimova Anna" написал:ля того, чтобы я могла предоставить окончательный вариант программного кода, мне нужны точные условия, при которых поля будут показываться/скрываться.

Допустим,
Выбираем тип "провайдер" и скрываем поле "серийный номер".

Page.SerialNumberEdit.Enabled = (Page.DataSource.ActiveRow.GetTypedColumnValue<Guid>("TypeId") == new Guid("{4bdbb88f-58e6-df11-971b-001d60e938c6}"));

Куда вставлять код?

Код следует вставить в обработчики событий OnPageLoadComplete и TypeEditChange:

change

непосредственно перед строкой return

Как определить уникальный идентификатор для подстановки?

Это можно сделать в окне справочника - в адресной строке браузера:

getid

Добрый день,
Подскажите, как решить аналогичную задачу средствами BPMonline 7.5?

"Бычков Кирилл" написал:

Добрый день,

можно ли руками не программиста сделать так, чтобы при выборе определенного типа КЕ, менялись аттрибуты карточки КЕ.

Пример (грубый).

Тип: сервер

Поля:

1. название

2. модель

3. IP адрес

или

Тип: интернет

Поля:

1. провайдер (сидит в контрагентах)

2. метод подключения

3. скорость

4. тариф

Если да, то как?

Спасибо.

Подписаться на обновления этого материала

Если в разделе должны использоваться отдельные страницы редактирования для записей разного типа, то в мастере раздела можно установить признак [Несколько страниц редактирования] в истина.

В качестве поля, содержащее информацию о типе записи указать поле Тип. (Поле отобразится после установки флага [Несколько страниц редактирования])

Затем с помощью мастера раздела для каждого типа КЕ настраиваете страницу редактирования.

Более подробное описание в документации Документация

Спасибо за подсказку. Еще такой вопрос,
В БД при таком способе реализации, после создания раздела с отдельными страницами редактирования, все созданные КЕ будут хранится в разных таблицах в зависимости от Типа, или в одной таблице ConfItem, как это сейчас.

Конечно же все будет храниться в одной таблице. Будет несколько карточек редактирования.
А поля, которые не будут выведены для заданного типа на карточку редактирования, будут иметь значение по умолчанию.
Значение по умолчанию можно поменять в свойствах объекта.

Показать все комментарии