Я хочу выполнить некоторый серверный JavaScript (для управления узлами репозитория).
У меня есть доступ администратора через Alfresco Share, но у меня нет доступа к Alfresco Explorer или SSH.
Является ли это возможным?
(Альфреско 5.0)
Я думаю, что одноразовый веб-скрипт - лучший вариант, чем подход с использованием правил. Это можно развернуть в расширениях Data Dictionary / Web Scripts Extensions с двумя файлами:
Дескриптор (например, output-data.get.desc.xml):
<webscript kind="org.alfresco.repository.content.stream">
<shortname>Output metadata</shortname>
<description>Output data on content files</description>
<url>/output-data.txt</url>
<format default="">extension</format>
<family>Eric</family>
<authentication>user</authentication>
<transaction>required</transaction>
</webscript>
Напишите контроллер на JavaScript, выводя его на узел содержимого в репозитории, а также в качестве последней строки, помещая узел содержимого в модель веб-скрипта, чтобы его можно было передать в браузере (цель атрибута "kind"):
Контроллер (например, output-data.get.js):
// just some text to output for demonstration purposes
var contentString = "Output";
// create a text document in company home
var outputDoc = companyhome.createNode('output-data.txt', 'cm:content');
outputDoc.content = contentString;
outputDoc.save();
//stream the document
model.contentNode = outputDoc;
Быстрый «Обновить веб-скрипты» (кнопка внизу http: // локальный: 8080 / альфреско / с / индекс), и ваш веб-скрипт теперь легко запускается. Вы даже можете изменить код JavaScript, и вам больше не придется обновлять веб-скрипт.
Проблемы с ведением журнала можно решить, как и в другом ответе, путем обертывания основной части кода в try / catch и записи сообщений об ошибках в выходной файл.
Если у вас нет доступа к машине с репозиторием, я думаю, что самым простым вариантом будет вариант Data Dictionary + фиктивное правило.
Во-первых, создайте код javascript на своем локальном компьютере. Затем загрузите его в словарь данных. Выберите Репозиторий, затем Словарь данных, затем Сценарии, так что полный путь Repository > Data Dictionary > Scripts
. При загрузке убедитесь, что тип содержимого / пантомимы установлен на Mimetype: Java Script
, при необходимости изменив его в Edit Properties
Теперь создайте где-нибудь фиктивную папку. В этой папке выберите Manage Rules
, создайте новое правило. Установите его на работу Items are created or enter this folder
и выполнить действие Execute Script
и выберите свой недавно загруженный скрипт как тот, который нужно запустить
Наконец, каждый раз, когда вы хотите запустить сценарий, создавайте случайный файл в своей папке!
Редактировать: Если у вашего скрипта есть какие-либо проблемы, они будут регистрироваться только на стороне репо, которую вы не сможете увидеть. Вероятно, поэтому лучше всего обернуть все это в гигантский блок try / catch и записать исключения в другой файл, в папку без правил!