Как cm:countable работает на открытом воздухе?

Я добавил:

        <mandatory-aspects>
            <aspect>cm:countable</aspect>
        </mandatory-aspects>

Чтобы перечислить определение, поэтому каждый элемент должен иметь поле «приращение». Но при создании элементов списка ничего не произошло. Я проверил следующий код:

  1. nodeService.getAspects(nodeRef) вернуть все определенные аспекты для элемента, cm:countable представлены в этом списке.
  2. nodeService.getProperty(nodeRef, QName.createQName("http://www.alfresco.org/model/content/1.0", "countable")) вернуть ноль.
  3. nodeService.getProperties(nodeRef) возвращает все свойства, но ключ countable отсутствует.

Я провел поиск в источниках alfresco и нашел, что CounterIncrementActionExecuter расширяет ActionExecuterAbstractBase и определяет executeImpl, но:

  1. executeImpl не вызывается при создании нового элемента списка.
  2. ActionExecuterAbstractBase#isApplicableType также не вызывается.
  3. ActionExecuterAbstractBase#isApplicableType "просматривает" переменную applicableTypes, которая не явно заполнена в CounterIncrementActionExecuter. Так что неясно, как он должен быть заполнен и когда.

Итак, вопрос в том, как на самом деле работает аспект cm:countable в alfresco?

ОБНОВИТЬ

Как я вижу, счетчик увеличивается в коде Java. Так безопасно ли использовать его с одной базой данных и несколькими экземплярами alfresco, подключенными к db?


person Cherry    schedule 10.12.2016    source источник
comment
Посмотрите, поможет ли это вам. ком/вопросы/38843229/   -  person Lista    schedule 10.12.2016
comment
Исходный код выглядит как CounterIncrementActionExecuter. Я думаю, что лучше использовать встроенный функционал.   -  person Cherry    schedule 10.12.2016


Ответы (1)


Этот аспект обычно используется администратором Alfresco. Он автоматически увеличивает значение числового (целочисленного) свойства, когда узел обращается к службам. Обычно это используется только администраторами Alfresco.

Аспект cm:countable имеет свойство cm:counter, которое отслеживает текущее количество.

Итак, ваш код для получения свойства должен быть.

nodeService.getProperty(nodeRef, QName.createQName("http://www.alfresco.org/model/content/1.0", "counter"))

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

person mitpatoliya    schedule 12.12.2016