НАЧАЛО >> Workflow >> Модули Workflow >> WorkflowScreen📄 Скачать в DOCX
Модуль WorkflowScreen хранит описания экранов ввода для workflow-переходов и операций над записью. Экран указывает схему he3, которую нужно открыть для редактирования текущей записи: полный рабочий лист .ws или рабочий лист подполей .wss.
| Поле | Назначение |
|---|---|
920 |
тип записи WORKFLOWSCREEN |
1^A |
ключ workflow |
1^B |
ключ экрана |
1^C |
название экрана |
1^D |
активность |
1^E |
имя схемы he3 без расширения: .ws или .wss |
1^F |
описание |
1^G |
область применения: transition, create, edit, view, public, internal или any |
1^H |
версия экрана |
1^I |
разрешение публичного renderer-а |
1^J |
список методов ввода, разрешенных публичной форме |
1^K |
TTL черновика формы в секундах |
1^L |
тип схемы: ws или wss |
1^M |
поле записи, к которому применяется WSS-схема |
Для полного экрана используется тип ws: в поле 1^E указывается имя .ws без пути. Такой экран редактирует набор полей записи, описанный рабочим листом.
Для частичного экрана используется тип wss: в поле 1^E указывается имя .wss, а в 1^M - номер поля записи. Такой экран показывает только подполя из WSS и при сохранении меняет только эти подполя, сохраняя остальные подполя поля.
Если полный .ws содержит поле с вложенной .wss-секцией, Workflow тоже применяет такое поле частично: меняются подполя, описанные вложенной WSS, а остальные подполя того же поля сохраняются.
Расширение .ws или .wss можно не указывать, если тип схемы заполнен явно. Сам файл должен быть доступен he3 в обычном месте для рабочих листов модуля или системы.
Если экран не указан, Workflow не открывает форму и переход выполняется без запроса дополнительных данных.
Для сложных секций рабочий лист может использовать специальные методы ввода 128001 и 128002. Их настройки задаются в DopInf в формате JSON. Такой подход позволяет редактировать данные штатно через he3 без отдельного предварительного построения черновика формы.
WorkflowScreen может построить упрощенную HTML-форму по .ws или .wss для страниц создания, где нельзя показывать пользователю полный редактор he3. Такая форма использует ту же схему и те же storage-binding правила, но поддерживает только явно разрешенный ограниченный набор элементов ввода: text, textarea, radio, sidtexteditor, sidfilelist.
Публичная форма включается явно через 1^I. Если в схеме есть редактируемое поле с неподдерживаемым методом ввода, форма не выводится частично: модуль возвращает диагностическую ошибку настройки. При сохранении модуль заново читает .ws или .wss, переносит в запись только разрешенные поля и применяет настройки 128001/128002.
Для сценариев публичного ввода может создаваться запись-черновик WORKFLOWSCREENDRAFT. В ней хранится ключ экрана, версия экрана, проект, тип записи, пользователь или сессия, trace id, срок жизни и безопасный JSON payload формы. Перед применением данных экран повторно валидируется по текущей .ws или .wss схеме.
Типовые методы:
| Метод | Назначение |
|---|---|
CreateScreen() |
создать объект экрана |
GetScreens() |
получить экраны workflow |
GetScreenByKey() |
найти экран по ключу |
GetScreenSelectList() |
сформировать список выбора |
GetScreenSchema() |
разобрать .ws или .wss в типизированную схему he3 |
ValidatePublicFormSchema() |
проверить, что экран пригоден для публичной формы |
RenderPublicForm() |
построить публичную HTML-форму по рабочему листу |
ApplyPublicFormToRecord() |
применить данные публичной формы к записи |
CreateDraft() |
создать объект черновика публичного экрана |