2016-03-07 2 views
2

Я хотел бы создать службу для включения и отключения политик QName из внешней системы. Прежде всего, я хочу отключить проверяемые политики, которые не позволяют моей внешней системе отталкивать содержимое и устанавливать измененные/созданные даты. Я знаю BehaviourFilter, но эти изменения ограничиваются текущей транзакцией. Я бы предпочел иметь некоторый контроль над включением и выключением политики без перезапуска системы.Отключить политику Alfresco за пределами транзакционной области

Как предотвратить увольнение политики за неопределенное количество времени за пределами одной транзакции?

ответ

3

Аудиторская политика Alfresco настолько часто подвержена раздражениям, и необходимая работа вокруг не является ненужной тратой времени. Я хотел бы обсудить это решение, которое больше работы, но которые могут избежать проблем в будущем с большей гибкостью, поскольку Alfresco объединяют две вещи, которые не должны быть объединены:

  • модифицированную и дате создания
  • аудит измененными и дата создания

Первый защищен файловыми протоколами и должен быть доступен для записи от клиента. Существует так много случаев, когда нам нужно установить даты (перемещение файлов из и в alfresco, родные приложения, которые торгуют, если дата изменена сервером)

Второй вариант - для администраторов и партнеров по соблюдению, и они должны быть выставлены как независимые свойства через api службы и веб-интерфейс - не через файловые протоколы.

Поскольку Alfresco объединяет оба варианта использования только в одной колонке базы данных/одном свойстве, у нас всегда будут проблемы. Случаи использования файлов файлов не работают или мы не можем доверять атрибутам аудита.

Мое предложение было бы отделить это путем введения 2 новых свойств в модели:

  • createdDate, ModifiedDate (есть только время аудита сохраняется в данный момент)

и отобразить их свойства к датам протокола файла. Политикой будет управлять обновление этих свойств, если оно не установлено клиентом (все, кроме протоколов файлов?)

Мое намерение было бы поместить это в модуль сообщества/патч.

Любые отзывы об этом подходе? Может быть, кто-то спонсирует это?

+0

Это был мой подход в прошлом. Захватите эти проверяемые поля в пользовательской модели и примените их с помощью политики/действий на стороне alfresco, отключив необходимые политики. Не идеальна при перемещении сотен тысяч документов в Alfresco. – DocWatson

2

Хорошо, что вы знаете о BehaviourFilter, но вам, вероятно, не хватает точки, почему вы не должны полностью отключать политику для периода времени, а затем снова включать ее. Если случайно внешняя система отправляет сигнал, чтобы отключить политику, и параллельно пользователь использует Alfresco и загрузку, это означает, что он больше не запускается.

Следовательно, вы действительно должны использовать BehaviourFilter в вашей транзакции записи из внешней системы.

Как: Создайте собственный веб-текст, который отключает BehaviourFilter для QNAME/Node и снова включает его снова. Если вы посмотрите на код RecordManagement Alfresco, он использует тот же принцип.

+0

Я не проявляю неосмотрительности по своему выбору, чтобы отключить политику. Я понимаю, что есть риски. «Как» является неопределенным и на самом деле не отвечает на мой первоначальный запрос. – DocWatson

Смежные вопросы