Платформа 3V/Согласование/Реестр процессов: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 5 промежуточных версий этого же участника)
Строка 90: Строка 90:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</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

Реализовано в версии 0.40

Реализовано отображение реестра всех процессов согласования, в котором существует возможность редактировать экземпляры процесса. Для этого следует нажать на требуемый изменения экземпляр основного процесса или его подпроцесса и перейти в открывшееся окно с JSON. Реестр открывается по кнопке реестр согласования кнопка.png на левой панели управления навигатора. Для его настройки в конфигурационном файле указывается код настроенного отчёта с реестром процессов.

процессы согласования. реестр.png



Для того, чтобы настроить отчет для реестра процессов согласования требуется настроить Внешний справочник на объекте Соединение с источником данных .../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, для корректного формирования названия объекта - экземпляра процесса и наименование параметров, с которыми он запущен.

Так же необходимо настроить для первого столбца отображение гиперссылок. В дальнейшем, после реализации конструктора согласования, при клике по гиперссылке процесса в конструкторе будут открываться его настройки.

JSON пример настройки гиперссылок для строк с экземплярами процесса и подпроцесса

Настройка параметра

Источник реестра всех процессов можно параметризировать. Если используется несколько объектов согласования, то можно через параметр отображать процессы выбранного объекта согласования, что может сократить время построения реестра процессов.
В параметре необходимо передавать идентификатор объекта согласования. Если параметр не задан - будут подгружаться все согласования и все процессы.
Чтобы настроить параметр с объектами согласования через внешний справочник объектов необходимо выполнить следующее:

  • Добавить объект "Соединение с источником данных" .../repository/api/RepositoryDataSource/
  • Добавить внешний справочник на этом соединении, в качестве идентификатора объекта задать MetaObjects
  • Для следующих атрибутов настроить тип:

Тип атрибута Id должен быть указан как Идентификатор
Тип атрибута ParentId должен быть указан как Родитель
Тип атрибута Name должен быть указан как Наименование

  • Справочник должен быть с включенным кэшем
  • В справочник реестра процессов необходимо добавить параметр
JSON пример настройки параметра в справочнике
  • В отчете реестра процессов добавить, созданный ранее, внешний справочник объектов в качестве параметра, для параметра настроить фильтр на тип объекта согласования
JSON пример настройки параметра с фильтром в отчете реестра процессов
  • Сохранить изменения в отчете, далее при открытии реестра в нем должна появиться панель с параметром.

!Важно: есть ограничение со стороны справочников, если для справочника процессов указать наличие параметра, но в отчете скинуть его на null - то упадет ошибка, что значение параметра не задано.