Skip to end of metadata
Go to start of metadata
Постановка задачи
Добавить поиск для нового модуля.
Инструмент
Палитра XML, Плагин, Настройка системы
Реализация
Редактирование конфигурации поиска
Определение параметров поиска, которые в дальнейшем будут отображены в поисковой форме
<!--Дата-->
<bean id="exampleDate" class="ru.intertrust.cmj.af.search.dp.CmParameter"
c:id="testDate" c:name="Дата:"
c:messageSource-ref="cmj_af_search_messageSource" c:type-ref="tdateinterval"/>
<!--Сотрудник-->
<bean id="exampleVCard" class="ru.intertrust.cmj.af.search.dp.CmParameter"
c:id="testVCard" c:name="Сотрудник:"
c:messageSource-ref="cmj_af_search_messageSource" c:type-ref="tvcard">
<constructor-arg name="classifier">
<list value-type="ru.intertrust.cmj.af.search.Classifier">
<ref bean="fvCurrHumanHH"/>
<ref bean="clCurSysEmps"/>
<ref bean="clNosys"/>
</list>
</constructor-arg>
</bean>
Подключение параметров поиска к форме
<bean id="rkkSuperBundle<Module>" abstract="true" class="ru.intertrust.cmj.af.search.dp.CmBundle">
<constructor-arg index="0" value="rkk"/>
<constructor-arg index="1"
value="<Object>"/>
<constructor-arg index="2">
<list>
<ref bean="exampleDate"/>
<ref bean="exampleVCard"/>
</list>
</constructor-arg>
<constructor-arg index="3" ref="cmj_af_search_messageSource"/>
</bean>
Настройки поиска
<bean id="attorneySearcher" class="ru.intertrust.cm_sochi.srv.connector.sochi.search.SochiSolrSearcher">
<constructor-arg name="cmAppSystemId" value="<Module>"/>
<constructor-arg name="isNamed" value="true"/>
<constructor-arg name="searchArea" value="<Module>_area"/>
<constructor-arg name="targetCollectionName" value="(search)"/>
<constructor-arg>
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.search.<Basic Module>SearchFilterCreator"/>
</constructor-arg>
<constructor-arg>
<bean class="ru.intertrust.cmj.af.search.dp.docinfo.CustomModuleInfoExtractor" c:messageSource-ref="cmj_af_search_messageSource" c:ident="<Module>"/>
</constructor-arg>
</bean>
<bean id="rootScopeBuilder" class="ru.intertrust.cmj.af.search.ScopeTreeBuilder">
<property name="childs">
<list>
<bean class="ru.intertrust.cmj.af.search.dp.CmDocTypesScopeBuilder">
<constructor-arg index="0" value="<module>"/>
<constructor-arg index="1" value="<Module>"/>
<constructor-arg index="2">
<list>
<ref bean="subject"/>
</list>
</constructor-arg>
<constructor-arg index="3">
<set>
<ref bean="rkkSuperBundle<Module>"/>
</set>
</constructor-arg>
<constructor-arg index="4">
<list>
<ref bean="<module>Searcher"/>
</list>
</constructor-arg>
<constructor-arg index="5">
<ref bean="cmSearchScopeCompositExBuilder"/>
</constructor-arg>
</bean>
</list>
</property>
</bean>
Создание области поиска
<search-area name="<Module>_area">
<target-domain-object type="F_DP_OutputRkk">
<linked-domain-object type="Tn_Field_Datetime" nested="true">
<indexed-field name="tDate" solr-prefix="cm_dt">
<script>if (ctx.get('cmjfield').equals('DateControl')){ ctx.get('value'); }</script>
</indexed-field>
</linked-domain-object>
<linked-domain-object type="F_DP_Rkk_SigningInfo">
<indexed-field name="tVCard" search-by="substring" language="">
<doel>signer.orig_shortname</doel>
</indexed-field>
<parent-link>
<doel>Owner</doel>
</parent-link>
</linked-domain-object>
</target-domain-object>
</search-area>
Настройка соответствия параметров поиска и области поиска
<bean id="dominoRequestConfigAttorney" class="ru.intertrust.cmj.af.search.dp.request.DominoRequestConfig">
<!-- Отображение ID параметров запроса на поля notes документа -->
<property name="nsFieldsByParamByBundleID">
<map merge="true">
<entry key="rkk#testDate" value="tDate"/>
<entry key="rkk#testVCard" value="tVCard"/>
</map>
</property>
<!-- Отображение ID бандла на имя формы notes документа -->
<property name="formsByBundleID">
<map merge="true">
<entry key="rkk" value="<Basic Object>"/>
</map>
</property>
</bean>
Подключение к бину коллекции
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" default-lazy-init="true">
<bean id="Attorney_(projects_by_registration_place)Metadata"
class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew" p:caseSensitiveFieldNames="true" p:searchArea="<Module>_area">
<constructor-arg>
<list value-type="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field">
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="self">
<property name="virtualField">
<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField">
<property name="realFields">
<list>
<value>self_1</value>
<value>Module</value>
<value>self_2</value>
<value>ID</value>
<value>created_date</value>
<value>self_3</value>
</list>
</property>
<property name="pattern" value="<id>([0-9]{16}):([0-9A-F]{32})</>" />
<property name="separator" value=""/>
<property name="emptySeparator" value="true"/>
</bean>
</property>
</bean>
</list>
</constructor-arg>
</bean>
</beans>