Добрый день,
можно ли руками не программиста сделать так, чтобы при выборе определенного типа КЕ, менялись аттрибуты карточки КЕ.
Пример (грубый).
Тип: сервер
Поля:
1. название
2. модель
3. IP адрес
или
Тип: интернет
Поля:
1. провайдер (сидит в контрагентах)
2. метод подключения
3. скорость
4. тариф
Если да, то как?
Спасибо.
Нравится
Здравствуйте, Кирилл!
Функциональность пользовательских полей позволяет показывать либо скрывать добавленные поля в зависимости от типа.
Для этого следует при настройке пользовательских полей указать, для каких типов их показывать. Все настройки можно произвести в мастере настройки пользовательских полей в клиентнской части Terrasoft.
Инструкция по работе с пользовательскими полями есть у Руководстве администратора в разделе Подготовка системы к работе - настройка пользовательских полей.
Анна, спасибо.
Но относится ли данное решение к BPMOnline Service Desk?
Я так понимаю, что вы мне дали решения для Terrasoft Service Desk
Кирилл, без программирования этого сделать не получится.
Для того, чтобы поле скрывалось в зависимости от типа, следует в процесс карточки в скрипт на PageLoadComplete добавить следующие строки:
Page.<поле_карточки>.Enabled = Page.DataSource.ActiveRow.GetTypedColumnValue<Guid>("TypeId") != {идентификатор_типа};
Анна, спасибо!
Не могли бы вы "на пальцах" объяснить, как попасть в процесс карточки и найти там этот скрипт.
Заранее благодарен.
Кирилл, в данном конкретном случае Вам следует выполнить такие шаги:
1. Войти в BPMonline под учетной записью администратора и открыть конфигурацию.
2. Найти карточку редактирования конфигурационных единиц и открыть ее на редактирование:
3. Выбрать поле, которое планируется скрывать, и скопировать его название.
4. Открыть процесс карточки:
5. Найти обработчик события PageLoadComplete, и в его скрипт добавить программный код, который скрывает или показывает поле в зависисмости от типа. В данном конкретном случае поле недоступно для редактирования, если не заполнено другое поле карточки:
6. Затем найдите скрипт обработчика изменения типа, и добавьте в него аналогичный программный код:
7. Сохраните и опубликуйте процесс.
Для того, чтобы я могла предоставить окончательный вариант программного кода, мне нужны точные условия, при которых поля будут показываться/скрываться.
Анна, прошу прощения за задержку.
Во-первых, спасибо!
"Alimova Anna" написал:ля того, чтобы я могла предоставить окончательный вариант программного кода, мне нужны точные условия, при которых поля будут показываться/скрываться.
Допустим,
Выбираем тип "провайдер" и скрываем поле "серийный номер".
Page.SerialNumberEdit.Enabled = (Page.DataSource.ActiveRow.GetTypedColumnValue<Guid>("TypeId") == new Guid("{4bdbb88f-58e6-df11-971b-001d60e938c6}"));
Куда вставлять код?
Код следует вставить в обработчики событий OnPageLoadComplete и TypeEditChange:
непосредственно перед строкой return
Как определить уникальный идентификатор для подстановки?
Это можно сделать в окне справочника - в адресной строке браузера:
Добрый день,
Подскажите, как решить аналогичную задачу средствами BPMonline 7.5?
"Бычков Кирилл" написал:Добрый день,
можно ли руками не программиста сделать так, чтобы при выборе определенного типа КЕ, менялись аттрибуты карточки КЕ.
Пример (грубый).
Тип: сервер
Поля:
1. название
2. модель
3. IP адресили
Тип: интернет
Поля:
1. провайдер (сидит в контрагентах)
2. метод подключения
3. скорость
4. тарифЕсли да, то как?
Спасибо.
Если в разделе должны использоваться отдельные страницы редактирования для записей разного типа, то в мастере раздела можно установить признак [Несколько страниц редактирования] в истина.
В качестве поля, содержащее информацию о типе записи указать поле Тип. (Поле отобразится после установки флага [Несколько страниц редактирования])
Затем с помощью мастера раздела для каждого типа КЕ настраиваете страницу редактирования.
Более подробное описание в документации Документация
Спасибо за подсказку. Еще такой вопрос,
В БД при таком способе реализации, после создания раздела с отдельными страницами редактирования, все созданные КЕ будут хранится в разных таблицах в зависимости от Типа, или в одной таблице ConfItem, как это сейчас.
Конечно же все будет храниться в одной таблице. Будет несколько карточек редактирования.
А поля, которые не будут выведены для заданного типа на карточку редактирования, будут иметь значение по умолчанию.
Значение по умолчанию можно поменять в свойствах объекта.