Назад | Перейти на главную страницу

Как выполнить серверный JavaScript через Alfresco Share?

Я хочу выполнить некоторый серверный 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 и записать исключения в другой файл, в папку без правил!