我的model.xml中有以下内容
<type name="abc:Policy">
<title>abc Policy</title>
<parent>cm:folder</parent>
<archive>true</archive>
<mandatory-aspects>
<aspect>abc:policyProperties</aspect>
</mandatory-aspects>
</type>
abc:policyProperties具有以下内容。
<aspect name="abc:policytProperties">
<title>abc Policy Properties</title>
<properties>
<property name="abc:dated">
<title>Dated</title>
<type>d:date</type>
</property>
</properties>
</aspect>
用户可以将文档上传到abc:Policy文件夹。但目前在该模型中没有提及该文件。如何使该文件夹中的任何文档继承abc:dated并在Alfresco-share的属性中显示它?
答案 0 :(得分:4)
听起来你想做的是让文档从文档父文件夹的同名属性继承属性值。
执行此操作的一种方法是在JavaScript中编写一个文件夹规则,该规则读取属性并将其设置在文档上。您可以将规则配置为在创建文档或更新文档时执行此操作。
这是一个使用开箱即用的cm:title属性执行此操作的快速示例:
var title = document.parent.properties['cm:title'];
if (title != undefined) {
document.properties['cm:title'] = title;
document.save();
}
您可以将该脚本放在Data Dictionary / Scripts下名为“inherit-title.js”的文件中,然后配置规则以执行脚本。每当在该文件夹中创建新对象时,它将获得当前标题。
您可以修改此项以使用您的内容模型。
请注意,除非您将规则配置为处理更新,否则永远不会更新子项上的值。因此,如果标题在文件夹中发生更改,则其子项中的标题不会更改。如果孩子被改变,它将不会从父母那里获取最新值。您可以通过一些规则配置和脚本调整来实现这一点,但要注意性能成本。
如果您想更普遍地实现这一点,即不将其设置为单个文件夹的规则,您可以编写一个行为(tutorial)。
答案 1 :(得分:0)
如果您参考露天内容模型定义contentModel.xml
您会发现, cm:文件夹具有默认子关联cm:包含类型sys:base。因此,您可以添加扩展sys:base。
的类型的节点添加到您的文件夹 abc:Policy 的每个文档都是小孩。该方面适用于父级,即 abc:Policy 。因此 abc:日期是该文档的 abc:Policy 而非的属性。
你可以做的一件事是,定义一个扩展cm的内容:内容和add作为你的abc的子关联:Policy也将方面应用于它,然后你可以得到abc:注明为您文档的财产