Невозможно переместить узел в его собственное дерево, используя Javascript API Alfresco

1

Я только что написал скрипт с использованием 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(). Кроме того, если я удалить статью еще и поставить только один шаг() вызов после, если область применения, она также производит ту же самую ошибку.

  • 0
    Вы используете отладчик на открытом воздухе, чтобы увидеть, что происходит? docs.alfresco.com/5.1/tasks/ws-controller-debug.html
  • 0
    Разве этот отладчик не предназначен для клиентских веб-скриптов? Мой работает на стороне сервера, как правило для некоторого конкретного пространства, когда документ входит в это пространство.
Показать ещё 5 комментариев
Теги:
alfresco

1 ответ

3
Лучший ответ

Вы должны запустить свое правило в качестве фонового процесса, оно решит проблему (опция "Выполнить правило в фоновом режиме").

  • 1
    Хороший ! Не могли бы вы отредактировать свой ответ, чтобы объяснить, что происходит? Мне любопытно !
  • 0
    Чувак, ты только что спас мой день. Когда вы публикуете проблему в StackOverflow, вы никогда не ожидаете получить такое простое, короткое и точное решение, но на этот раз я могу только встать на колени и аплодировать вам.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню