您複製的代碼是不正確的:)。
首先你在做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;
}
好吧,你好像你正在調用一個函數getNodeList不存在的代碼? – billerby
你配置了/激活了你的ScriptLogger嗎? - log()映射到調試級別: log4j.logger.org.alfresco.repo.jscript.ScriptLogger = debug – alfrescian