Форма
Назначение
Форма - это невидимая компонента-контейнер, которая является источником подгрузки данных на странице пользовательского интерфейса. С помощью элемента Форма осуществляется запрос информации из базы данных во вложенные в Форму дочерние компоненты и сохранение введенной пользователем информации из дочерних компонент в базу данных по единственному идентификатору основной единицы создаваемого интерфейса (например, одной задаче в проекте, одному артикулу товара, одному сотруднику в коллективе и прочее).
Все другие визуальные компоненты, которые будут отображать или сохранять информацию в/из базы данных на странице приложения, должны обязательно находится внутри компоненты-контейнераФорма, поскольку именно из неё, как из источника данных, они берут ссылки на таблицы и колонки базы данных, с которыми будут оперировать.
Форма может работать в двух режимах:
- После события сохранения (обновления) данных в визуальных компонентах, входящих в компоненту Форма, веб-страница запущенного приложения завершает текущую задачу (BPMNUSER TASK) и переходит к следующей задаче по бизнес-процессу;
- После события сохранения (обновления) данных в визуальных компонентах, входящих в компоненту Форма, веб-страница запущенного приложения не завершает текущую задачу (BPMNUSER TASK), не переходит к следующей задаче по бизнес-процессу, а остается в том же экранном интерфейсе. Для принудительного завершения текущей задачи (BPMNUSER TASK) и перехода к следующей задаче по бизнес-процессу, необходимо воспользоваться компонентой Кнопка навигации.
Компонента Форма находится в разделе Компоненты - Контейнеры - Форма
Свойства
Компонента имеет набор общих свойств, подгрузка данных, подгрузка данных по умолчанию.
Подгрузка данных основная

описывает запрос к базе данных, результаты которого позволяют наполнить вложенные видимые компоненты значениями из базы данных при открытии веб-страницы приложения. Является обязательным к заполнению и настройке.
- с помощью визуального конструктора запросов позволяет задать Граф сущностей, т.е. указать объекты базы данных, условия и взаимосвязи между ними для получения и отображения информации на веб-странице и/или ее сохранения.
- с помощью параметра Переменная процесса с идентификатором позволяет ограничить результаты полученного запроса единственным идентификатором смысловой единицы создаваемого интерфейса. - Datasource Jndi Name - позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.
Значение данного свойства может быть задано следующим образом: java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файле standalone.xml (аналогично тому, как указывается, например, подключение к базе данных безопасности) (рис.1)

рис.1 Настройка файла standalone.xml
В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).
Подгрузка данных по умолчанию

описывает запрос к базе данных, результаты которого позволяют наполнить вложенные видимые компоненты значениями по умолчанию из базы данных при открытии веб-страницы приложения, для тех случаев, когда результат запроса из основной подгрузки данных пуст. Не является обязательным к заполнению и настройке.
- с помощью визуального конструктора запросов позволяет задать Граф сущностей, т.е. указать объекты базы данных и взаимосвязи между ними для получения и отображения на веб-странице информации по умолчанию, но не ее сохранения
- с помощью параметра Переменная процесса с идентификатором позволяет ограничить результаты полученного запроса единственным идентификатором смысловой единицы создаваемого интерфейса.
Datasource Jndi Name - позволяет задать иной источник (базу данных) для выполнения запроса, заданного с помощью элементов базы данных в редакторе Графа сущностей элемента.
Значение данного свойства может быть задано следующим образом:java:/webbpm/AppRepDS, а сам адрес базы данных, логин и пароль для подключения должен быть указан в файлеstandalone.xml(аналогично тому, как указывается, например, подключение к базе данных безопасности) (рис.1)

рис.1 Настройка файла standalone.xml
В случае, если данное свойство не заполнено, запрос выполняется в базе данных, указанной в конфигурации проекта (во вкладке База данных).
| Наименование свойства | Назначение свойства | Принимаемые значения |
|---|---|---|
| Шаблон сообщения валидации (Message validation template) | позволяет задать шаблон вывода сообщения (текст сообщения), отображаемого в окне ошибки при валидации значений фильтров. По умолчанию шаблон сообщения выставлен как: "\#{label}: \#{message}", где параметры интерпретируются следующим образом: \#{label} - наименование компоненты, в которой произошла ошибка \#{message} - текст сообщения об ошибке |
Примеры возможной настройки: При пустом значений в поле* Message Validation Template* текст в окне об ошибке, отображаемом, например, при не заполнении значения в обязательном поле, будет отображаться по шаблону "\#{label}: \#{message}", где \#{label} - наименование компоненты, в которой произошла ошибка (например, поле ФИО) \#{message} - текст сообщения об ошибке (значение по умолчанию Поле обязательно). |
Базовые функции
Функция основных свойств компоненты “Форма в режиме перехода”
По умолчанию компонента Форма работает в режиме перехода к следующей задаче послесохранения (обновления) данных.
Указанную функциональность обеспечивает функция “Форма с переходом.Основные параметры”, и она автоматически назначается на компоненту Форма при переносе ее из библиотеки компонентов в структуру страницы в конструкторе экранного интерфейса.
Является альтернативой функции Форма_без_перехода_Основные_параметры. Для компоненты “Форма” может быть назначена только одна из этих функций, иначе система будет генерировать ошибку при сборке приложения.
Описание параметров функции находится в таблице Свойства → Основные параметры.


Дополнительные функции
После настройки базовых свойств и функций компоненты может возникнуть необходимость в расширении базовой функциональности компоненты для выполнения поставленной задачи и получения необходимого результата.
Для каждой компоненты предусмотрен перечень функций, расширяющих её базовую функциональность, которые можно добавить нажатием кнопки Добавить скрипт.
Для удаления из компоненты ошибочно добавленной функции или функции в которой нет необходимости используется элемент Ключ с шестеренкой, расположенный справа от наименования функции. По нажатию на элемент есть возможность Удалить функцию.
Вследствие технических особенностей реализации функций (
- функции, которые выполняются удаленно на сервере приложений,
- функции, которые выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.
Функция основных свойств компоненты “Форма без перехода”
По умолчанию компонента Форма работает в режиме перехода к следующей задаче послесохранения (обновления) данных.
Для перевода компоненты Форма в режим “без перехода” следует удалить скрипт Форма с переходом. Основные параметрыиз компоненты (рис.1) и назначить функцию Форма без перехода. Основные параметры (рис. 2).
Является альтернативой функции Форма с переходом. Основные параметры. Для компоненты “Форма” может быть назначена только одна из этих функций, иначе система будет генерировать ошибку при сборке приложения.
Описание параметров функции находится в таблице Свойства → Основные параметры.

Рис.1

Рис.2
Определить права текущего пользователя
Определить роли текущего пользователя
Определить роли текущего пользователя
Методические рекомендации по применению
Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:
Часто задаваемые вопросы
| Вопрос | Ответ |
|---|---|
| Если компонента Форма является источником данных для входящих в нее элементов, обязательно ли ее присутствие на любой создаваемой странице ? | Нет, не обязательно.Использование компоненты Форма чаще всего обуславливается необходимостью отображения так называемой “карточки сущности”, когда на одной странице нужно вывести в отдельных полях разных типов несколько характеристик одной единицы учета. Но для страниц, содержащих, например, табличное представление данных, так называемый “реестр единиц учета”, компонента Форма не нужна (поскольку компонент Таблица имеет собственный настраиваемый источник данных). |
| Что такое имплементация и функций и для чего они нужны? | Имплементация - это один из вариантов реализации. Функция выполняет некоторое полезное с точки зрения аналитика действие, задуманное им для реализации поставленной задачи. Но внутри функции это полезное действие может быть исполнено разными способами, предложенными разработчиками платформы. Ярким примером служит функция подгрузки данных. Она выполняет полезное действие - подгружает данные, но может подгружать их способом формирования и исполнения SQL запроса, а может подгружать способом считывания из переменной. В данном случае функция одна, а вариантов реализации полезного действия - два. Значит, существует две имплементации одной функции. |
| Можно ли сохранить/подгрузить данные в визуальные компоненты не только в/из базы данных, но и в/из переменной процесса? | Да, можно. Для подгрузки значения в визуальную компоненту из переменной процесса следует воспользоваться функцией Заполнить значением из переменной процесса, а для сохранения значения из визуального компонента в переменную процесса - функцией Сохранить значение в переменную процесса. |
| Можно ли заполнить визуальный компонент внутри компоненты Форма значением по умолчанию, когда страница с “карточкой сущности” открывается пустой для создания новой записи? | Да, можно. Поскольку источником данных для визуального компонента является компонента Форма, то следует воспользоваться функцией Подгрузка данных по умолчанию и настроить подгрузку данных по умолчанию. В самой визуальной компоненте указать таблицу и колонку из ‘графа сущностей для получения значений по умолчанию’. Тогда при открытии веб-страницы приложения компонент Форма сформирует 2 запроса - по основному графу сущности данных не будет (поскольку это веб-страница создания карточки), а по ‘графу сущностей данных по умолчанию’ (с иной логикой формирования запроса, чем в основной ) будут выбраны и смогут быть предустановлены в визуальные компоненты в качестве предлагаемых по умолчанию |
| Чем отличается функциональность набора свойств (Видимость, Обязательность, Недоступно для управления, Подлежит сохранению) у компоненты-контейнера от функциональности одноименных свойств обычной компоненты? | Функциональность набора свойств (Подлежит сохранению,Обязательность, Видимость,Недоступно для управления) у компоненты-контейнера отличается от функциональности одноименных свойств у обычной компоненты тем, что значение указанных свойств наследуется с компоненты-контейнера на все компоненты, входящие в состав такой компоненты-контейнера. Правила наследования таковы, что если у вложенного объекта соответствующее свойство выставлено в значение Истина, то оно следует судьбе этого же свойства у компоненты-контейнера, если же значение соответствующего свойства у вложенной компоненты отличается от значения Истина, то наследования значения этого свойства от компоненты-контейнера не происходит, компонента функционирует в соответствии с собственными настройками. |