Статус

Автор
КомментарийИнформация по настройкам параметра поиска находится здесь Описание конфигурации поиска

На этой странице:



Постановка задачи

Добавить вывод результатов поиска для нового модуля

Инструмент

Палитра XML, Плагин, Настройка системы

Реализация

Последовательность действий по отображению поиска:

  1. Редактирование конфигурации поиска applicationContext-config-search<Project>.xml
  2. Создание представления типа объекта
  3. Загрузить конфигурацию поиска и перезагрузить сервер
  4. Загрузить Палитру XML

Легенда: 

  • <Project> - название проекта
  • <Module> - название модуля
  • <Cell-View> - название представление типа объекта
  • <Column> - название колонки
  • <Field> - название поля

Редактирование конфигурации поиска

<!-- Конфигурация отображения результатов поиска (<Module>) -->
    <bean id="moduleExtractorConfig<Module>" parent="moduleExtractorConfigSuper">
        <!-- Настройка соответствий «id бандла – представление типа объекта» -->
        <property name="rootTypesByBundleID">
            <map merge="true">
                <entry key="rkk" value="<Cell-View>" />
                <entry key="mainDoc" value="<Cell-View>" />
            </map>
        </property>
        <!-- Настройка соответствий «Форма – id бандла» -->
        <property name="bundleIDsByForm">
            <map merge="true">
                <entry key="<Module>" value="rkk" />
            </map>
        </property>
		<!--Настройка соответствий «колонки- системного поля»-->
        <property name="nsFieldsByClTypeByBundleID">
            <map merge="true">
                <entry key="rkk#<Column>" value="<Field>" />
                <entry key="mainDoc#<Column>" value="<Field>" />
            </map>
        </property>
		<!--Настройка соответствий «колонки - кастомного поля»-->
        <property name="formulasByClTypeByBundleID">
            <map merge="true">
                <entry key="rkk#<Column>" value="doc.getItemValueString('<Field>')" />
                <entry key="mainDoc#<Column>" value="doc.getItemValueInteger('<Field>') == 0 ? doc.getItemValueString('<Field 1>'):doc.getItemValueString('<Field 2>')"/>
            </map>
        </property>
    </bean>
    <!--Список параметров, которые используются при создании бинов SortingParams:
    -columnName - имя колонки, при клике на которую будет происходить сортировка
    -sortingFieldName - имя поля в Notes, по значению которого будет идти сортировка nodes из ресурса.
                       Если sortingFieldName = null, то сортировка  будет идти по значению поля columnName в ресурсе.
    -sortingFieldType - тип значения в сравниваемом поле
                       Если sortingFieldType = Integer, то при сортировке значения сравниваются как числа, иначе - как строки.
                       Предполагается, что тип DateTime не нужен, т.к. маловероятно, что при клике на колонку, в которой отображается
                       дата/время, будет идти сортировка по какому-то значению, отличному непосредственно от дата/время, а в JSON дата/время
                       всегда будут в формате yyyy-mm-ddThh:mm:ssZ (такие значения можно сортировать, сравнивая как строки).
    -default - указывает будет ли совершена эта сортировка по умолчанию
               (может быть только одна сортировка по умолчанию для бандла, для добавления другой необходимо разнести по бандлам сортировки)
    -defaultSortingDirection - Указывает направление сортировки по умолчанию (descendant/ascendant)
    -bundleId - указывает id бандла для которого применяется сортировка, для каждого бандла надо делать свою, так как поля у объектов и имена колонок могут отличаться
                id бандлов: rkk-search-result, mainDoc-search-result и др. По умолчанию rkk-search-result
    -sortingDirections - выбранное направление сортировки (по убыванию/по возрастанию) - принимает <set>  -->
     <bean id="sortingParamsMainDocDate"
          class="ru.intertrust.cmj.af.search.dp.docinfo.SortingParams">
        <property name="columnName" value="<Column>" />
        <property name="sortingFieldName" value="<Field>" />
        <property name="sortingFieldType" value="String" />
        <property name="default" value="true" />
        <property name="defaultSortingDirection" value="descendant" />
        <property name="bundleId" value="<Cell-View>" />
        <property name="sortingDirections">
            <set>
                <value>descendant</value>
                <value>ascendant</value>
            </set>
        </property>
    </bean>


Создание представление типа объекта

<!-- Колонка -->
<column name="<Column>" subject="${column.Name:Название колонки}" extends="string"/>

<!--Представление типа объекта -->
<cell-view name="<Cell-View>">
   <column-ref ref="<Column>"/>
</cell-view>