Релиз Alvex 2014.04 Community

30 апреля 2014 года вышла новая версия Alvex 2014.04 Community.

Что нового в Alvex 2014.04 для пользователей?

Теперь можно выбирать, какие поля карточки документа вы хотите видеть в таблице (реестре), а какие - только на странице документа. Каждый пользователь может настроить внешний вид таблицы под свои пожелания на странице реестра.

Добавлены 2 новых типа реестров: реестр приказов и реестр служебных записок. В некоторые старые реестры добавлены новые поля, например, ссылки на другие документы.

Некоторые возможности реестров теперь доступны для обычных списков данных Alfresco: экспорт в XLSX, поиск, комментирование элемента списка.

Что нового в Alvex 2014.04 для разработчиков?

В Alvex 2014.04 заменён стандартный Alfresco datagrid (таблица, используемая в реестрах, списке задач и на других страницах) на улучшенную имплементацию. Старая таблица вызывала много проблем и накладывала различные ограничения. Новая таблица со стороны пользователя выглядит так же, как и старая, но теперь ее можно настраивать. Например, теперь можно создавать свои обработчики ячеек в зависимости от типа хранимых данных.

Это подразумевает то, что теперь вы можете настраивать контролы для ячеек таблицы. Мы уже используем эту возможность для обработки полей с ассоциациями с документами реестров. Нажатие на ячейку таблицы открывает страницу "View Metadata" ("Карточка документа"), а не стандартную "Document Details", как это было раньше.

Как выглядит подключение своих обработчиков к ячейкам таблицы?

<form id="datagrid">
  <field-visibility>
    <show id="alvexdt:id" />
    <show id="alvexdt:relatedDocuments" />
  </field-visibility>
  <appearance>
    <field id="alvexdt:relatedDocuments">
      <control template="Alvex.DatagridRecordRenderer"/>
    </field>
  </appearance>
</form>

Разработчики обещали описать, что еще нового появилось в улучшенной таблице, и как с этим работать, в блоге в ближайшее время.

Еще одно обновление для разработчиков: расширение функционала менеджера прав на файлы в рамках бизнес-процессов (Alvex Permission Manager). Для чего же нужна эта часть Alvex?

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

Но иногда нужно дать пользователю еще и возможность обновить файл. Для этого в Alvex 2014.04 сделана возможность настройки менеджера прав. Теперь вы можете настроить нужные права на файл на уровне типа бизнес-процесса. Подробнее о том, как работать с этим функционалом, можно узнать в руководстве администратора Alvex.

Полный список изменений в версии 2014.04 можно посмотреть в примечаниях к выпуску.

В руководстве пользователя Alvex можно найти скриншоты и информацию об использовании последних возможностей системы.

140

Комментарии

 В бесплатной версии все так-же 1 бизнес процесс?
mex аватар
Расскажите пожалуйста по какому критерию выбираются свойства для настройки страницы реестра в новой версии 2014.04 CE?
Aviriel аватар
 Что вы имеете в виду? 
По кнопке "Настроить страницу" открывается окно выбора свойств, которые будут видны пользователю в таблице.
Стандартный набор свойств также, как и раньше, задается в конфиге Share. Каждый пользователь для себя может выбрать, что, например, он не хочет видеть в таблице дату регистрации документа, но хочет видеть имя исполнителя.
Если я говорю не о том, уточните, пожалуйста, что Вы имели в виду.
mex аватар
У меня свой тип реестра. И не все его свойства отображаются в настройке...
mex аватар
Мой тип реестра унаследован от родительского типа alvexdt:object
Делал все согласно вашего руководства о создании своего типа реестра.
Aviriel аватар
 А на всех других формах свойства отображаются? Странно.
Можете выложить сюда ту часть XML с моделью, в которой описаны эти свойства?
И если открыть средства разработчика в браузере до загрузки страницы, в ней появляются какие-нибудт ошибки при загрузке реестра или при нажатии на кнопку настройки?
mex аватар
Не все свойства отображаются. Не совсем понял где ошибки в браузере искать =) , у меня Firefox нажал F12 до загрузки "Настройка страницы" вроде ошибок не увидел.
При данной конфигурации в настройке страницы я вижу в стобцах только это:
- номер;
- дата регистрации;
- reqCounterType;
- locateCounter;
- clientInitial1;
- clientTel1;
- clientTel2;
- clientTel3;
- clientAddr;
- clientComment.

Остальное не вижу. Хотя до обновления все было видно.

Модель:

<?xml version="1.0" encoding="UTF-8"?>

<model
        name="mydocs:documents_model"
        xmlns="http://www.alfresco.org/model/dictionary/1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.alfresco.org/model/dictionary/1.0 modelSchema.xsd">

    <imports>
        <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
        <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
        <import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
        <import uri="http://www.alfresco.org/model/datalist/1.0" prefix="dl"/>
        <import uri="http://alvexcore.com/prefix/alvexdt" prefix="alvexdt"/>
    </imports>

    <namespaces>
        <namespace uri="http://mycompany.org/prefix/mydocs" prefix="mydocs"/>
    </namespaces>

    <constraints>
        <constraint name="mydocs:reqCounterType" type="LIST">
            <parameter name="allowedValues">
                <list>
                    <value>1</value>
                    <value>2</value>
                    <value>3</value>
                    <value>other</value>
                    <value>unknown</value>
                </list>
            </parameter>
        </constraint>
        <constraint name="mydocs:reqLocateCount" type="LIST">
            <parameter name="allowedValues">
                <list>
                    <value>indoor</value>
                    <value>outdoor</value>
                    <value>unknown</value>
                </list>
            </parameter>
        </constraint>
        <constraint name="mydocs:reqStatus" type="LIST">
            <parameter name="allowedValues">
                <list>
                    <value>passedVerification</value>
                    <value>failedVerification</value>
                    <value>notProcessed</value>
                    <value>denialOfService</value>
                </list>
            </parameter>
        </constraint>
    </constraints>

    <types>
        <type name="mydocs:document_request_vum">
            <title>Заявка на ПБС</title>
            <parent>alvexdt:object</parent>
            <associations>
                <association name="mydocs:contractManager">
                    <title>Contract Manager</title>
                    <source>
                        <mandatory>false</mandatory>
                        <many>true</many>
                    </source>
                    <target>
                        <class>cm:person</class>
                    </target>
                </association>
            </associations>
            <mandatory-aspects>
                <aspect>alvexdt:identified</aspect>
                <aspect>mydocs:clientInfo</aspect>
                <aspect>mydocs:execRequest</aspect>
            </mandatory-aspects>
        </type>               
    </types>

    <aspects>
        <aspect name="mydocs:clientInfo">
            <properties>
                <property name="mydocs:clientInitial">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="mydocs:clientTel1">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="mydocs:clientTel2">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="mydocs:clientTel3">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="mydocs:clientAddr">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="mydocs:clientComment">
                    <type>d:mltext</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>
        <aspect name="mydocs:execRequest">
            <properties>
                <property name="mydocs:counterType">
                    <type>d:text</type>
                    <default>unknown</default>
                    <constraints>
                        <constraint ref="mydocs:reqCounterType" />
                    </constraints>
                </property>
                <property name="mydocs:locateCounter">
                    <type>d:text</type>
                    <default>unknown</default>
                    <constraints>
                        <constraint ref="mydocs:reqLocateCount" />
                    </constraints>
                </property>
                <property name="mydocs:status">
                    <type>d:text</type>
                    <default>notProcessed</default>
                    <constraints>
                        <constraint ref="mydocs:reqStatus" />
                    </constraints>
                </property>
                <property name="mydocs:specialistLastname">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>both</tokenised>
                    </index>
                </property>
                <property name="mydocs:dateStart">
                    <type>d:date</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
                <property name="mydocs:dateComplete">
                    <type>d:date</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
                <property name="mydocs:dateGarant">
                    <type>d:date</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
            </properties>
        </aspect>
    </aspects>

</model>
---

Конфиг:

<alfresco-config>

    <config evaluator="model-type" condition="mydocs:document_request_vum">
        <forms>
            <form id="datagrid">
                <field-visibility>
                    <show id="alvexdt:id" />
                    <show id="mydocs:clientInitial" />
                    <show id="mydocs:clientTel1" />
                    <show id="mydocs:clientAddr" />
                    <show id="mydocs:counterType" />
                    <show id="mydocs:status" />
                    <show id="mydocs:specialistLastname" />
                    <show id="mydocs:dateStart" />
                    <show id="mydocs:dateComplete" />
                    <show id="mydocs:dateGarant" />
                    <show id="alvexdt:files" />
                </field-visibility>
            </form>
            <form>
                <field-visibility>
                    <show id="alvexdt:id" />
                    <show id="alvexdt:registerDate" />
                    <show id="mydocs:clientInitial" />
                    <show id="mydocs:clientAddr" />
                    <show id="mydocs:clientTel1" />
                    <show id="mydocs:clientTel2" />
                    <show id="mydocs:clientTel3" />
                    <show id="mydocs:counterType" />
                    <show id="mydocs:locateCounter" />
                    <show id="mydocs:clientComment" />
                </field-visibility>
                <create-form template="/alvex-form.ftl" />
                <appearance>
                    <set id="id" appearance="" label="" template="/org/alfresco/components/form/2-column-set.ftl"/>
                    <set id="consumer" appearance="" label="" template="/alvex-2-column-set-wide-right.ftl"/>
                    <set id="consumer_tel" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
                    <set id="counter" appearance="" label="" template="/org/alfresco/components/form/2-column-set.ftl"/>
                    <set id="comment" appearance="" label="" />
                    <set id="files" appearance="" label=""/>
                    <set id="related" appearance="" label="" template="/org/alfresco/components/form/2-column-set.ftl"/>
                    <field set="id" id="alvexdt:id">
                        <control template="/alvex-auto-numberer.ftl"/>
                    </field>
                    <field set="id" id="alvexdt:registerDate">
                        <control template="/alvex-autodate.ftl"/>
                    </field>
                    <field set="consumer" id="mydocs:clientInitial">
                        <control template="/org/alfresco/components/form/controls/textfield.ftl">
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                    <field set="consumer" id="mydocs:clientAddr">
                        <control template="/org/alfresco/components/form/controls/textfield.ftl">
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                    <field set="consumer_tel" id="mydocs:clientTel1" />
                    <field set="consumer_tel" id="mydocs:clientTel2" />
                    <field set="consumer_tel" id="mydocs:clientTel3" />
                    <field set="counter" id="mydocs:counterType" />
                    <field set="counter" id="mydocs:locateCounter" />
                    <field set="comment" id="mydocs:clientComment">
                        <control template="/alvex-mltext.ftl">
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                </appearance>
            </form>
        </forms>
    </config>

    <config evaluator="node-type" condition="mydocs:document_request_vum">
        <forms>
            <form>
                <field-visibility>
                    <show id="alvexdt:id" />
                    <show id="alvexdt:registerDate" />
                    <show id="mydocs:clientInitial" />
                    <show id="mydocs:clientAddr" />
                    <show id="mydocs:clientTel1" />
                    <show id="mydocs:clientTel2" />
                    <show id="mydocs:clientTel3" />
                    <show id="mydocs:clientComment" />
                    <show id="mydocs:counterType" />
                    <show id="mydocs:locateCounter" />
                    <show id="mydocs:status" />
                    <show id="mydocs:specialistLastname" />
                    <show id="mydocs:dateStart" />
                    <show id="mydocs:dateComplete" />
                    <show id="mydocs:dateGarant" />
                    <show id="alvexdt:location" />
                    <show id="alvexdt:files" />
                </field-visibility>
                <view-form template="/alvex-form.ftl" />
                <edit-form template="/alvex-form.ftl" />
                <appearance>
                    <set id="id" appearance="" label="" template="/org/alfresco/components/form/2-column-set.ftl"/>
                    <set id="consumer" appearance="" label="" template="/alvex-2-column-set-wide-right.ftl"/>
                    <set id="consumer_tel" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
                    <set id="comment" appearance="" label="" />
                    <set id="counter" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
                    <set id="result" appearance="" label="" template="/org/alfresco/components/form/2-column-set.ftl"/>
                    <set id="date" appearance="" label="" template="/org/alfresco/components/form/3-column-set.ftl"/>
                    <set id="files" appearance="" label=""/>
                    <set id="related" appearance="" label="" template="/org/alfresco/components/form/2-column-set.ftl"/>
                    <field set="id" id="alvexdt:id">
                        <control template="/alvex-auto-numberer.ftl"/>
                    </field>
                    <field set="id" id="alvexdt:registerDate"/>
                    <field set="consumer" id="mydocs:clientInitial">
                        <control template="/org/alfresco/components/form/controls/textfield.ftl">
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                    <field set="consumer" id="mydocs:clientAddr">
                        <control template="/org/alfresco/components/form/controls/textfield.ftl">
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                    <field set="consumer_tel" id="mydocs:clientTel1" />
                    <field set="consumer_tel" id="mydocs:clientTel2" />
                    <field set="consumer_tel" id="mydocs:clientTel3" />
                    <field set="comment" id="mydocs:clientComment">
                        <control template="/alvex-mltext.ftl">
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                    <field set="counter" id="mydocs:counterType" />
                    <field set="counter" id="mydocs:locateCounter" />
                    <field set="counter" id="mydocs:status" />
                    <field set="result" id="mydocs:specialistLastname" />
                    <field set="date" id="mydocs:dateStart" />
                    <field set="date" id="mydocs:dateComplete" />
                    <field set="date" id="mydocs:dateGarant" />
                    <field set="files" id="alvexdt:files">
                        <control template="/alvex-uploader.ftl">
                            <control-param name="uploadDirectory">uploads</control-param>
                            <control-param name="createUploadDirectory">true</control-param>
                            <control-param name="viewType">mini</control-param>
                        </control>
                    </field>
                    <field set="related" id="alvexdt:relatedDocuments"/>
                    <field set="related" id="alvexdt:location">
                        <control>
                            <control-param name="style">width: 98%</control-param>
                        </control>
                    </field>
                </appearance>
            </form>
        </forms>
    </config>

</alfresco-config>

mex аватар
Причина и возможное решение найдено: issues.itdhq.com/browse/ALV-752
Спасибо!
mex аватар
Почему-то на сайтах с реестрами в типе Входящие неправильно отображается колонка дата регистрации. Вместо фактической вижу текущую. Странно... =) Все документы теперь зарегистрированы одной датой, хотя по факту они были зарегистрированы ранее.
mex аватар
Решил откатить систему обратно на 2014.01СЕ - снес jar файлы alvex и вернул обратно прежние. Данные в реестрах пустые. Что делать? Бэкап вернуть не получилось - забыл зарезервировать БД. Можно как-то восстановить или вытянуть данные из реестров?
mex аватар
В репозитории, в папке с реестром есть файлы, свойства которых и есть записи в реестре которые мне нужны как воздух. Как мне выдернуть их из Javascript console в XLS?
mex аватар
Может кто подскажет что сделал не так в своем типе реестра, почему видны не все свойства в "Настройке страницы"?
И дата регистрации постоянно меняется на текущую дату... =)