删除Alfresco中的自定义类型

时间:2015-04-03 10:30:15

标签: alfresco

在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>

部署:任何&#34; my:test&#34;文件夹将消失,但是,如果我尝试创建另一个具有相同名称的文件夹,我会收到一个错误因为该节点仍然存在。 这些节点甚至不会在文件夹子列表中列出:

print(document.getChildren());

如何恢复(如果可能,使用javascript console)所有&#34;破坏&#34;节点并能够改变类型?

1 个答案:

答案 0 :(得分:4)

一个小小的前言:正如Alfresco所说,如果你想改变你的自定义内容模型,你应该只是逐步改变它。 这意味着您无法在模型的定义级别删除任何属性,类型或方面,您只能在Alfresco的内容模型中添加新定义。

因此,在飞行中更改类型&#34;是一种非常糟糕的做法。 一个好的做法是始终从尽可能小的模型开始,然后在需要时添加功能。

在您的情况下,您应该删除引用my:test类型的所有节点。在更改模型之前,然后安全地删除它,最后您应该执行完整的重新索引。这可能是存储库告诉您文件夹存在的原因,即使您再也看不到它了。

据我所知,无法通过控制台删除这个不一致的节点,所以我的建议是执行完整的重新索引。如果问题再次出现,那么您应该考虑从头开始。

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