Изменения в платформе DIRECTUM 4.8. Мониторинг в ТМ.

6 7

Продолжу описание нововведений платформы в DIRECTUM 4.8.

На этот раз речь пойдет об обновленном блоке ТМ - "Мониторинг".
Данный блок может довольно сильно подвесить службу Workflow(WF) при неправильном использовании. В любом случае, в "старом" мониторинге не было возможности отказаться от периодической обработки задачи WF. Теперь это можно сделать. В "новый" блок добавлено свойство "Тип мониторинга", которое может принимать значения "Прочее" и "Список зависимостей". 

Тип мониторинга -> Прочее (задается по-умолчанию):

В данной настройке "старый" и "новый" блоки мониторинга работают одинаково: пока вычисления в Правиле мониторинга не вернут Result = true, они будут выполняться с периодичностью, заданной в свойстве "Интервал", либо пока не наступит крайний срок. Вычисления нагружают WF и чем меньше интервал, тем больше нагрузка. Во многих задачах по ТМ, которые реализуют некий бизнес-процесс, требуется использовать блок Мониторинга только для отслеживания состояния других, связанных с текущей, задач. Вот тут и пригодится еще один Тип мониторингаСписок зависимостей.
 

Тип мониторинга -> Список зависимостей:

Тут блок мониторинга нацелен на одно - состояние задач, от которых зависит дальнейшее движение по нашему ТМ. Настройка "Интервал" - отсутствует. Присутствует настройка "Список зависимостей":
  • Типа данных: коллекция задач(по-умолчанию)/задача.
  • Тип значения: константа(по-умолчанию)/параметр
  • Значение: значение выбирается вручную в специальном окне поиска задач/задачи, когда Тип значения - константа, иначе заполняется из параметра. 

Как работает: В автокорректируемой таблице SBWorkflowDependencies содержится список зависимых друг от друга задач по блоку Мониторинг. Новые записи в таблицу добавляются при обработке задачи, зависимой по блоку Мониторинг от незавершенных задач. Записи удаляются из таблицы при завершении/прекращении/удалении задачи с блоком Мониторинг и задач, от которых она зависит. Таким образом, пока зависимые задачи не будут выполнены или прекращены или удалены первоначальная задача службой WF обрабатываться не будет.

Таким образом, WF обрабатывает зависимые задачи, которые ему все равно пришлось бы обработать, и продолжает работу по нашему ТМ, не проводя дополнительных вычислений (иначе вообще не берется за обработку нашей задачи).

 
Андрей Манаков

"+" любое движение вперед/развитие системы - есть хорошо в принципе

"-" но, как часто бывает, "хотелось бы большего". В данном случае, реализация зависимости ТОЛЬКО от задач лишь закрывает довольно узкий участок вопросов, с которыми не смог справится блок "Подзадача" (с опцией "ожидать завершения").

Чего действительно не хватает, в качестве отслеживаемых типов данных, - так это пунктов "Задание/Коллекция заданий" и/или "Параметр задачи" (текущей).

Андрей Подкин
Чего действительно не хватает, в качестве отслеживаемых типов данных, - так это пунктов "Задание/Коллекция заданий"
Андрей, вам сюда, раздел "Новые события в блоках задание и уведомление".

 

Денис Баранов

Андрей, упомянутый вами "узкий участок" это как минимум 90% использования мониторингов. smiley Видимо, не в вашем случае, раз он вам кажется узким.

Параметр рассматривали. Решили пока отложить, т.к. сравнительно редкая ситуация (в десятки раз реже чем отслеживание задач). А отслеживание заданий... Даже не могу сходу придумать зачем это надо. Поделитесь жизненным примером?

Денис Баранов
Андрей, вам сюда, раздел "Новые события в блоках задание и уведомление".

Не уверен, что это в точности то, что надо. Если говорить о мониторинге как средстве для получения созданных заданий по блоку до завершения блока, тогда да. Новые события как раз и сделаны для того, чтобы от этого мониторинга избавиться. Но в контексте материала может идти скорее об отслеживании каких-то изменений, происходящих с заданиями (уже созданными) по блоку, а не с самим блоком. Не понятно только зачем.
Андрей Манаков
Андрей, вам сюда, раздел "Новые события в блоках задание и уведомление".
Это, так сказать, вообще немного из другой оперы. Т.к. там идет речь только о текущем блоке!
 
Видимо, не в вашем случае, раз он вам кажется узким.

есть такое...

А отслеживание заданий... Даже не могу сходу придумать зачем это надо.
На примере: в ТМ есть блок, выполнение которого не обязательно, но крайне желательно, и от результатов которого (если таковые есть) меняются пути движения ТМ.
Соответственно в "конце" ТМ (т.к. блок все таки "крайне желательный") в критичном месте стоит мониторинг ожидающий результатов его выполнения, либо пока не выйдут сроки.
P.S.: Большинство задач идут именно по этому ТМ, и образуемый "массовый" мониторинг совершенно не облегчает жизнь службе Workflow.
Денис Баранов

А этот "крайне желательный блок" нельзя сделать подзадачей?

Андрей Манаков

Можно, но вариант, когда можно будет обойтись без написания ни одной строчки кода для решения какой-либо поставленной задачи - я считаю более предпочтительным (т.к. его смогут применять и организации не имеющих "своих" программистов).

В данном примере, с подзадачей (без доработок программистом) такого не получится. А с заданием и/или параметром такое бы решилось за несколько щелчков мыши.

P.S.: А, в целом, это всего лишь предложение для будущей доработки данного новшества. Чтобы наши "хотелки" не относили к категории "сравнительно редкая ситуация" всего лишь потому, что таких обращении не было ;)

Авторизуйтесь, чтобы написать комментарий