logo

[ELMA3] Список объектов в виде списка форм в процессных задачах

В ELMA с версии 3.11.8 появилась возможность работать со списком объектов в виде списка форм этого объекта. Данное решение можно использовать в процессных задачах, в некоторых случаях заменяет работу с блоками.

Ограничения:

  • для работы со списком объектов необходима привилегия «Доступ к справочникам», также учитываются права доступа на сам справочник: создание, просмотр и редактирование;
  • нельзя выбрать существующую запись справочника в контекст процесса — только создание новых;
  • добавленные записи справочника сохраняются сразу в базу данных, при удалении запись удаляется только из контекста процесса, сам элемент справочника не удаляется;
  • при настройке списка на форме задачи «Только для чтения» в некоторых версиях ELMA остается возможность редактирования, создания и удаления записей. Для исключения данных действий есть «обходной путь», описан ниже;
  • ведутся работы по отображению записей справочников в виде таблицы, а не форм (в разработке на данный момент).

Рассмотрим настройки, которые необходимо произвести в Дизайнере ELMA, и пример отображения настроенной формы в веб-приложении.

В процессе добавляем контекстную переменную со списком объектов (связь Многие-ко-многим). Для объекта настраиваем формы просмотра/редактирования. Формы могут быть динамическими, с различными сценариями.

Выносим контекстную переменную на форму задачи, добавляем форму Razor для отображения в данной задаче:Рис. 1. Добавление формы Razor

Рис. 1. Добавление формы Razor

В форме Razor выбираем:

  • интерфейс для редактирования, если контекстная переменная может быть изменена на данной задаче;
  • интерфейс для просмотра, если контекстная переменная в режиме «Только для чтения».

Рис. 2. Стандартная форма Razor

Изменяем стандартную форму представления:

Рис. 3. Измененная форма Razor

@using EleWise.ELMA.Web.Mvc.Html

@using EleWise.ELMA.BPM.Web.Common.Mvc.html @*(Только с версий 3.12.16 / 3.13.16)*@

@Html.EntityCollection(new Guid("8316e41e-0e70-4800-b1be-1afe3e5b6022"))

где «new Guid("8316e41e-0e70-4800-b1be-1afe3e5b6022"» — это Guid формы редактирования объекта, можно узнать в настройках формы объекта.

Рис. 4. Guid формы объекта

Сохраняем форму, публикуем процесс.

Рис. 5. Стандартное отображение списка объектов

Рис. 6. Новый вид списка объектов

При наведении на форму экземпляра объекта появляется выделение, и доступны кнопки редактирования и удаления записи справочника.

Рис. 7. Кнопки для редактирования и удаления

Запрет редактирования и удаления для вывода записей в виде форм только для просмотра

Отображение списка элементов объекта в задаче в режиме «Только для чтения» на текущий момент не учитывается. Можно использовать следующий «обходной путь»:

В форму Razor добавить следующий код для скрытия иконок редактирования, удаления и кнопки создания:

<style>

       #Entity_ИмяСвойстваКонтекстнойПеременной_ValueContainer .button

       {

             display: none !important;

       }

</style>

Скрывать можно не все элементы, например,

удаление:

<style>

       #Entity_ ИмяСвойстваКонтекстнойПеременной_ValueContainer .entity-collection-delete-icon

       {

             display: none !important;

       }

</style>

редактирование:

<style>

       #Entity_ ИмяСвойстваКонтекстнойПеременной_ValueContainer .entity-collection- edit-icon

       {

             display: none !important;

       }

</style>

Рис. 8. Пример Razor формы со скрытыми кнопками управления списком объектов