2015-04-03 83 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。如果问题再次出现,那么你应该考虑从头开始。

下一次的另一种方法是添加新类型并以编程方式隐藏较旧的类型。