2012-07-25 1 views
2

Alfresco에서 파일 확장명을 바꾸기 위해 스크립트를 작성하는 데 어려움을 겪고 있습니다.Alfresco 스크립트에서 파일 이름 바꾸기

파일은 filename.bin으로 저장됩니다. 파일 이름이 *bin이고 이름이 *pdf 인 경우 내용 규칙을 사용하고 있습니다.

저는 대본에 약간의 고민을하고 있으며 도움을받을 수 있습니다.

// change the name of this document 
document.properties.name = document.properties.name+".pdf"; 
// add a new property string 
document.properties["cm:locale"] = mylocalenode; 
// save the property modifications 
document.save(); 

하지만 어디 날 잡으려고하지 않는 것 :

내 스크립트는 다음과 같습니다.

+0

"절대로 나에게 가져다 줄 수 없다"고 말하지 마십시오. 그건 우리를 어느 곳으로도 데려 가지 않습니다 :) ... 오류 메시지가 있다면 그 오류 메시지를 보여줄 수 있습니까? 아무것도하지 않는 것 같아요? 당신의 기록을 확인 했습니까? – luiscolorado

답변

6

작성된 스크립트는 "filename.bin"이라는 문서를 가져 와서 "filename.bin.pdf"로 이름을 바꿉니다. 그런 다음이 코드에서 인 것처럼 보이는 "cm : locale"이라는 속성을 mylocalenode 값과 동일하게 설정합니다. 나는 당신이 cm : locale으로 무엇을 할 것인지 모르겠다. 그래서 그것을 무시하고 filename.bin이라는 이름의 문서를 검색하고 이름을 바꾸는 스크립트를 줄 것이다.

폴더의 하위 항목을 반복하는 경우 Alfresco JavaScript API를보고 아래 스 니펫을 수정하는 방법을 찾아야합니다. 당신이 content-rule .There를 사용하고,이 더 추가

var results = search.luceneSearch("@cm\\:name:filename.bin"); 
var doc = results[0]; // assumes there is only one result, which may not be what you want 
var oldName = doc.properties.name; 
var newName = oldName.replace('.bin', '.pdf'); 
doc.properties.name = newName; 
doc.save(); 
+0

많은 감사 Jeff – user1552474

+1

doc.name = newName; Alfresco의 관계에 내부적으로 사용 된 childQNamePath (FileFolderService.rename())을 변경하기 때문에. 속성 이름을 설정하면 일관성없는 동작이 발생할 수 있습니다. 이것은 ScriptNode API의 이상한 특질이다. – Florian

0

가 먹 직접 문서 개체에 액세스 할 수 루씬/SOLR 서비스를 사용하여 문서를 검색 할 필요 없다, 당신의 규칙이 실행되고있는 문서를 참조한다.

코드는 아래와 같습니다.

var oldName = document.properties.name; 
var newName = oldName.replace('.bin', '.pdf'); 
document.properties.name = newName; 
document.save();