2013-08-06 50 views
1
var nodeRef = "workspace://SpacesStore/2112480f-f0e8-461b-9564-78e7225f177c"; 

try { 

var currNode = companyhome.findNode(nodeRef); 
getNodeList(currNode); 
removeNode(currNode); 
} 

catch(err) { 
logger.log("Exception: " + err.message); 
} 


function removeNode(node) { 
node.remove(); 
logger.log(node.displayPath + "/" + node.name + " is deleted"); 
return true; 

        } 

問題是節點沒有被刪除和logger.log不會記錄......Java腳本刪除節點在露天工作不

我使用這個鏈接引用http://www.zeenor.com/it/cms/alfresco/380-delete-nodes-documents-in-alfresco-repository-using-javascript-api.html

任何支持表示讚賞...

+0

好吧,你好像你正在調用一個函數getNodeList不存在的代碼? – billerby

+1

你配置了/激活了你的ScriptLogger嗎? - log()映射到調試級別: log4j.logger.org.alfresco.repo.jscript.ScriptLogger = debug – alfrescian

回答

1

您複製的代碼是不正確的:)。

首先你在做getNodeList(currNode); & then removeNode(currNode);

如果我看代碼getNodeList的鏈接:)有

// List all the nodes under folder 
function getNodeList(currNode) {  

    // Check whether node is document 
    if(currNode.isDocument) return removeNode(currNode); 

    // Check whether node is folder 
    if (currNode.isContainer) { 

     var nodes = currNode.children; 
     for (var i=0; i<nodes.length; i++) {    

      if(nodes[i].isDocument) removeNode(nodes[i]);   
      else if (nodes[i].isContainer) getNodeList(nodes[i]); 

     }// end for 
    }// end if 

    return true; 
} 

然後它已經做了的removeNode(和它在你的代碼中刪除後,你再刪除它。

因此,或者刪除主代碼中的getNodeList()或removeNode()。例如:

var nodeRef = "workspace://SpacesStore/2112480f-f0e8-461b-9564-78e7225f177c"; 

try { 

var currNode = companyhome.findNode(nodeRef); 
//getNodeList(currNode); 
removeNode(currNode); 
} 

catch(err) { 
logger.log("Exception: " + err.message); 
} 

function removeNode(node) { 
logger.log(node.displayPath + "/" + node.name + " is deleted"); 
node.remove(); 
return true; 
} 

順便說一句,首先刪除一個節點然後將值打印到logger.log中是個不好的例子。因此,首先打印它們或捕獲布爾值,如果它被刪除,然後打印它像:

function removeNode(node) { 
    if(node.remove()) 
     logger.log(node.displayPath + "/" + node.name + " is deleted"); 
    else 
     logger.log(node.displayPath + "/" + node.name + " is NOT deleted"); 
    return true; 
    }