2015-04-03 2 views
0

В Alfresco, если имя типа удалено/изменено, все узлы этого типа исчезнут, но все еще существуют.Удалить пользовательский тип в Alfresco

Использование под открытым небом 5.0.c Я добавил некоторые пользовательские типы:

например:

<type name="my:test"> 
    <title>Test folder</title> 
    <parent>cm:folder</parent> 
</type> 

теперь я развернуть его и создать папку этого типа (простой папку, а затем изменить тип)

Теперь я изменить тип вроде этого:

<type name="my:test2"> <!-- from my:test to my:test2 --> 
     <title>Test folder</title> 
     <parent>cm:folder</parent> 
    </type> 

Развертывание этого: любой "мой: тест" папку Wi ll исчезают, но, если я попытаюсь создать другую папку с тем же именем, я получаю сообщение об ошибке, потому что узел все еще существует. Эти узлы не будут даже не перечислены в папке ребенок:

print(document.getChildren()); 

Как я могу восстановить (если это возможно, используя в javascript console) все «битые» узлы и быть в состоянии изменить тип?

ответ

4

Небольшое предисловие: как широко заявлено Alfresco, если вы хотите изменить свою собственную модель контента, вы должны изменить ее только постепенно. Это означает, что вы не можете удалить какие-либо свойства, типы или аспект на уровне определения модели, вы можете добавлять новые определения в модель контента Alfresco.

Так что очень плохая практика менять типы «на лету». Хорошей практикой является всегда начинать с такой маленькой модели, как вы можете, а затем добавлять функции до тех пор, пока они вам понадобятся.

В вашем случае вы должны были удалить все узлы, ссылающиеся на my:test, перед тем, как сменить модель, а затем безопасно удалить ее, и, наконец, вы должны были выполнить полный переиндекс. Это может быть причиной того, что репозиторий сообщает вам, что папка существует, даже если вы больше не видите ее.

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

Еще один подход в следующий раз - добавить новый тип и программно скрыть более старый.

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