2015-04-03 58 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會消失,但是,如果我嘗試創建另一個具有相同名稱的文件夾,則會出現錯誤,因爲節點仍然存在。 這些節點將不會被甚至沒有在文件夾內的兒童上市:

print(document.getChildren()); 

如何恢復(如果可能的話使用的javascript console)所有的「破」節點,並能夠改變的類型?

回答

4

有一點小小的前言:正如Alfresco所說的那樣,如果你想改變你的自定義內容模型,你應該逐步改變它。 這意味着您無法刪除模型定義級別的任何屬性,類型或方面,您只能在Alfresco的內容模型中添加新定義。

因此,「即時」更改類型是非常糟糕的做法。 一個好的做法是始終從儘可能小的模型開始,然後只要您需要它們即可添加特徵。

在你的情況下,你應該刪除所有節點,引用my:test類型之前,改變模型,然後安全地刪除它,最後你應該已經執行了一個完整的reindex。這可能是存儲庫告訴你文件夾存在,即使你再也看不到它的原因。

據我所知,不可能通過控制檯刪除這些不一致的節點,所以我的建議是執行完整的reindex。如果問題再次出現,那麼你應該考慮從頭開始。

下一次的另一種方法是添加新類型並以編程方式隱藏較舊的類型。