Я только что написал скрипт с использованием 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); линии все остальное прекрасно работает. Родительская папка успешно создана, но, очевидно, документ хранится в корне текущего пространства, и это не то, что мне нужно. Действительно, мне нужно переместить его в фактическую папку.
Я делаю что-то неправильно? Любая помощь приветствуется. Благодарю.
UPDATE: Действительно, я узнал, что вызов move() внутри области if, в которой он работает, если я прокомментирую другой вызов внутри области else. Таким образом, ошибка возникает при вызове else move(). Кроме того, если я удалить статью еще и поставить только один шаг() вызов после, если область применения, она также производит ту же самую ошибку.
Вы должны запустить свое правило в качестве фонового процесса, оно решит проблему (опция "Выполнить правило в фоновом режиме").