如何通过在alfresco中扩展cmis:folder类型来创建新类型

时间:2015-12-22 06:45:07

标签: java alfresco alfresco-share cmis

提前感谢您的帮助:) 我是露天新手,不知道怎么做 现在我的问题是我想扩展cmis:foder并想创建我自己的文件夹
有额外的财产 到目前为止,我所做的是什么 var firstName = executedPayment.payer.payer_info.first_name; var lastName = executedPayment.payer.payer_info.last_name;

fdModel.xml

<?xml version="1.0" encoding="UTF-8"?> <model name="fd:contentmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0"> <description>My Content Model</description> <author>Vishnu</author> <version>1.0</version> <imports> <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/> <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/> <import uri="http://www.alfresco.org/model/cmis/1.0/cs01" prefix="cmis"/> </imports> <namespaces> <namespace uri="testing.model" prefix="fd"/> </namespaces> <types> <type name="fd:folder"> <title>My Folder</title> <parent>cmis:folder</parent> <properties> <property name="fd:tablename"> <title>Table Name</title> <type>d:text</type> <default></default> </property> <property name="fd:recordid"> <title>Record ID</title> <type>d:text</type> <default></default> </property> <property name="fd:value"> <title>Value</title> <type>d:text</type> <default></default> </property> </properties> </type> </types> </model>

web-client-config-adempiere-custom.xml

并将以上两个文件放在路径<alfresco-config> <config evaluator="node-type" condition="fd:folder"> <property-sheet> <separator name="sep" display-label="Properties" component-generator="HeaderSeparatorGenerator" show-in-edit-mode="false"/> <show-property name="fd:tablename"/> <show-property name="fd:recordid"/> <show-property name="fd:value"/> </property-sheet> </config> <config evaluator="string-compare" condition="Content Wizards"> <content-types> <type name="fd:folder"/> </content-types> </config> <config evaluator="string-compare" condition="Action Wizards"> <subtypes> <type name="fd:folder"/> </subtypes> </config> </alfresco-config> 上 并在类型中添加条目以在文件

中的露天上提供新类型
\tomcat\shared\classes\alfresco\extension

并将两个文件放在路径share-config-custom <types> <type name="trx:transferTarget"> <subtype name="trx:fileTransferTarget" /> </type> <type name="cmis:folder"> <subtype name="fd:folder" /> </type> <type name="fd:folder"> </type> </types> 上方 但遗憾的是,我无法在alfresco

的类型列表中看到我的新类型fd:文件夹

请注意,如果我使用cm:文件夹的cmis:文件夹,它就像魅力一样工作

2 个答案:

答案 0 :(得分:1)

我的猜测是你真的不想扩展cmis:文件夹,而是扩展cm:文件夹

默认文件夹类型为cm:folder。

您需要像这样扩展它:

  <type name="fd:folder">
     <title>My Folder</title>
     <parent>cm:folder</parent>
     <properties>
        <property name="fd:tablename">
           <title>Table Name</title>
           <type>d:text</type>

        </property>
        <property name="fd:recordid">
           <title>Record ID</title>
           <type>d:text</type>

        </property>
        <property name="fd:value">
           <title>Value</title>
           <type>d:text</type>

        </property>
     </properties>
  </type>

分享中的类型:

<types>
     <type name="trx:transferTarget">
        <subtype name="trx:fileTransferTarget" />
     </type>
     <type name="cm:folder">
         <subtype name="fd:folder" />
     </type>
</types>

只有在使用旧的资源管理器界面时才需要web-client-config-adempiere-custom.xml。由于您是新用户,情况可能并非如此。

答案 1 :(得分:0)

CMIS只是暴露Alfresco数据的一种方式,那么为什么内容模型的扩展应该特定于CMIS?

事实上,在使用CMIS时,在定义中使用cmis:folder时,您将自动获得对cm:folder的引用。就像调用时一样:

<getTypeDefinition xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
    <repositoryId>...</repositoryId>
    <!-- Need F: for folder, D: for document -->
    <typeId>F:fd:folder</typeId>
</getTypeDefinition>

...仍然可以很好地为您提供以下信息:

<getTypeDefinitionResponse xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/">
    <type ...>
        <id>F:fd:folder</id>
        ...
        <baseId>cmis:folder</baseId>
        <parentId>cmis:folder</parentId>
    </type>
</getTypeDefinitionResponse>

另外,Alfresco explains

  

Alfresco将其开箱即用的类型cm:foldercm:content(如Alfresco ECM域模型中所定义)分别映射到CMIS文件夹和CMIS文档。文件夹可以包含文档和文件夹的混合,允许构建文档的层次结构。通过这种方式,CMIS支持一个隐含的父母对孩子的概念,Alfresco将其子对象映射到其中。 cm:foldercm:content的子类型分别作为CMIS文件夹和文档的子类型公开。

所以,对我来说,使用cm:folder似乎是正确的做法。