Постановка задачи
Добавить поиск для нового модуля.
Инструмент
Палитра XML, Плагин, Настройка системы
Реализация
Примечание | ||
---|---|---|
| ||
Дорожная карта:
Легенда:
|
Редактирование конфигурации поиска
Определение параметров поиска, которые в дальнейшем будут отображены в поисковой форме
Блок кода | ||||
---|---|---|---|---|
| ||||
<!--Дата--> <bean id="attorneyConfidantexampleDate" class="ru.intertrust.cmj.af.search.dp.CmParameter" c:id="confidanttestDate" c:name="Доверенное лицоДата:" c:messageSource-ref="cmj_af_search_messageSource" c:type-ref="tvcardtdateinterval"/> <constructor-arg name="classifier"> <list value-type <!--Сотрудник--> <bean id="exampleVCard" class="ru.intertrust.cmj.af.search.Classifierdp.CmParameter"> <ref bean="fvCurrHumanHH"/> c:id="testVCard" c:name="Сотрудник:" c:messageSource-ref="cmj_af_search_messageSource" c:type-ref="tvcard"> <ref<constructor-arg beanname="clCurSysEmpsclassifier"/> <list value-type="ru.intertrust.cmj.af.search.Classifier"> <ref bean="clNosysfvCurrHumanHH"/> </list> <ref bean="clCurSysEmps"/> </constructor-arg> </bean> | ||||
Блок кода | ||||
| ||||
<bean id="dominoRequestConfigAttorney" class="ru.intertrust.cmj.af.search.dp.request.DominoRequestConfig" <ref bean="clNosys"/> <!-- Отображение ID параметров запроса на</list> поля notes документа --> </constructor-arg> <property name="nsFieldsByParamByBundleID"> </bean> |
Подсказка |
---|
Информация по настройкам параметра поиска находится здесь Описание конфигурации поиска |
Подключение параметров поиска к форме
Блок кода | ||||
---|---|---|---|---|
| ||||
<bean id="rkkSuperBundle<Module>" abstract="true" class="ru.intertrust.cmj.af.search.dp.CmBundle"> <map merge<constructor-arg index="0" value="truerkk"/> <constructor-arg index="1" <entry key="rkk#reqType" value="ReqType"/> <entry keyvalue="rkk#subject" value="Subject"<Object>"/> <constructor-arg index="2"> <entry key="rkk#regFullNumber" value="RNumber_Full"/> <list> <entry<ref keybean="rkk#dateAttorney" value="dateAttorneyexampleDate"/> <entry<ref keybean="rkk#Srok" value="Srok"exampleVCard"/> <entry key="rkk#confidant" value="confidant"/></list> </constructor-arg> <entry<constructor-arg keyindex="rkk#authorizedPerson3" valueref="Superiorcmj_af_search_messageSource"/> </bean> |
Предупреждение |
---|
ScopeTreeBuilder - определение |
Настройки поиска
Блок кода | ||||
---|---|---|---|---|
| ||||
<bean id="attorneySearcher" class="ru.intertrust.cm_sochi.srv.connector.sochi.search.SochiSolrSearcher"> <entry<constructor-arg keyname="rkk#executorcmAppSystemId" value="From<Module>"/> <entry key="rkk#ReasonDeliv<constructor-arg name="isNamed" value="ReasonDelivtrue"/> <entry key="rkk#ReasonCanc<constructor-arg name="searchArea" value="ReasonCanc<Module>_area"/> <entry key="rkk#ReestrNum<constructor-arg name="targetCollectionName" value="ReestrNum(search)"/> </map><constructor-arg> </property> <property name="formulasByParamByBundleID"<bean class="ru.intertrust.cm_sochi.srv.connector.sochi.search.<Basic Module>SearchFilterCreator"/> </constructor-arg> <map> <constructor-arg> <entry<bean keyclass="rkk#searchInContent" ru.intertrust.cmj.af.search.dp.docinfo.CustomModuleInfoExtractor" c:messageSource-ref="cmj_af_search_messageSource" c:ident="<Module>"/> </constructor-arg> </bean> |
Блок кода | ||||
---|---|---|---|---|
| ||||
<bean valueid="[Body]="%par%" OR [Appendix]="%par%" OR [$File]="%par%""/rootScopeBuilder" class="ru.intertrust.cmj.af.search.ScopeTreeBuilder"> <property name="childs"> </map><list> <bean class="ru.intertrust.cmj.af.search.dp.CmDocTypesScopeBuilder"> </property> <!-- Отображение ID бандла на имя формы notes документа --<constructor-arg index="0" value="<module>"/> <property name="formsByBundleID"> <map merge<constructor-arg index="1" value="true<Module>"/> <entry key="rkk" value="Output"/> <constructor-arg index="2"> </map> </property> </bean> | ||||
Блок кода | ||||
| ||||
<list> <bean id="rootScopeBuilder" class="ru.intertrust.cmj.af.search.ScopeTreeBuilder"> <property name="childs"> <list> <bean class="ru.intertrust.cmj.af.search.dp.CmDocTypesScopeBuilder"<ref bean="subject"/> <constructor-arg index="0" value="attorney"/> </list> <constructor-arg index="1" value="Attorney"/></constructor-arg> <constructor-arg index="23"> <list><set> <ref bean="subjectrkkSuperBundle<Module>"/> </list>set> </constructor-arg> <constructor-arg index="34"> <set><list> <ref bean="AdvancedAttorneyBundle<module>Searcher"/> </list> <ref bean="mainDocBundleForCustom"/> </set> </constructor-arg> <constructor-arg index="45"> <list><ref bean="cmSearchScopeCompositExBuilder"/> </constructor-arg> <ref bean="attorneySearcher"/> </bean> </list> </constructor-arg> </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" <constructorsolr-arg indexprefix="5"> cm_dt"> <script>if (ctx.get('cmjfield').equals('DateControl')){ ctx.get('value'); }</script> <ref bean="cmSearchScopeCompositExBuilder"/> </indexed-field> </linked-domain-object> </constructor-arg><linked-domain-object type="F_DP_Rkk_SigningInfo"> </bean> </list> </property> </bean> | ||||
Блок кода | ||||
| ||||
<bean id="attorneySearcher" class="ru.intertrust.cm_sochi.srv.connector.sochi.search.SochiSolrSearcher"> <indexed-field name="tVCard" search-by="substring" language=""> <doel>signer.orig_shortname</doel> <constructor-arg name="cmAppSystemId" value="Attorney"/> </indexed-field> <constructor-arg name="isNamed" value="true"/> <parent-link> <constructor-arg name="searchArea" value="Attorney"/> <doel>Owner</doel> <constructor-arg name="targetCollectionName" value="(search)"/> </parent-link> <constructor-arg> <bean</linked-domain-object> </target-domain-object> </search-area> |
Настройка соответствия параметров поиска и области поиска
Блок кода | ||||
---|---|---|---|---|
| ||||
<bean id="dominoRequestConfigAttorney" class="ru.intertrust.cm_sochicmj.srvaf.connectorsearch.sochidp.searchrequest.OutputDocsSearchFilterCreatorDominoRequestConfig"/> </constructor-arg> !-- Отображение ID параметров запроса на поля notes документа --> <constructor-arg><property name="nsFieldsByParamByBundleID"> <bean<map classmerge="ru.intertrust.cmj.af.search.dp.docinfo.CustomModuleInfoExtractor" c:messageSource-ref="cmj_af_search_messageSource" c:ident="Attorney"/> true"> </constructor-arg> </bean> | ||||
Блок кода | ||||
| ||||
<search-area name="Attorney"> <target-domain-object type="F_DP_OutputRkk"> <entry key="rkk#testDate" value="tDate"/> <linked-domain-object type="F_DP_Rkk_SigningInfo"<entry key="rkk#testVCard" value="tVCard"/> </map> <indexed-field name="Superior" search-by="substring" language=""> </property> <!-- Отображение ID бандла на имя формы notes <doel>signer.orig_shortname</doel>документа --> <property name="formsByBundleID"> </indexed-field> <map merge="true"> <parent-link> <entry key="rkk" <doel>Owner</doel>value="<Basic Object>"/> </parent-link>map> </linked-domain-object>property> </target-domain-object> </search-area>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="Attorney<Module>_uicollarea"> <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> </property> <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="regPlace" p:sortOrder="ASCENDING" p:categorized="true" p:sortPriority="0" </>bean> </list> </constructor-arg> </bean> </beans> |