Alfresco 露天共享:如何使用evaluator=";“方面”;检查(父)方面

Alfresco 露天共享:如何使用evaluator=";“方面”;检查(父)方面,alfresco,evaluation,alfresco-share,evaluator,Alfresco,Evaluation,Alfresco Share,Evaluator,我有一个方面,它是另外两个方面的父方面 <aspect name="my:parentAspect"> </aspect> <aspect name="my:subAspect1"> <parent>my:parentAspect</parent> </aspect> <aspect name="my:subAspect2"> <parent>my:parentAspect<

我有一个方面,它是另外两个方面的父方面

<aspect name="my:parentAspect">
</aspect> 

<aspect name="my:subAspect1">
    <parent>my:parentAspect</parent>
</aspect>

<aspect name="my:subAspect2">
    <parent>my:parentAspect</parent>
</aspect>

我的父母方面
我的父母方面
现在,如果节点直接具有方面“my:parentAspect”或者节点具有通过将其作为父级继承自“my:parentAspect”的方面,我想在我的共享配置自定义中使用“方面”-计算器来应用一些自定义

<config evaluator="aspect" condition="my:subAspect1">...</config>
<config evaluator="aspect" condition="my:subAspect2">...</config>
。。。
...
工作,但我更喜欢使用

<config evaluator="aspect" condition="my:parentAspect">...</config>
。。。
因为每个子方面的配置实际上都是相同的。
但是,这不适用于没有直接连接my:parentAspect但仅继承aspect的节点


检查方面的最佳实践是什么,无论它是直接应用还是继承到层次结构的某个地方?

关于您自己的评论:不要混合使用表单配置和doclib配置

org.alfresco.web.config.forms.AspectEvaluator是表单配置的评估器,如

<config evaluator="aspect" condition="my:parentAspect">...</config>

此webscript使用org.alfresco.repo.jscript.ScriptNode.toJson(),它只包含直接连接的方面。这可能是自定义评估器的起点。

这些配置独立于层次结构,它不了解父子关系。这种结构将这些方面解耦,因为它们不限于绑定到任何特定类型的任何一种类型,因此,拥有这种结构是有意义的。主要的求值逻辑发生在特定的求值器中,即evaluator.doclib.action.hasapect(org.alfresco.web.evaluator.hasapectevaluator.java类)在这种情况下,评估者知道它显式地处理方面。方面和类型一样,总是有一个可选的父属性,因此可以对其进行检查。然而,它只是检查直接方面。从业务逻辑的角度来看,检查父母也是有意义的。因此,我想知道Alfresco社区是否已经普遍需要它。我知道配置是通用的(解耦的),但它们使用的评估器非常具体。
<config evaluator="string-compare" condition="DocumentLibrary">
/api/metadata?nodeRef=" + nodeString + "&shortQNames=true"