Платформа 3V/Согласование/Реестр процессов: различия между версиями
(не показано 7 промежуточных версий этого же участника) | |||
Строка 3: | Строка 3: | ||
[[Файл:процессы согласования. реестр.png|750px|слева|border]] <br clear="both" /><br> | [[Файл:процессы согласования. реестр.png|750px|слева|border]] <br clear="both" /><br> | ||
− | Для того, чтобы настроить отчет для реестра процессов согласования требуется настроить Внешний справочник на объекте Соединение с источником данных '''''.../workflow/api/WorkflowDataSourceView/Processes'''''/ и в качестве идентификатора объекта задать '''''AllRunnedProcesses'''''. В справочнике будет отображён список всех запущенных процессов и выведены следующие атрибуты: | + | Для того, чтобы настроить отчет для реестра процессов согласования требуется настроить Внешний справочник на объекте Соединение с источником данных '''''.../workflow/api/WorkflowDataSourceView/Processes'''''/ и в качестве идентификатора объекта задать '''''AllRunnedProcesses'''''. Так же в справочнике необходимо настроить следующее:<br> |
+ | * Тип атрибута StateId должен быть указан как Идентификатор <br> | ||
+ | * Тип атрибута ParentStateId должен быть указан как Родитель <br> | ||
+ | * Тип атрибута Name должен быть указан как Наименование <br> | ||
+ | В справочнике будет отображён список всех запущенных процессов и выведены следующие атрибуты: | ||
*Идентификатор процесса или подпроцесса('''''Id''''') | *Идентификатор процесса или подпроцесса('''''Id''''') | ||
*Идентификатор родительского процесса(для подпроцессов)('''''ParentId''''') | *Идентификатор родительского процесса(для подпроцессов)('''''ParentId''''') | ||
− | *Наименование('''''Name''''') | + | *Наименование объекта согласования/экземпляра процесса/подпроцесса с наименованиями параметров('''''Name''''') |
− | *Идентификатор | + | *Идентификатор экземпляра процесса('''''EntityId''''') |
− | * | + | *Идентификатор типа объекта: 1 - объект согласования, 2 - объект согласования подпроцесса, 3 - экземпляр процесса/подпроцесса, ('''''EntityType''''') |
− | * | + | *Наименование текущего состояния('''''StateName''''') |
− | *Дата | + | *Значение свойства localizedComment объекта согласования ('''''StateModelComment''''') |
− | *Дата | + | *Дата запуска процесса ('''''StartedDate''''') |
− | * | + | *Дата перехода в текущее состояние ('''''StateChangedDate''''') |
− | * | + | *Регламентная дата, если она настроена для текущего состояния ('''''StateRegulationDate''''') |
− | *Признак | + | *Ответственные за шаги на текущем состоянии ('''''StateResponsible''''') |
− | *Общее количество процессов('''''TotalProcessCount''''') | + | *Признак "завершенности" экземпляра подпроцесса ('''''IsFinished''''') |
− | *Количество завершенных процессов('''''FinishedProcessCount''''') | + | *Общее количество процессов ('''''TotalProcessCount''''') |
+ | *Количество завершенных процессов ('''''FinishedProcessCount''''') | ||
− | Далее необходимо создать сам отчет с идентификатором REPORT_WORKFLOW_STATUSES (данный код указывается в конфигурационном файле, как было написано выше), настроить отчет можно в любом виде, на усмотрение пользователя. Единственное, необходимо, чтобы первым столбцом выводился атрибут Name, для корректного формирования названия объекта - экземпляра процесса и наименование параметров, с которыми он запущен.<br><br> | + | Далее необходимо создать сам отчет с идентификатором REPORT_WORKFLOW_STATUSES (данный код указывается в конфигурационном файле, как было написано выше), настроить отчет можно в любом виде, на усмотрение пользователя. Единственное, необходимо, чтобы первым столбцом выводился атрибут Name, для корректного формирования названия объекта - экземпляра процесса и наименование параметров, с которыми он запущен. <br><br> |
<div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | <div class="NavFrame collapsed" style="width:700px; overflow:auto;"> | ||
<div class="NavHead">Примеры</div> | <div class="NavHead">Примеры</div> | ||
Строка 25: | Строка 30: | ||
</div> | </div> | ||
</div> | </div> | ||
+ | |||
+ | Так же необходимо настроить для первого столбца отображение гиперссылок. В дальнейшем, после реализации конструктора согласования, при клике по гиперссылке процесса в конструкторе будут открываться его настройки. | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример настройки гиперссылок для строк с экземплярами процесса и подпроцесса</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "hyperlinkOptions": { | ||
+ | "metaObjectSource": { | ||
+ | "formula": { | ||
+ | "expression": "if(IsNullOrEmpty([2]) or [3] <> 3, Null(), [1])", | ||
+ | "operands": [ | ||
+ | { | ||
+ | "dictionaryId": 125348, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 23 | ||
+ | }, | ||
+ | "attributeId": 23, | ||
+ | "discriminator": "AttributeFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": null | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryId": 125348, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 4 | ||
+ | }, | ||
+ | "attributeId": 4, | ||
+ | "discriminator": "AttributeFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 2, | ||
+ | "name": null | ||
+ | }, | ||
+ | { | ||
+ | "dictionaryId": 125348, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 24 | ||
+ | }, | ||
+ | "attributeId": 24, | ||
+ | "discriminator": "AttributeFormulaOperandDto", | ||
+ | "code": null, | ||
+ | "id": 3, | ||
+ | "name": null | ||
+ | } | ||
+ | ], | ||
+ | "code": null, | ||
+ | "id": 1, | ||
+ | "name": null | ||
+ | }, | ||
+ | "discriminator": "FormulaValueSourceDto" | ||
+ | }, | ||
+ | "parameterSources": [], | ||
+ | "discriminator": "MetaObjectHyperlinkOptionsDto", | ||
+ | "openTarget": "SameWindow" | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | === Настройка параметра === | ||
+ | |||
+ | Источник реестра всех процессов можно параметризировать. Если используется несколько объектов согласования, то можно через параметр отображать процессы выбранного объекта согласования, что может сократить время построения реестра процессов.<br> | ||
+ | В параметре необходимо передавать идентификатор объекта согласования. Если параметр не задан - будут подгружаться все согласования и все процессы. <br> | ||
+ | Чтобы настроить параметр с объектами согласования через внешний справочник объектов необходимо выполнить следующее: | ||
+ | * Добавить объект "Соединение с источником данных" .../repository/api/RepositoryDataSource/ | ||
+ | * Добавить внешний справочник на этом соединении, в качестве идентификатора объекта задать MetaObjects | ||
+ | * Для следующих атрибутов настроить тип: | ||
+ | Тип атрибута Id должен быть указан как Идентификатор <br> | ||
+ | Тип атрибута ParentId должен быть указан как Родитель <br> | ||
+ | Тип атрибута Name должен быть указан как Наименование <br> | ||
+ | * Справочник должен быть с включенным кэшем | ||
+ | * В справочник реестра процессов необходимо добавить параметр | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример настройки параметра в справочнике</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "parameters": { | ||
+ | "definitions": [ | ||
+ | { | ||
+ | "id": 1, | ||
+ | "name": "Число" | ||
+ | } | ||
+ | ], | ||
+ | "defaultValues": [ | ||
+ | { | ||
+ | "discriminator": "SimpleParameterValueDto", | ||
+ | "parameterId": 1, | ||
+ | "value": [ | ||
+ | 1 | ||
+ | ] | ||
+ | } | ||
+ | ] | ||
+ | }, | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | * В отчете реестра процессов добавить, созданный ранее, внешний справочник объектов в качестве параметра, для параметра настроить фильтр на тип объекта согласования | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;"> | ||
+ | <div style="font-weight:bold;line-height:1.6;">JSON пример настройки параметра с фильтром в отчете реестра процессов</div> | ||
+ | <div class="mw-collapsible-content mw-collapsed-content"> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | "parameters": [ | ||
+ | { | ||
+ | "dictionaryId": 0, | ||
+ | "options": { | ||
+ | "groupingMethod": "Default", | ||
+ | "virtualElements": [], | ||
+ | "dictionaryId": 195546, | ||
+ | "filter": { | ||
+ | "value": [ | ||
+ | 9 | ||
+ | ], | ||
+ | "skipIfValueNull": false, | ||
+ | "attributeId": null, | ||
+ | "attribute": { | ||
+ | "discriminator": "OwnAttributeDefinitionDto", | ||
+ | "id": 23 | ||
+ | }, | ||
+ | "conditionType": "AttributeEqualConstant", | ||
+ | "discriminator": "ValueConditionalDictionaryFilterDto", | ||
+ | "inversion": false | ||
+ | }, | ||
+ | "hierarchyId": null, | ||
+ | "limit": null | ||
+ | }, | ||
+ | "discriminator": "DictionaryParameterDto", | ||
+ | "defaultValue": [ | ||
+ | 114228 | ||
+ | ], | ||
+ | "value": [ | ||
+ | 114228 | ||
+ | ], | ||
+ | "isMultiselect": true, | ||
+ | "isEmptyValuePossible": true, | ||
+ | "isDisableable": false, | ||
+ | "isDisabled": false, | ||
+ | "id": 1, | ||
+ | "name": "Согласования" | ||
+ | } | ||
+ | ], | ||
+ | </syntaxhighlight> | ||
+ | </div></div> | ||
+ | |||
+ | * Сохранить изменения в отчете, далее при открытии реестра в нем должна появиться панель с параметром. | ||
+ | |||
+ | '''!Важно''': есть ограничение со стороны справочников, если для справочника процессов указать наличие параметра, но в отчете скинуть его на null - то упадет ошибка, что значение параметра не задано. |
Текущая версия на 10:12, 18 апреля 2022
Реализовано отображение реестра всех процессов согласования, в котором существует возможность редактировать экземпляры процесса. Для этого следует нажать на требуемый изменения экземпляр основного процесса или его подпроцесса и перейти в открывшееся окно с JSON. Реестр открывается по кнопке на левой панели управления навигатора. Для его настройки в конфигурационном файле указывается код настроенного отчёта с реестром процессов.
Для того, чтобы настроить отчет для реестра процессов согласования требуется настроить Внешний справочник на объекте Соединение с источником данных .../workflow/api/WorkflowDataSourceView/Processes/ и в качестве идентификатора объекта задать AllRunnedProcesses. Так же в справочнике необходимо настроить следующее:
- Тип атрибута StateId должен быть указан как Идентификатор
- Тип атрибута ParentStateId должен быть указан как Родитель
- Тип атрибута Name должен быть указан как Наименование
В справочнике будет отображён список всех запущенных процессов и выведены следующие атрибуты:
- Идентификатор процесса или подпроцесса(Id)
- Идентификатор родительского процесса(для подпроцессов)(ParentId)
- Наименование объекта согласования/экземпляра процесса/подпроцесса с наименованиями параметров(Name)
- Идентификатор экземпляра процесса(EntityId)
- Идентификатор типа объекта: 1 - объект согласования, 2 - объект согласования подпроцесса, 3 - экземпляр процесса/подпроцесса, (EntityType)
- Наименование текущего состояния(StateName)
- Значение свойства localizedComment объекта согласования (StateModelComment)
- Дата запуска процесса (StartedDate)
- Дата перехода в текущее состояние (StateChangedDate)
- Регламентная дата, если она настроена для текущего состояния (StateRegulationDate)
- Ответственные за шаги на текущем состоянии (StateResponsible)
- Признак "завершенности" экземпляра подпроцесса (IsFinished)
- Общее количество процессов (TotalProcessCount)
- Количество завершенных процессов (FinishedProcessCount)
Далее необходимо создать сам отчет с идентификатором REPORT_WORKFLOW_STATUSES (данный код указывается в конфигурационном файле, как было написано выше), настроить отчет можно в любом виде, на усмотрение пользователя. Единственное, необходимо, чтобы первым столбцом выводился атрибут Name, для корректного формирования названия объекта - экземпляра процесса и наименование параметров, с которыми он запущен.
Так же необходимо настроить для первого столбца отображение гиперссылок. В дальнейшем, после реализации конструктора согласования, при клике по гиперссылке процесса в конструкторе будут открываться его настройки.
Настройка параметра
Источник реестра всех процессов можно параметризировать. Если используется несколько объектов согласования, то можно через параметр отображать процессы выбранного объекта согласования, что может сократить время построения реестра процессов.
В параметре необходимо передавать идентификатор объекта согласования. Если параметр не задан - будут подгружаться все согласования и все процессы.
Чтобы настроить параметр с объектами согласования через внешний справочник объектов необходимо выполнить следующее:
- Добавить объект "Соединение с источником данных" .../repository/api/RepositoryDataSource/
- Добавить внешний справочник на этом соединении, в качестве идентификатора объекта задать MetaObjects
- Для следующих атрибутов настроить тип:
Тип атрибута Id должен быть указан как Идентификатор
Тип атрибута ParentId должен быть указан как Родитель
Тип атрибута Name должен быть указан как Наименование
- Справочник должен быть с включенным кэшем
- В справочник реестра процессов необходимо добавить параметр
- В отчете реестра процессов добавить, созданный ранее, внешний справочник объектов в качестве параметра, для параметра настроить фильтр на тип объекта согласования
- Сохранить изменения в отчете, далее при открытии реестра в нем должна появиться панель с параметром.
!Важно: есть ограничение со стороны справочников, если для справочника процессов указать наличие параметра, но в отчете скинуть его на null - то упадет ошибка, что значение параметра не задано.