Дерево страниц
Skip to end of metadata
Go to start of metadata

Агент предназначен для предоставления доступа к согласуемому документу, к вышестоящим документам и вышестоящим\нижестоящим листам, визам участникам согласования и формирования уведомлений участникам на лист согласования, а также выполняет задачу управления процессом согласования, включая рассылку уведомлений и завершение процесса.

Статус

ГОТОВО

Комментарий

Описание

Версии

CM6 CM7

Принцип работы

Обработка изменений по листу согласования.

  • старт или продолжение согласования
  • уведомления
  • задачи на согласование
  • прекращение согласования
  • изменения участников
  • обновление доступа
  • обновление результата согласования

Рекомендуемое время запуска

Запускается один раз в сутки

Навигация

Дескриптор агента по JMS-сообщениям

Приложение

Приложение

Название

СМ-Согласование-Обработка листа согласования

Идентификатор

CMJ-Approving-UpdateByVisa

Политика наложения расписания

- не имеет значение -

Режим конкуренции

ANY

CM7.0+ можно MANY

Сейчас агенты не способны работать параллельно из-за высокой вероятности конфликтов сохранения ЛС или РКК.

Выработано такое решение:

1. Все агенты выполняют свою работу в критической секции с блокировкой на UNID согласуемого/ознакамливаемого документа (TODO обсудить реализацию)
2. Агенты настраиваем на запуск на одном сервере, но в несколько потоков

Если этого окажется не достаточно, то раскидываем исполнение агентов по разным серверам. Допустим на 8 серверов.

3. В JMS-ChLog добавляем заголовок SourceDocId с UNID согласуемого/ознакамливаемого документа
4. В МА делаем 8 копий настроек запуска каждого агента
5. В условиях фильтрации JMS-Chlog добавляем условие по префиксу SourceDocId. В каждой копии свой префикс
&& (SourceDocId LIKE '%0' | SourceDocId LIKE '%1')
...
&& (SourceDocId LIKE '%E' | SourceDocId LIKE '%F')
6. Каждую копию настройки одного агента запускаем на отдельном сервере, но настройки разных агентов с одинаковым префиксом в фильтре на общем сервере.

Например,
Агент А с фильтром && (SourceDocId LIKE '%0' | SourceDocId LIKE '%1') запускаем на сервере S1

Агент В с фильтром && (SourceDocId LIKE '%0' | SourceDocId LIKE '%1') запускаем тоже на сервере S1

Агент А с фильтром && (SourceDocId LIKE '%E' | SourceDocId LIKE '%F') запускаем на сервере S8

Агент В с фильтром && (SourceDocId LIKE '%E' | SourceDocId LIKE '%F') запускаем тоже на сервере S8

Режим работы

ASAP

Очередь данных по умолчанию

JMS-очередь

Фильтр JMS-сообщений

JMSType='ChLog' AND (contextType='listEnd' OR (contextType = 'Log' 
AND sourceDocumentIdent='ApprovingDocs' AND sourceDocumentForm='Visa') 
OR (contextType = 'Visa' AND (changedFields LIKE '%|inprocess|%' 
OR changedFields LIKE '%|sendtosh|%' OR changedFields LIKE '%|af$r_disco|%' 
OR changedFields LIKE '%|sendtooptions|%' OR changedFields LIKE '%|delegatefrom|%' )))

Доп. фильтры

-

Кол-во потоков в настройке запуска

1

CM7.0+ можно задать большее количество потоков

Сейчас агенты не способны работать параллельно из-за высокой вероятности конфликтов сохранения ЛС или РКК.

Выработано такое решение:

1. Все агенты выполняют свою работу в критической секции с блокировкой на UNID согласуемого/ознакамливаемого документа (TODO обсудить реализацию)
2. Агенты настраиваем на запуск на одном сервере, но в несколько потоков

Если этого окажется не достаточно, то раскидываем исполнение агентов по разным серверам. Допустим на 8 серверов.

3. В JMS-ChLog добавляем заголовок SourceDocId с UNID согласуемого/ознакамливаемого документа
4. В МА делаем 8 копий настроек запуска каждого агента
5. В условиях фильтрации JMS-Chlog добавляем условие по префиксу SourceDocId. В каждой копии свой префикс
&& (SourceDocId LIKE '%0' | SourceDocId LIKE '%1')
...
&& (SourceDocId LIKE '%E' | SourceDocId LIKE '%F')
6. Каждую копию настройки одного агента запускаем на отдельном сервере, но настройки разных агентов с одинаковым префиксом в фильтре на общем сервере.

Например,
Агент А с фильтром && (SourceDocId LIKE '%0' | SourceDocId LIKE '%1') запускаем на сервере S1

Агент В с фильтром && (SourceDocId LIKE '%0' | SourceDocId LIKE '%1') запускаем тоже на сервере S1

Агент А с фильтром && (SourceDocId LIKE '%E' | SourceDocId LIKE '%F') запускаем на сервере S8

Агент В с фильтром && (SourceDocId LIKE '%E' | SourceDocId LIKE '%F') запускаем тоже на сервере S8

Параметры

  • SoRepId - список реплик СО, по которым работает агент. Если не указан, работа идёт по всем СО.

Логирование

Класс

Уровень логирования

ru.intertrust.cmj.af.apre._stdimpl.dao.approving.agents.ApprovingUpdateByChlogVisaDEBUG