2

I am struggling to write a script in Alfresco to rename file extension.

The file is saved as filename.bin. I am using content rules to say when filename equals *bin rename to *pdf.

I am struggling a bit with the script and would appreciate any help.

My script is as below:

// 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();

but doesn't seem to get me anywhere.

4

2 に答える 2

6

記述されたスクリプトは、「filename.bin」という名前のドキュメントを取得し、その名前を「filename.bin.pdf」に変更します。次に、「cm:locale」というプロパティを mylocalenode の値に等しく設定しますが、このスニペットでは定義されていないようです。cm:locale で何をしようとしているのかわからないので、それを無視して、filename.bin という名前のドキュメントを検索し、その名前を変更するスクリプトを提供します。

フォルダー内の子を繰り返し処理したい場合は、Alfresco JavaScript API を参照して、以下のスニペットを変更してそれを行う方法を理解できるはずです。

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();
于 2012-07-25T22:52:33.363 に答える
0

を使用しているため、これにさらに追加しますcontent-rule。lucene/solr サービスを使用してドキュメントを検索する必要はありません。ドキュメント オブジェクトに直接アクセスできます。これは、ルールが実行されているドキュメントを参照します。

したがって、コードは以下のようになります。

var oldName = document.properties.name;
var newName = oldName.replace('.bin', '.pdf');
document.properties.name = newName;
document.save();
于 2015-05-28T18:56:56.260 に答える