Поставил javascriptconsole пробовать отлаживать скрипты. взял вот отсюда:http://confluence.ecm-alfresco.ru/display/workingexamples/Alfresco+Repository+JavaScript+API
Вот начало скрипта:
// Данный скрипт будет выполнен для всех объектов типа "пользователь" по очереди.
// Именование в Alfresco таково, что "пользователь" внутри этого скрипта адресуется как "document".
// Задачи со сроком "сегодня"
var today = [];
// Задачи со сроком "завтра"
var tomorrow = [];
// Просроченные задачи
var overdue = [];
// Получили сегодняшнюю дату
var now = new Date();
now.setHours(0,0,0,0);
// Получили тикет для выполнения запросов к репозиторию
var ticket = session.getTicket();
// Выбрали из репозитория все задачи пользователя
var connector = remoteService.connect("alfresco");
var resp = eval('(' + connector.get('/api/task-instances?authority=' + encodeURIComponent(document.properties.userName) + '&alf_ticket=' + ticket) + ')');
при запруске выдается:
500 Internal Error An error inside the HTTP server which prevented it from fulfilling the request. 08040008 Wrapped Exception (with status template): 08040046 Failed to execute script 'Javascript Console Script': 08040045 ReferenceError: "document" is not defined. (a2b2b125f70253d7af6c225fe078631b.js#16)
Понятно что не определен document. Но как его определить? Или ткните мордой лица в хорошую документацию....
Так как код самого скрипта о напоминании заинтересовал юзера bpoleg, скину текст сюда: может быть, это еще кому-нибудь понадобится.
Здесь надо прояснить, что именно происходит. Список юзеров, которым необходимо напоминание, находится в файле CompanyHome/XML/weekly-report-mailing-list.xml и имеет следующий вид:
Где userid - это alfresco user id человека. Администратор по мере надобности добавляет или убавляет юзеров.
А вот и сам напоминающий скрипт mail-about-weekly-report.js:
xml = companyhome.childByNamePath("XML/weekly-report-mailing-list.xml");
if(xml!=null){
var c = new String(xml.content);
var mailingList = new XML(c);
for each (uid in mailingList.userid){
var alfrescoPerson = people.getPerson(uid);
if(alfrescoPerson!=null && alfrescoPerson!='undefined'){
var mail = actions.create("mail");
mail.parameters.to = alfrescoPerson.properties.email;
mail.parameters.subject = "Напоминание о недельном отчете";
mail.parameters.from = alfrescoPerson.properties.email;
mail.parameters.text = "Добрый день.nn Напоминаем Вам, что сегодня Вы обязаны предоставить еженедельный отчет.";
mail.parameters.text += "nn Доступ к системе генерации еженедельных отчетов осуществляется с Вашего Рабочего Стола в Альфреско.";
mail.execute(alfrescoPerson);
}else logger.error("Account '"+uid+"' is not found!");
}}else logger.error("Mailng list 'XML/weekly-report-mailing-list.xml' is not found!");
Выгрузите сертификат через экспорт...(При подтверждении, выберите просмотр - экспорт.)
Затем в свойствах браузера найдите закладку Сертификаты и загрузите сертификат в секцию Серверы...
После этого он будет доверенным для этого браузера. ;)
Получилось. Но
1. положил все файлы не в Company Home > Data Dictionary > Web Scripts (SP5:webscripts) > org > alfresco > sample
а в Company Home > Data Dictionary > Web Scripts (SP5:webscripts)
соответственно вызываю не http://localhost:8080/alfresco/service/sample/hello
а http://localhost:8080/alfresco/service/hello
и описание чуть другое:
<webscript>
<shortname>Hello</shortname>
<description>Polite greeting</description>
<url>/hello</url>
<authentication>user</authentication>
</webscript>
Вопросы снимаются.
Похоже малость в документации какие-то отпечатки.
Только сейчас заметил что мне видны только 54 страницы для перехода и 999 элементов в списке. Остальные видны если я отфильтрую по дате за последние несколько дней... И еще, ответ JSON уже приближается к 3000 мс... Иными словами реестр грузится где-то 15-20 секунд.. Это как-нибудь исправить возможно? Чтобы например я получал не все элементы а только часть, а остальные только по требованию...
Скорректирую вопрос 1: Почему я вижу только 999 элементов в реестре? Как это исправить, или где? :)
Вопрос 2: Почему сбилась автонумерация? При добавлении нового элемента подставлен уже существующий номер последнего элемента в списке.. Такле ощущение что где-то забыли +1 к переменной добавить..
Вопрос 3: Как быть с JSON-ответом который состоит у меня уже из 38000 строк при получении реестра? Возможно-ли исправить?
За ранее спасибо! =)
В статье http://www.ossportal.ru/technologies/alfresco/blogs/567 описано создание своего бизнес-процесса.
При старте процесса нужно заполнить поле bpm:workflowDescription. Как мне вместо заполнения этого поля вывести в описании бизнес-процесса строку "123" к примеру?
ну у меня он вообще никак не принимает, если в firefox я могу добавить в исключение то хром мне таких опций не дает, и каждый раз воет о безопасности. Можно както обойти?
Вот начало скрипта:
// Данный скрипт будет выполнен для всех объектов типа "пользователь" по очереди.
// Именование в Alfresco таково, что "пользователь" внутри этого скрипта адресуется как "document".
// Задачи со сроком "сегодня"
var today = [];
// Задачи со сроком "завтра"
var tomorrow = [];
// Просроченные задачи
var overdue = [];
// Получили сегодняшнюю дату
var now = new Date();
now.setHours(0,0,0,0);
// Получили тикет для выполнения запросов к репозиторию
var ticket = session.getTicket();
// Выбрали из репозитория все задачи пользователя
var connector = remoteService.connect("alfresco");
var resp = eval('(' + connector.get('/api/task-instances?authority=' + encodeURIComponent(document.properties.userName) + '&alf_ticket=' + ticket) + ')');
при запруске выдается:
500 Internal Error An error inside the HTTP server which prevented it from fulfilling the request. 08040008 Wrapped Exception (with status template): 08040046 Failed to execute script 'Javascript Console Script': 08040045 ReferenceError: "document" is not defined. (a2b2b125f70253d7af6c225fe078631b.js#16)
Понятно что не определен document. Но как его определить? Или ткните мордой лица в хорошую документацию....
Помогите, пожалуйста.
Здесь надо прояснить, что именно происходит. Список юзеров, которым необходимо напоминание, находится в файле CompanyHome/XML/weekly-report-mailing-list.xml и имеет следующий вид:
Где userid - это alfresco user id человека. Администратор по мере надобности добавляет или убавляет юзеров.
А вот и сам напоминающий скрипт mail-about-weekly-report.js:
Затем в свойствах браузера найдите закладку Сертификаты и загрузите сертификат в секцию Серверы...
После этого он будет доверенным для этого браузера. ;)
1. положил все файлы не в Company Home > Data Dictionary > Web Scripts (SP5:webscripts) > org > alfresco > sample
а в Company Home > Data Dictionary > Web Scripts (SP5:webscripts)
соответственно вызываю не http://localhost:8080/alfresco/service/sample/hello
а http://localhost:8080/alfresco/service/hello
и описание чуть другое:
<webscript>
<shortname>Hello</shortname>
<description>Polite greeting</description>
<url>/hello</url>
<authentication>user</authentication>
</webscript>
Вопросы снимаются.
Похоже малость в документации какие-то отпечатки.
Скорректирую вопрос 1: Почему я вижу только 999 элементов в реестре? Как это исправить, или где? :)
Вопрос 2: Почему сбилась автонумерация? При добавлении нового элемента подставлен уже существующий номер последнего элемента в списке.. Такле ощущение что где-то забыли +1 к переменной добавить..
Вопрос 3: Как быть с JSON-ответом который состоит у меня уже из 38000 строк при получении реестра? Возможно-ли исправить?
За ранее спасибо! =)
При старте процесса нужно заполнить поле bpm:workflowDescription. Как мне вместо заполнения этого поля вывести в описании бизнес-процесса строку "123" к примеру?
Как вариант послать его к...