2013-02-15 3 views
0

У нас есть эта проблема:Alfresco Lucene и КМИС

вчера мы имели собственный xmlModel в Alfresco, которая имела собственный тип, расширение контента с имущества и некоторых обязательных аспектов.

<type name="custom:myType"> 
    <title>Object</title> 
    <parent>cm:content</parent> 
    <properties> 
     <property name="custom:myProperty"> 
      <type>d:text</type> 
     </property> 
    </properties> 
    <mandatory-aspects> 
     <aspect>custom:myAspect1</aspect> 
    </mandatory-aspects> 
    </type> 

теперь у нас есть настоятельная необходимость перехода Обычай мой собственности в новом аспекте, как это:

<aspect name="custom:myAspect2"> 
    <title>new aspect</title> 
    <properties> 
     <property name="custom:myProperty"> 
      <type>d:text</type> 
      <mandatory enforced='true'>true</mandatory> 
     </property> 
    </properties> 
    </aspect> 

и тип теперь:

<type name="custom:myType"> 
<title>Object</title> 
<parent>cm:content</parent> 
<mandatory-aspects> 
    <aspect>custom:myAspect1</aspect> 
    <aspect>custom:myAspect2</aspect> 
</mandatory-aspects> 

После полного перестроения индекс, Lucene, похоже, не рассматривает эти изменения. Итак, в Alfresco на новых документах все в порядке, на старых, утомленных старой моделью и теперь переиндексированных, у нас все еще есть свойство, но отсутствует аспект. Это нормальное поведение? или некоторые проблемы/ошибки. Все это связано с нашей необходимостью делать запросы CMIS по аспектам, но у нас есть некоторые проблемы с созданием запросов к собственному свойству типа, который не является частью аспект в Alfresco. Кажется, что возможно только извлекать свойства аспект, а не типа контента. Это правда? спасибо

Спасибо.

ответ

2

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

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

Что касается вашего второго вопроса о CMIS и запросах, вы должны иметь возможность запрашивать свойства, определенные как часть типа через CMIS, без каких-либо проблем. Проблема заключается в том, когда ваши свойства переходят к аспектам. Тогда ваши запросы должны сделать присоединиться, как это:

queryString = "select d.*, w.* from cmis:document as d join sc:webable as w on d.cmis:objectId = w.cmis:objectId where w.sc:isActive = True"; 

В этом примере, СБН: webable аспект и СБН: IsActive свойство определяется на этом аспекте.

Так что если вы сказали, что у вас возникли проблемы с запросом свойств, определенных по аспектам, это имеет смысл (из-за требования объединения), чем проблема с запросом свойств, определенных для типов.

Также обратите внимание, что добавление и удаление аспектов объектов/объектов, задание объекта, если оно имеет аспект, а также настройка или обновление свойств, определенных в аспект, требуют использования расширения, поскольку аспекты не поддерживаются CMIS 1.0 вне коробки. Существует extension for OpenCMIS и еще extension for cmislib.

+0

Для первой части старые объекты не пропускают старое обязательное свойство, поэтому теперь старое свойство находится в обязательном аспекте. Он должен работать одинаково. У нас также есть 7mil-файлы, и запуск скрипта не является вариантом. Во второй части мы создаем объединения без проблем (о, мы используем webscript для CMIS для создания объединений и получения аспектов и их свойств узлов).Проблема в том, что в xml, возвращаемом CMIS, нет никаких свойств типа внутри только аспектных, поэтому, когда мы анализируем xml и заполняем таблицу для просмотра результатов, мы не можем импортировать свойства типа в качестве значений. – Teqnology

+0

Основываясь на типе, который вы показываете выше, вы должны иметь только свойства типа из cm: content, потому что это родители этого типа, и других свойств не определено. Остальное будет отображаться как часть аспекта. –

+0

Извините, я не опубликовал весь фрагмент xml. Наш тип имеет одно свойство и больше аспектов с набором свойств. Когда мы выполняем запрос через CMIS, мы делаем JOIN, как вы сказали, и он работает с свойствами аспекта, но мы не знаем, как получить это единственное свойство в теге типа (а не в аспектах). Кроме того, нам удается рассматривать это свойство как аспект, поэтому мы создали псевдоним и JOIN, что свойство со всеми остальными. Это обходное решение работает, но мы не уверены, что это правильный путь. Надеюсь, я понял, о чем проблема. – Teqnology

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