#alfresco #alfresco-share
#на открытом воздухе #на открытом воздухе-поделиться
Вопрос:
У меня есть правило для папки, которое выполняет код JavaScript всякий раз, когда в папку попадает новый документ. Проблема в том, что правило не запускается автоматически, когда документ попадает в папку, но я должен запустить его вручную.
Я также пробовал запускать скрипт в фоновом режиме. Если я помещаю правило в обновление, это работает автоматически. Проблема заключается в создании или вводе новых документов в папку. Я использую сообщество на открытом воздухе 4.2.f поделиться. Пожалуйста, сообщите. Спасибо.
Комментарии:
1. Этого не должно происходить. Как вы добавляете файл в папку и как вы настроили свое правило (например, каковы критерии)?
2. В принципе, всякий раз, когда категория добавляется к документу, который в настоящее время находится в папке 1, он перемещается в нужную папку на основе категории, скажем, в папку 2. Теперь папка 2 выполняет скрипт всякий раз, когда в нее попадает любой новый документ. Проблема в том, что этот скрипт, примененный к папке 2, выполняется только после запуска вручную.
Ответ №1:
Я не могу воссоздать эту проблему в версии сообщества Alfresco 4.2.f. Убедитесь, что:
- Все правила включены
- Пользователь, помещающий документ в папку 1, имеет права на создание новых документов в папке 2.
- Критерии для правил действительны
- Скрипт в папке 2 фактически не запущен. Лучший способ проверить это — включить серверный отладчик JavaScript, отредактировав $TOMCAT_HOME/webapps/alfresco/WEB-INF/classes/log4j.properties и установив log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger=включено
В качестве альтернативы, для # 4 вы можете перейти к готовому действию, например, к другому перемещению, которое переместит документ в папку 3. Это то, что делает мой тест. Если это работает для вас так же, как и для меня, вы сможете сузить поиск и устранение неполадок до проблемы с пользовательским скриптом.
Комментарии:
1. Привет, Джефф, большое спасибо. Я выполнил все шаги. Для 4-го я написал тестовый скрипт для перемещения документа в папку 3 при входе в папку 2. Это действительно работает. Итак, я предполагаю, что в моем пользовательском скрипте что-то не так, и мне нужно запустить его вручную для выполнения определенного действия.
2. В сценарии я создаю новый html-документ, а затем выполняю поиск lucene, чтобы найти документы с определенным именем (совпадающим с именем только что перемещенного документа) в той же папке, в которой находится документ. При дальнейшем анализе я вижу, что документ html успешно создан, но для части поиска lucene требуется, чтобы правило запускалось вручную.
Ответ №2:
при запуске скриптов, запускаемых по правилам, вы не можете полагаться на поиск нового документа, поскольку индексация не завершается при запуске скрипта. Если SOLR настроен как поисковая система, индексация выполняется асинхронно из-за пределов репозитория каждые 15 секунд. Возможно, вы уже знаете, что можете получить имя из узла сценария?
Комментарии:
1. Спасибо @Heiko за ответ. Если поиск выполняется каждые 15 секунд, каков наилучший способ поиска документа, который запускает правило, и заставить его отображаться в результатах поиска?
2. вам вообще не нужен поиск для этого варианта использования. Если вы создаете новый узел (ваш html), метод уже возвращает новый ScriptNode. Пожалуйста, опубликуйте свой код скрипта, чтобы дать вам советы / подсказки.