Новые комментарии

Гость123 - в ответ на Полезные zimlet для работы с зимброй 10 лет назад »»»
 Подскажите пж, а в Зимбре есть возможность импортировать и экспортировать iCal-календари? Поддерживает ли она все виды записей: встречи, задачи (с подзадачами), заметки, дневниковые записи?
avasyukov - в ответ на BeCPG и Alvex 10 лет назад »»»
По поводу выходных таки добрался описать все результаты разбирательств с этим багом. Сначала по вопросам, потом итоги разбора причин.

> Вопрос первый: альвекс дружит с кастомными
> бизнес процессами и списками данных?

Да. Поставьтесь без beCPG, залейте свои процессы и модели - все будет работать.

> Вопрос второй: Альвекс(jar файлы) при запуске
> кудато рапаковываються? чтобы очистить систему
> от альвекса мало удалить jar файлы?

Не распаковывается. Но если у вас есть ноды в репозитории, которые используют модели Alvex, то модели нельзя просто так удалять. Нужно сначала удалить ноды, только потом модели (ака jar-ники). Пример - запустили бизнес-процесс (может даже завершили штатно), в репе появились ноды (задачи процесса), которые используют модель этого процесса. Чтобы удалить модель, нужно сначала удалить до конца процессы, в т.ч. завершенные.

Это никак не специфично для Alvex. Попробуйте сделать так на собственных процессах - получите тот же эффект.

> Заметил что ошибка "Процесс не может быть запущен {0}"
> появляется даже если нет моих кастомных процессов (чистая
> Alfresco 4.2.f + BeCPG Project Manager + Alvex 2014.05)

Да, на таком чистом инстале проблема проявляется.

> > Но вообще как-то очень странно этот beCPG устроен.
> > Почему их amp-ы ставятся только с ключом '-force' - загадка.
> у меня вроде и без force ставились.

Оно ставится именно что только с -force. Возможно, Вы ставили скриптом установки от beCPG. Но он внутри себя молча вызывает с -force, причем подавляя вывод предупреждений.


Теперь самое интересное - что же происходит, и что с этим делать. Причина проблемы такая:

1. beCPG перегружает штатное API Alfresco для получения любых форм, в том числе форм задач процесса. Alvex тоже это делает. Почему так - потому что интерфейсов под вставку своего кода Alfresco в этом месте не предусмотрела, остается только замена на свою реализацию. При этом Alvex использует штатный механизм перегрузки, а beCPG при установке просто затирает исходную реализацию, складывая на ее место свою (да, именно для таких манипуляций и нужен ключ -force при установке).

2. В итоге используется реализация имени Alvex. Просто потому что штатный механизм перегрузки сделан именно для того, чтобы заменить реализацию Alfresco на свою. И если на месте реализации имени Alfresco де-факто лежит реализация имени beCPG - это ничего не меняет, она будет перегружена реализацией имени Alvex.

3. beCPG при установке затирает не только API получения форм, но и контролы форм (опять привет -force). Причем буквально все контролы и довольно жестоко - банальный textfield начинает зависеть от того, что отдают API имени beCPG. Именно на этом моменте все падает - потому что реализация имени beCPG заменена на реализацию имени Alvex, а перегруженные контролы никак не проверяют, что нестандартные функции имени beCPG доступны.


Как с этим жить:

1. Самый правильный сценарий:
Заставить Alfresco предусмотреть нужные интерфейсы для расширения API.
Заставить нас и beCPG перейти на них вместо перегрузки. (Мы готовы, не вопрос.)

2. Менее правильный сценарий:
Объяснить beCPG, что так жить нельзя. Заставить их (а) не затирать реализации, а перегружать их, (б) отвязать перегруженные контролы от нестандартных API. (Alvex сделан именно так - если будет использоваться реализация beCPG, у нас отвалятся некоторые красивости, ради которых сделана наша реализация, но вообще-то работать все будет.)

3. Самый быстрый сценарий:
С помощью напильника и колючей проволоки сделать свою третью реализацию API, склеив в ней все функции beCPG и Alvex. С точки зрения правильности - плохая идея, зато никого ни в чем убеждать не надо, можно просто сделать. Смотреть надо в сторону alfresco/site-webscripts/com/alvexcore/components/form/form.lib.ftl из состава Alvex и alfresco/site-webscripts/org/alfresco/components/form/form.lib.ftl из состава beCPG.
avasyukov - в ответ на Баг или так задуманно? - Экспорт в DOCX при помощи скрипта 10 лет назад »»»
Внезапно заметил вопрос. Пожалуй, занекропощу. Это баг. Наивно кажется, ровно тот же, что ALV-534. Если правда тот же, то не могу обещать, что исправим. Слишком странно воспроизводится и слишком очевидно обходится. Тем не менее, можете в существующий тикет выложить свой шаблон, который не работает. Вдруг именно он правда поможет понять причину и решить проблему.
avasyukov - в ответ на Не могу добавить исполнителя к существующему документу в реестре Alvex "Входящие" 10 лет назад »»»
У меня глупый вопрос - проблема еще актуальна? Просто категорически не воспроизводится. Если актуальна, можете сделать следующее:

1. Открыть tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties и дописать в конец:
# Debugging http://www.ossportal.ru/forum/alfresco/1003
log4j.logger.org.alfresco.repo.forms.processor.node.ContentModelFormProcessor=debug
log4j.logger.org.alfresco.repo.forms.processor.node.NodeFormProcessor=debug
После этого в логах будет много отладочной информации. Так что лучше потом убрать сразу эти строчки.

2. Рестартнуть Tomcat.

3. Открыть форму редактирования какого-нибудь документа. Обратить внимание на nodeRef в строке адреса. (Адрес будет типа http://alfresco:8080/share/page/site/test/edit-metadata?nodeRef=workspac..., интересен только параметр NodeRef.)

4. Внести ровно одно изменение - добавить исполнителя. Сохранить форму.

5. Сразу после этого снять лог tomcat/logs/catalina.out. Сразу - потому что с включенной отладкой он очень быстро замусоривается, и искать в нем лог ровно этой транзакции будет довольно мучительно. Ближе к концу лога будет блок строк на 20-30 вида
2014-06-12 13:37:04,289  DEBUG [processor.node.NodeFormProcessor] [http-apr-8080-exec-3] Processing field org.alfresco.repo.forms.FormData$FieldData@233656f1 <bla-bla-bla>
Блок начинается со строчки
 2014-06-12 13:37:04,287  DEBUG [processor.node.NodeFormProcessor] [http-apr-8080-exec-3] Persisting form for: <NodeRef> 
Где NodeRef - ровно тот, который в url-е страницы.

6. Выложить сюда (а) NodeRef, (б) описанный кусок лога (ну или приаттачить лог целиком).

Надеюсь, этого хватит, чтобы разобраться, откуда такое счастье возникает.

Aviriel - в ответ на Помогите реализовать напоминание о предстоящем событии 10 лет назад »»»
 Ну если все так масштабно, то по завершению мучений с Вас пост в блог сюда о том, как Вы это сделали ;)
ReStar - в ответ на Помогите реализовать напоминание о предстоящем событии 10 лет назад »»»
Вообще это является темой моего дипломного проекта внедрение Alfresco ,ну меня попросили реализовать что то подобное.
Спасибо за помощь.
Aviriel - в ответ на Помогите реализовать напоминание о предстоящем событии 10 лет назад »»»
 Вы хотите всем пользователям каждое утро рассылать то, у кого сегодня ДР? Как-то по-садистски звучит :)
Посмотрите в качестве примера на скрипт, рассылающий каждое утро напоминание о задачах: 
https://github.com/ITDSystems/alvex-courses-extras/tree/master/2014-02-2...
JS - непосредственно выборка задач и отправка писем их владельцам. XML - конфиг, когда выполнять скрипт. Единственная подлежащая изменению в нем строчка - №75, ну и может еще пара за ней.

Вам нужно найти правильное API для вытаскивания даты дня рождения из профиля нужных пользователей, преобразовать данные в читабельный вид и рассылать аналогичным скриптом.
wildfish - в ответ на Нумерация документа 10 лет назад »»»
 Спасибо! Сейчас попробуем...
ERiC - в ответ на Junk/нежелательная почта, миграция с Exchange. Вечно не прочитанные письма. 10 лет назад »»»
нашел решение.
надо сделать поиск, указать критерии:

основные фильтры : не прочитано
дополнительные фильтры: статус: в любой папке.

по итогу в поле поиска будет такое:
is:anywhere, is:unread