无法使用Alfresco的Javascript API将节点移动到自己的树上



我刚刚使用 Javascript API 编写了一个脚本,所以我可以将其用作空格的规则。每当文档进入空间时,它基本上都会检查文档的名称以获取它将存储在其中的父目录(文档的名称包含父目录的文件夹名称(,然后创建未来的父目录(如果不存在(,最后将文档移动到其中。

我在最后一步遇到了麻烦。每当我尝试将文档移动到最近创建的文件夹中时,都会收到以下错误:

Node has been pasted into its own tree.

这是我到目前为止的代码,我认为它几乎是自动描述的:

var fileName= document.properties.name;
var fields = fileName.split('.');
var parentName= fields[0];
var newNode=space.childByNamePath(parentName);
if (newNode === null) { //create folder and move document into it
newNode=space.createFolder(parentName);  //works
document.move(newNode); //I'm getting the error here
}else{ //folder already exists, just move document into it
document.move(newNode); //here too
}

如果我注释掉document.move(newNode(; 行,其他一切正常。父文件夹已成功创建,但显然文档存储在当前空间的根目录中,这不是我所需要的。确实,我需要将其移动到实际文件夹中。

我做错了什么吗?任何帮助将不胜感激。谢谢。

更新:事实上,我发现if范围内的move((调用如果我注释掉else作用域内的另一个调用,它就会起作用。所以错误是在elsemove(( 调用中抛出的。此外,如果我删除else子句并在if范围之后只放置一个move((调用,它也会产生相同的错误。

您应该将规则作为后台进程运行,它将解决问题("在后台运行规则"选项(。

最新更新