2017-09-19 7 views
0

우리는 우리 프로젝트에 Alfresco Enterprise 4.2.2.5 플랫폼을 사용합니다.Alfresco에서 정의한 값의 정의 된 값을 가진 문서 목록을 얻는 방법

사용자는 Alfresco 폴더 "../contracts_def"에서 계약서를 작성한 다음 승인 프로세스를 시작합니다.

Contracts_def (Folder) 
    | 
    |---- contract_name1 (Folder) 
    |   |--- contract_name1.docx (main document) 
    |   |--- ext_file1.docx  (document) 
    | 
    |---- contract_name2 (Folder) 
       |--- contract_name2.docx (main document) 
       |--- ext_file2.docx  (document)   

각 메인으로 approvement 문서의 상태를 포함하는 속성을 설정했다하십시오 예컨대, 폴더 "contracts_def"를 는 다음 구조를 갖는다. Alfresco 노드 브라우저 속성의 전체 이름은 {httр : //www.mytest.ru/model/test/contract/1.0} 상태입니다.
"contracts_def"폴더에서 상태가 "온 - 서명"인 문서 목록을 가져오고 싶습니다.

나는 자바 스크립트 콘솔에서 실행하는 간단한 스크립트를 작성했습니다

var rs = search.query 
     ({ query: 
     "SELECT * FROM cmis:document WHERE CONTAINS('PATH:\"/app:company_home/st:sites/cm:contracts/cm:documentLibrary/cm:contracts/cm:contracts_def//*\"')", 
     language:"cmis-alfresco" }); 
     for (var r in rs) 
     { logger.log(rs[r].parent.name + "/" + rs[r].name + "\t" + rs[r].properties.status); } 

3 개 질문이있다 : 나는 "NULL"을 얻을

1) 스크립트가 작동하지만, 대신 문서의 상태를. 내가 이해하는 방법, 스크립트는 {httр : //www.mytest.ru/model/test/contract/1.0} 상태 인의 사용자 지정 속성을 반환하지 않지만 아무런 사용자 지정 속성도 얻을 수 없습니다 (예 : ). {httр : //www.alfresco.org/model/content/1.0} 작성자.

2) 상태가 "온 - 서명"인 문서 목록을 가져오고 싶지만 스크립트는 필터링하지 않고 지정된 모든 속성을 반환합니다.

요구 사항에 맞게 코드를 변경하려면 어떻게해야합니까?

3) Alfresco의 내장 웹 스크립트를 사용하여이 정보를 얻을 수 있습니까?

미리 감사드립니다.

+0

CMIS가 아닌 일반 Alfresco 검색 구문을 사용하면 어떻게됩니까? – Gagravarr

+0

스크립트에서 Alfresco 구문을 사용했지만 NULL이 다시 나타납니다. var rs = companyhome.childrenByXPath ('st : sites/cm : contracts/cm : documentLibrary/cm : contracts/cm : contracts_def // *'); (var r in rs) {logger.log (rs [r] .parent.name + "/"+ rs [r] .name + "\ t"+ rs [r] .properties.status);} –

+0

javascript에서 속성을 가져올 때 qname 형식을 사용해야합니다 (예 :'rs [r] .properties [ "test : status"]' – Gagravarr

답변

1

JavaScript API 및 기본 검색에 대한 전체 액세스 권한이있는 서버 측 JavaScript 콘솔에서 코드를 실행하는 경우 CMIS를 사용하려는 이유가 명확하지 않습니다.

JavaScript 및 CMIS를 사용하는 대신 관리 콘솔에서 사용할 수있는 노드 브라우저를 사용하여 쿼리를 실행하는 것이 더 쉽습니다. 다음 노드 브라우저 및 검색 상자에 넣고 관리 콘솔에

이동 :

PATH:"/app:company_home/st:sites/cm:contracts/cm:documentLibrary/cm:contracts/cm:contracts_def//*" =test:status:"on-sign" 

것은 확실 "FTS는-야외"확인이 선택됩니다.

이제 작업 쿼리가 생겼으므로 JS 콘솔로 돌아가서 search.query 호출에서 사용할 수 있습니다.

+0

고마워, 도움이되었다! –

+0

도움이 되니 기쁩니다. 대답을 수락하는 것을 잊지 마십시오. –