Вопрос

Хочу создать журнал изменений "наполненности данными профиля". Создал бизнеспроцесс который отслеживает изменение поля "наполнение данными профиля" в компании, но при изменении процента наполненности процесс не запускается, видимо потому что изменение производит процесс пересчета поля который не создает сообщение об изменении данного поля. Подскажите как можно это отследить что бы в журнал внести запись "Компания", "Ответственны", "Процент наполнения", "Дата создания"?

У меня такой же вопрос

7 комментариев
Лучший ответ

Добрый день!
Обновление наполненности данными профилями происходит напрямую в базе данных - в хранимой процедуре tsp_CompletenessRenew.
Так что накручивать дополнительную логику нужно именно в данной процедуре.

Про реализацию со срабатыванием сигнала: тут сложно, т.к. в этом случае придется:
1) переопределить нужные методы в BaseCompletenessService в новом сервисе
2) в переопределенных методах сервисе заново реализовать логику по обновлению параметра 
3) сделать вызов нового сервиса в CompletenessService.

Можно попробовать реализовать данную функциональность на уровне базы данных - отслеживать изменения нужного поля на уровне триггеров.

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

Алла Савельева,

Подскажите как можно сделать что бы срабатывал сигнал?

Добрый день!
Обновление наполненности данными профилями происходит напрямую в базе данных - в хранимой процедуре tsp_CompletenessRenew.
Так что накручивать дополнительную логику нужно именно в данной процедуре.

Про реализацию со срабатыванием сигнала: тут сложно, т.к. в этом случае придется:
1) переопределить нужные методы в BaseCompletenessService в новом сервисе
2) в переопределенных методах сервисе заново реализовать логику по обновлению параметра 
3) сделать вызов нового сервиса в CompletenessService.

Сидоров Александр В.,

порылся в базе, не нашел процедуру tsp_CompletenessRenew. Может в Oracle версии другая может быть?

Александр Тыра,

Вряд ли другая. В любом случае, это можно увидеть в  

BaseCompletenessService

Сидоров Александр В.,

а варианта без замещения базовых методов нет? А то у нас уже был опыт замешения метода синхронизации с LDAP, результат - обновление не устанавливалось из-за разницы таблиц системных

Это хранимка на уровне базы. Либо  доработать её, либо навесить ещё отдельный триггер в базе на меняемое в ней поле. В обоих случаях можно обойтись без сигналов и процессов, а прямо писать в таблицу журнала нужную информацию.

Войдите или зарегистрируйтесь, чтобы комментировать