2015-12-19 22 views
1

我試圖更改所有文檔(cm:name)和documentTypeName(它工作正常)的名稱,但是當我嘗試更改cm:name時,它會引發重複節點名異常。所有這些都是爲了在戶外製定規則。對不起,我的英語Alfresco複製節點名稱異常

var documentText = null; 
    var query = "@pa\\:documentTypeId:" + document.properties["paList:id"]; 
    var extenson= null; 
    var resultSet = search.luceneSearch(query); 
    documentText = resultSet[0].properties['pa:documentType']; 

    if(resultSet.length>0){ 
     query = "@pa\\:documentTypeId:" + document.properties["paList:id"] + " AND " + "@pa\\:documentType:" + documentText; 
     response = search.luceneSearch(query); 
     for(i=0;i<resultSet.length;i++){ 
      extension = (resultSet[i].properties['cm:name'].substring(resultSet[i].properties['cm:name'].lastIndexOf("."))); 

      response[i].properties['cm:name'] = response[i].properties['pa:documentType'] + extension; 

      response[i].properties['pa:documentType'] = document.properties["paList:description"]; 
      response[i].save(); 
     } 
    } 
+1

你能寫出正確的例外名稱嗎?只是爲了確定我們瞭解什麼是例外情況。 –

+0

你的代碼中有些東西很難理解。您執行第一次lucene搜索並設置變量「resultSet」。如果您發現多個結果,則執行另一個具有附加約束的lucene搜索,並將結果存儲在變量「response」中。然後循環使用resultSet,但使用相同的索引「i」來訪問「resultSet」和「響應」。 「響應」不可能包含比resultSet更少的結果嗎? –

+0

嗨,馬可感謝您的回覆,所以異常的確切名稱是:.DuplicateChildNodeNameException:重複的子名稱不允許。 –

回答

0
response[i].properties['cm:name'] = response[i].properties['pa:documentType'] + extension; 

看起來要重命名的節點,所以它們開始與文檔類型,然後將文件擴展名。

所以,如果你有在同一文件夾與具有相同的PA filea.doc和fileb.doc:documentType(可以說worddoc),他們就都被稱爲worddoc.doc 這會給你一個DuplicateChildNodeNameException,因爲2個相同名稱的文件是不可能的。