如何使用CMIS从Alfresco存储库查询所有类型的文档

如何使用CMIS从Alfresco存储库查询所有类型的文档,alfresco,alfresco-share,cmis,alfresco-webscripts,Alfresco,Alfresco Share,Cmis,Alfresco Webscripts,我有多种自定义内容类型,并且可以根据单个类型查询文档。但我的要求是我想得到所有类型的文件 我从hr:hrdoctype编写了查询select*,因为我的hr:hrdoctype是所有其他类型的父类型。但它不起作用 但是,如果我将从hr:hr报销中选择*的话,这就行了 那么,我如何才能获得所有自定义类型的文档,这些文档具有单个父类型或单个条件。 请参阅下面的配置 在这种情况下,如果我将使用特定的内容类型,那么它的工作良好。但我希望使用单个查询获取所有类型的文档 请帮助我如何编写此需求的CMIS查询

我有多种自定义内容类型,并且可以根据单个类型查询文档。但我的要求是我想得到所有类型的文件

我从hr:hrdoctype编写了查询select*,因为我的hr:hrdoctype是所有其他类型的父类型。但它不起作用

但是,如果我将从hr:hr报销中选择*的话,这就行了

那么,我如何才能获得所有自定义类型的文档,这些文档具有单个父类型或单个条件。 请参阅下面的配置

在这种情况下,如果我将使用特定的内容类型,那么它的工作良好。但我希望使用单个查询获取所有类型的文档

请帮助我如何编写此需求的CMIS查询

Share-config-custom.xml:-

                <type name="cm:content">
                   <subtype name="hr:hrdoctype" />
                </type>

                <type name="hr:hrdoctype">
                   <subtype name="hr:hrReimbursment" />
                   <subtype name="hr:hrMISCELLANEOUS" />
                   <subtype name="hr:hrWELFARE_POLICIES" />
                   <subtype name="hr:hrGENERAL_POLICIES" />
                   <subtype name="hr:hrPOLICIES_SIGNOFF_NOTES_FILE_NOTES" />
                   <subtype name="hr:hrPHOTOGRAPH" />
                   <subtype name="hr:hrPIF_PROFILE_OVERVIEW" />
                   <subtype name="hr:hrMPR_FORM" />
                   <subtype name="hr:hrPSYOMETRIC_REPORT" />
                   <subtype name="hr:hrTECHNICAL_TEST_ASSESSEMENT" />
                   <subtype name="hr:hrINTERVIEW_ASSESSEMENT_SHEET" />                                     

            </type>

Custom-content-model.xml:-

     <types>
         <type name="hr:hrdoctype">
            <title>HR Document</title>
            <parent>cm:content</parent>

            <properties>
                <property name="hr:employeeNumber">
                        <title>Employee Number</title>
                        <type>d:text</type>
                        </property>
                <property name="hr:employeeName">
                        <title>Employee Name</title>
                        <type>d:text</type>
                </property>                             
            </properties>

        </type>

        <type name="hr:hrReimbursment">
            <title>REIMBURSEMENT</title>
            <parent>hr:hrdoctype</parent>


            <properties>
                <property name="hr:DocumentDescription">
                        <title>Document Description</title>
                        <type>d:text</type>                         
                </property> 

                <property name="hr:ReimbursmentDate">
                        <title>Reimbursment Date</title>
                        <type>d:text</type>                         
                </property> 

            </properties>

        </type>

        <type name="hr:hrMISCELLANEOUS">
            <title>MISCELLANEOUS</title>
            <parent>hr:hrdoctype</parent>   

            <properties>
                <property name="hr:DocumentDescription1">
                        <title>Document Description</title>
                        <type>d:text</type>                         
                </property> 

            </properties>

        </type>
</types>                

人力资源文件
cm:内容
员工编号
d:文本
员工姓名
d:文本
报销
hr:hrdoctype
文件说明
d:文本
偿还日期
d:文本
混杂的
hr:hrdoctype
文件说明
d:文本

我刚刚在我的存储库中测试了类似的案例

有四种基本CMIS类型:
CMIS:document
CMIS:folder
CMIS:relationship
CMIS:policy
。任何存储库都必须支持类型
cmis:document
cmis:folder

我的案例
myc:xyz
类型继承自
cmis:folder
类型

  • CMIS查询选择所有文件夹:

    select * from cmis:folder where cmis:name='ABCD'
    
    返回文件夹:

    {
        "cmis:objectId": "5b97929c-553b-4494-91cc-2c18e50b2f1c",
        "cmis:objectTypeId": "F:myc:xyz",
        "cmis:baseTypeId": "cmis:folder",
        "cmis:name": "ABCD"
    }
    
  • CMIS查询选择所有
    myc:xyz
    文件夹:

    select * from myc:xyz where cmis:name='ABCD'
    
    返回同一文件夹,其中包含一些
    myc:xyz
    type的附加属性:

    {
        "cmis:objectId": "5b97929c-553b-4494-91cc-2c18e50b2f1c",
        "cmis:objectTypeId": "F:myc:xyz",
        "cmis:baseTypeId": "cmis:folder",
        "cmis:name": "ABCD",
    
        "myc:AdditionalProperty1": "1111",
        "myc:AdditionalProperty2": "2222"
    }
    
  • 希望这有帮助

    另外,您可以使用Alfresco CMIS 1.1测试查询。 例如,这是查询的URL
    select*from cmis:folder,其中cmis:name='ABCD'
    (Firefox自动解码URL中的编码参数,这非常方便):


    看起来您已经粘贴了共享配置的一个片段。我们需要看到的是您的内容模型XML,以显示这些类型实际上都是hr:hrdoctype的子类型。@Jeff Potts我已经编辑了我的问题,并添加了自定义内容模型的示例snipet。请检查一下。提前感谢。我编写了查询,从cmis:document中选择*,但它会提供一些不必要的文件,如ftl、xml和js。我的要求是,我有72种自定义类型的文档。我只想使用单亲类型引用这72种类型的节点。试试这个,它应该可以工作:在我的应用程序中,从hr:hrdoctype中选择cmis:name、cmis:objectTypeId、cmis:baseTypeId,在查询之后,它只返回存储库中的前100条记录。那么,如何获得100多条记录呢?使用参数:&maxItems=10&skipCount=20在哪里使用此参数?
    http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/?cmisselector=query&succinct=true&q=select * from cmis:folder where cmis:name='ABCD'