НАЧАЛО >> Workflow >> Модули Workflow >> WorkflowFilter📄 Скачать в DOCX
Модуль WorkflowFilter хранит сохраненные фильтры списков workflow-записей. Фильтр описывает поисковое выражение, ограничения по статусам, правила обработки HTTP-параметров страницы, возможность материализации тяжелых выборок и контракты подписок.
| Поле | Назначение |
|---|---|
920 |
тип записи WORKFLOWFILTER |
1^A |
ключ workflow |
1^B |
ключ фильтра |
1^C |
название фильтра |
1^D |
активность |
1^E |
тип записи v920 |
1^F |
режим списка |
1^G |
ограничивать проектом |
1^H |
разрешить HTTP-параметр status |
1^I |
префикс текстового поиска |
1^J |
описание фильтра |
1^K |
область видимости: system, project, shared, personal |
1^L |
версия фильтра |
1^M |
включить материализацию фильтра |
1^N |
срок свежести материализованного среза в секундах |
1^O |
разрешить подписки на фильтр |
2^A |
базовое поисковое выражение |
2^C |
коды статусов |
3^A |
имя HTTP-параметра |
3^B |
поисковый префикс |
3^C |
название параметра |
3^D |
тип значения: string, integer, date, user, status |
3^E |
обязательность параметра |
3^F |
признак множественного значения |
3^G |
максимальная длина значения |
3^H |
значение по умолчанию |
3^I |
размещение в UI: primary, advanced, hidden |
3^J |
тип UI-контрола: text, select, user, date |
3^K |
источник вариантов Module:section |
3^L |
placeholder |
3^M |
политика регистра значения вариантов: lower или upper |
WORKFLOWFILTERSLICE хранит материализованный срез фильтра. Срез принадлежит WorkflowFilter; пересчет выполняется через Queue, инвалидация должна инициироваться через EventBus, а пользовательские подписки остаются настройкой ProfileManager.
| Поле | Назначение |
|---|---|
920 |
тип записи WORKFLOWFILTERSLICE |
1^A |
ключ workflow |
1^B |
ключ фильтра |
1^C |
ключ среза |
1^D |
ключ проекта |
1^E |
тип записи v920 |
1^F |
версия фильтра, по которой построен срез |
1^G |
время обновления среза |
1^H |
trace id пересчета |
1^I |
диагностическое состояние: fresh, empty, stale, refreshing, error |
1^J |
принудительный признак устаревания |
1^K |
количество результатов |
1^L |
идентификатор задачи Queue |
1^M |
активность среза |
1^N |
диагностическое сообщение |
2^A |
список MFN результата |
Режим определяет общий сценарий использования фильтра:
| Режим | Назначение |
|---|---|
worker |
рабочие списки сотрудников |
user |
пользовательские списки |
Конкретный состав записей задается поисковым выражением, статусами и параметрами.
Поле 3 позволяет описать дополнительные параметры URL. Для каждого параметра задается имя, поисковый префикс, тип значения, обязательность, поддержка нескольких значений, максимальная длина, значение по умолчанию и UI-метаданные. WorkflowFilter нормализует параметры до построения поискового выражения и отклоняет значения, которые не проходят описание фильтра.
Для select-контролов 3^K может указывать источник вариантов в формате Module:section. 3^M применяется источником вариантов, если нужно отображать значения из одного системного справочника, но сохранять их в индексе в ожидаемом регистре, например lower для TASKTYPE=.
Специальные параметры:
| Параметр | Назначение |
|---|---|
src |
текстовый поиск по префиксу из 1^I |
status |
ограничение статусом из разрешенного набора 2^C |
Если 1^M=1, фильтр может иметь материализованные срезы. WorkflowFilter хранит метаданные среза, определяет свежесть по версии фильтра, TTL и диагностическому состоянию, но не выполняет долгий пересчет внутри HTTP-запроса. Фоновое выполнение принадлежит Queue, доставка событий инвалидации принадлежит EventBus, эксплуатационная диагностика должна публиковаться через HealthCheck.
WorkflowFilter предоставляет where-used и impact-анализ перед удалением фильтра. Удаление блокируется, если фильтр используется схемой фильтров или представлением. Материализованные срезы считаются зависимыми runtime-данными и не блокируют удаление сами по себе.
Типовые методы:
| Метод | Назначение |
|---|---|
CreateFilter() |
создать фильтр |
GetFilters() |
получить фильтры workflow |
GetFilterByKey() |
найти фильтр |
GetSafeRequestParameters() |
нормализовать и проверить HTTP-параметры фильтра |
BuildFilterSrc() |
построить поисковое выражение списка |
ExplainFilter() |
объяснить итоговый SRC, параметры, диагностику и политику материализации |
CountFilter() |
посчитать записи по фильтру |
ExecuteFilter() |
выполнить фильтр с пагинацией |
PreviewFilter() |
выполнить preview фильтра для администратора или тестового пользователя |
CreateMaterializedSlice() |
создать объект материализованного среза |
GetMaterializedSliceFreshness() |
определить свежесть среза |
GetFilterWhereUsed() |
получить места использования фильтра |
GetFilterImpactAnalysis() |
получить влияние изменения или удаления фильтра |
CanDeleteFilter() |
проверить возможность удаления фильтра |
GetFilterSelectList() |
сформировать список выбора |