Формулировка проблемы: В текущей реализации форм и процессов нет возможности использовать для процессов значения тех компонентов формы, которые находятся внутри обычных и динамических таблиц.
Решение:
Во-первых, необходимо избавиться от жёстко заданных идентификаторов компонентов, которые будут использоваться в качестве параметров в какомлибо процессе. Для того, чтобы это осуществить, необходимо изменить настройки процессов действия (в маршрутах реестров). Процессы должны иметь иметь 2 группы настроек:
-- название — текстовое поле, которое содержит то, что будет отображаться в ходе исполнения процесса (аналогично названию работы).
-- параметры процесса — представляют собой названия параметров (их список для каждого типа процесса действия приведен в таблице) и текстовые поля для ввода идентификаторов компонентов формы реестра. Настройка параметров процесса доступна в отдельном диалоге, который доступен по нажатию кнопки «Параметры».
Действие | Параметры действия |
---|---|
Назначение на должность |
|
Перевод |
|
Увольнение |
|
Копирование в личное дело |
|
Назначение календаря |
|
Замечание: Для того, чтобы не сломать работоспособность созданных и настроенных до данной итерации реестров, содержащих процессы действия, необходимо сделать следующее:
для уже существующих, а также вновь создаваемых процессов действия задать такие значения идентификаторов параметров процесса по умолчанию, какие ранее были заданы жёстко, например, для процесса «Перевод»:
Пользователь — userID
;
Должность, с которой нужно перевести пользователя —
fromPositionID
;
Должность, на которую нужно перевести пользователя —
toPositionID
;
Полный список таких идентификаторов можно найти здесь
Во-вторых, доступ к значениям компонентов формы реестра, которые находятся внутри обычной либо динамической таблицы, должен осуществляться следующим образом:
dyntable.componentID,
где componentID
- идентификатор компонента внутри
таблицы с идентификатором dyntable
.
Для всех N
(по числу строк динамической таблицы)
запускается собственный экземпляр процесса действия, параметром
которого является компонент, находящийся в динамической таблице.
Кроме того, в параметрах процесса можно сочетать как идентификаторы
компонент, находящихся в динамических таблицах, так и идентификаторы
компонент, находящихся вне таблиц либо в обычных таблицах — в этом
случае одно и то же значение «нединамического» компонента будет
взято для каждого экземпляра процесса. Использование в параметрах
процесса компонент из двух и более различных динамических таблиц не
допускается — в этом случае пользователю должно быть показана ошибка
«Использование в параметрах процесса компонент из двух и более
различных динамических таблиц не допускается».
Макет дизайна: