2016-10-07 4 views
1

여러 개의 사용자 지정 콘텐츠 형식이 있으며 개별 형식을 기반으로 문서를 쿼리 할 수 ​​있습니다. 하지만 내 요구 사항은 모든 종류의 문서를 가져오고 싶습니다.CMIS를 사용하여 Alfresco 저장소에서 모든 유형의 문서를 쿼리하는 방법

시간 : hrdoctype이 다른 모든 유형의 부모 유형이기 때문에 select * from hr : hrdoctype을 작성했습니다. 그러나 그것은 작동하지 않습니다.

그러나 * 선택 hr * : hrReimbursment 쓸 것이다,이 잘 작동합니다.

그렇다면 단일 부모 유형 또는 단일 조건의 모든 모든 사용자 정의 유형의 문서를 어떻게 얻을 수 있습니까? 아래 구성을 참조하십시오.

이 경우 특정 콘텐츠 형식을 사용하면 작동합니다. 하지만 단일 쿼리를 사용하여 모든 유형의 문서를 가져오고 싶습니다.

어떻게하면이 요구 사항에 대한 CMIS 쿼리를 작성할 수 있습니까?

공유-설정-있는 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> 

맞춤 콘텐츠 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>     
+0

것 같습니다. 우리가 볼 필요가있는 것은 콘텐츠 모델 XML이 각 유형이 실제로 hr : hrdoctype의 하위 유형임을 보여줍니다. –

+0

@ Jeff Potts 내 질문을 편집하고 내 사용자 지정 콘텐츠 모델의 샘플 스 니펫을 추가했습니다. 한 번 확인하십시오. 미리 감사드립니다. –

답변

3

난 그냥 내 저장소에 simillar 사건을 테스트했다.

기본 CMIS 유형은 cmis:document, cmis:folder, cmis:relationship, cmis:policy입니다. 유형 cmis:documentcmis:folder은 모든 저장소에서 지원해야합니다.

내 경우 myc:xyz 유형은 cmis:folder 유형에서 상속됩니다.

  1. 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" 
    } 
    
  2. 모든 myc:xyz 폴더 선택 CMIS 쿼리 :

    select * from myc:xyz where cmis:name='ABCD' 
    

    반환 같은 FOL을 일부 myc:xyz 유형의 추가 속성 데르 :이 도움이

    { 
        "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" 
    } 
    

희망을.

OpenCMIS Client API Developer's Guide

PS. Alfresco CMIS 1.1 "The Browser binding"으로 쿼리를 테스트 할 수 있습니다. 는 예를 들어,이 (매우 편안 파이어 폭스는 자동으로 URL로 인코딩 된 매개 변수를 디코딩) 쿼리 select * from cmis:folder where cmis:name='ABCD'에 대한 URL입니다 : 당신이 공유 구성의 코드에서 붙여 넣은 것 같은

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' 
+0

나는 select * from cmis : document라는 쿼리를 작성했지만, 불필요한 fileslike ftl, xml 및 js를 제공합니다. 여기에 제 요구 사항은 72 가지 사용자 정의 유형이 있습니다. 단일 부모 유형을 사용하는 72 가지 유형의 노드 참조 만 원합니다. –

+1

시도해 보겠습니다 : cmis : name, cmis : objectTypeId, cmis : baseTypeId from hr : hrdoctype – wildloop

+0

답장을 보내 주셔서 감사합니다. 그 지금 일하고 :) –