Список обязательных колонок, если по записи нужно потом получить объект (документ, заявку, справочник и т.д.): id, created_date, updated_date, Module, self_1, self_2, self_3. |
Получение данных:
Настраиваемые поля хранятся в таблицах tn_field и tn_field_<тип данных> (string, date, datetime, decimal и т.д.)
select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'status') as statusWPRequest |
Поля из комплексного справочника хранятся в таблицах classifier_compleх, clscom_tag, cls_typeComp
SELECT title FROM classifier_complex WHERE classifier_complex.id = ( SELECT complex1.id FROM clscom_tag tag1 left join clscom_to_tag to_tag1 on to_tag1.tag = tag1.id left join classifier_complex complex1 on complex1.id = to_tag1.classifier left join cls_typeComp typecom1 on typecom1.id = complex1.owner WHERE ( tag1.schema = 'ComplectClassifierOffice' and typecom1.alias = 'valueCountry' and tag1.id = tag.id )) ) as OfficeCountry |
Кастомная коллекция представляет собой набор 2-х файлов:
<collection name="WorkplaceRequests_(vw_cmj_all)" idField="id" replace="runtime"> <prototype> <![CDATA[ SELECT id, created_date, updated_date, Module, self_1, self_2, self_3, typeRequest, statusWPRequest, stage, regNumber, rNumber, numberWOTags, wpInitiator, term, finishtime, wpEmployee, wpEmpDepartment, wpEmpHierDepatment, wpEmpGoingToWork, wpMovingDate, wpInitBranch, wpOffice, wpTypeOffice, wpInitOrganization, wpInitiatorDepartment, wpLocality, wpCountry, wpArea, wpFloor, wpRoomNumber, wpCode FROM ( select rkkbase.id, rkkbase.created_date, rkkbase.updated_date, rkkbase.module AS Module, '<id>' AS self_1, ':' AS self_2, '</>' AS self_3, rkkbase."type" AS typeRequest, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'status') as statusWPRequest, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'stage') as stage, '<regNumberPrefix>' || coalesce(rkk.prjnumprist, '') || '</>' || '<regNumberCounter#Number>' || coalesce(cast(rkk.prjnumcounter as varchar), '') || '</>' || '<regNumberSuffix>' || coalesce(rkk.prjnumfin , '') || '</>' as regNumber, rkk.prjnumcounter as rNumber, coalesce(rkk.prjnumprist, '') || coalesce(cast(rkk.prjnumcounter as VARCHAR), '') || coalesce(rkk.prjnumfin, '') as numberWOTags, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpInitiator') as wpInitiator, (select tfs."value" as v from tn_field join tn_field_datetime tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'plannedfinishtime') as term, (select tfs."value" as v from tn_field join tn_field_datetime tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'finishtime') as finishtime, (select tfs."value" as v from tn_field join tn_field_beard tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'assignee') as assignee, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpEmployee') as wpEmployee, (select date(tfs."value") as v from tn_field join tn_field_dateonly tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpEmpGoingToWork') as wpEmpGoingToWork, (select date(tfs."value") as v from tn_field join tn_field_dateonly tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpMovingDate') as wpMovingDate, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpEmpDepartment') as wpEmpDepartment, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpEmpHierDepatment') as wpEmpHierDepatment, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpInitBranch') as wpInitBranch, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpOffice') as wpOffice, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpTypeOffice') as wpTypeOffice, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpInitOrganization') as wpInitOrganization, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpInitDepartment') as wpInitiatorDepartment, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpLocality') as wpLocality, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpCountry') as wpCountry, (select coalesce('<id>' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'%(.*)') || ':' || substring(substring(substring(substring(tfs."value", '%(.*)'), '%(.*)'), '%(.*)'),'(.*)%') || '</><shortName>' || substr(tfs."value", 1, strpos(tfs."value", '%') - 1) || '</>', '<id></><shortName></>') as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpArea') as wpArea, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpFloor') as wpFloor, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpRoomNumber') as wpRoomNumber, (select tfs."value" as v from tn_field join tn_field_string tfs on tn_field.access_object_id = tfs.id where tn_field."owner" = rkkbase.id and tn_field.owner_type = rkkbase.id_type and tn_field.cmjfield = 'wpRMCode') as wpCode FROM F_DP_Intrkk internalrkk JOIN f_dp_rkk rkk ON rkk.id = internalrkk.id JOIN f_dp_rkkbase rkkbase ON rkkbase.id = rkk.id JOIN F_DP_Intrkk_Executor executor ON executor.owner = internalrkk.id JOIN so_beard beard ON beard.id = executor.executor WHERE rkkbase.isdeleted <> 1 AND rkk.regnumcnt IS NULL ) s WHERE stage NOT IN ('Перемещена в архив') AND 1 = 1 ::where-clause ]]> </prototype> <counting-prototype> <![CDATA[ SELECT COUNT(1) FROM ( SELECT rkkbase.id FROM F_DP_Intrkk internalrkk JOIN f_dp_rkk rkk ON rkk.id = internalrkk.id JOIN f_dp_rkkbase rkkbase ON rkkbase.id = rkk.id JOIN F_DP_Intrkk_Executor executor ON executor.owner = internalrkk.id JOIN so_beard beard ON beard.id = executor.executor WHERE rkkbase.isdeleted <> 1 AND rkk.regnumcnt IS NULL ) s WHERE stage NOT IN ('Перемещена в архив') AND 1 = 1 ::where-clause ]]> </counting-prototype> <filter name="MODULE"> <criteria placeholder="where-clause"> <![CDATA[ Module = {0} ]]> </criteria> </filter> <filter name="self"> <criteria placeholder="where-clause"><![CDATA[ Module = {0} and id = {1} ]]></criteria> </filter> <filter name="created_date"> <criteria placeholder="where-clause"> <![CDATA[ cast(created_date as date) = cast({0} as date) ]]> </criteria> </filter> <filter name="rNumber"> <criteria placeholder="where-clause"><![CDATA[ rNumber = {0} ]]></criteria> </filter> <filter name="rNumber_partial"> <criteria placeholder="where-clause"><![CDATA[ rNumber iLIKE ('%'||{0}||'%') ]]></criteria> </filter> <filter name="rNumber_L"> <criteria placeholder="where-clause"><![CDATA[ rNumber < {0} ]]></criteria> </filter> <filter name="rNumber_GE"> <criteria placeholder="where-clause"><![CDATA[ rNumber >= {0} ]]></criteria> </filter> <filter name="rNumber_Partial"> <criteria placeholder="where-clause"><![CDATA[ rNumber LIKE {0} ]]></criteria> </filter> <filter name="regNumber"> <criteria placeholder="where-clause"><![CDATA[ regNumber = {0} ]]></criteria> </filter> <filter name="regNumber_partial"> <criteria placeholder="where-clause"><![CDATA[ numberWOTags iLIKE ('%'||{0}||'%') ]]></criteria> </filter> <filter name="typeRequest"> <criteria placeholder="where-clause"> <![CDATA[ typeRequest = {0} ]]> </criteria> </filter> <filter name="typeRequest_partial"> <criteria placeholder="where-clause"> <![CDATA[ typeRequest ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpInitiator"> <criteria placeholder="where-clause"> <![CDATA[ wpInitiator = {0} ]]> </criteria> </filter> <filter name="wpInitiator_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpInitiator ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="stage"> <criteria placeholder="where-clause"> <![CDATA[ stage = {0} ]]> </criteria> </filter> <filter name="stage_partial"> <criteria placeholder="where-clause"> <![CDATA[ stage ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="statusWPRequest"> <criteria placeholder="where-clause"> <![CDATA[ wpStatus = {0} ]]> </criteria> </filter> <filter name="statusWPRequest_partial"> <criteria placeholder="where-clause"> <![CDATA[ statusWPRequest ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="term_partial"> <criteria placeholder="where-clause"> <![CDATA[ cast(term as date) = cast({0} as date) ]]> </criteria> </filter> <filter name="finishtime_partial"> <criteria placeholder="where-clause"> <![CDATA[ cast(finishtime as date) = cast({0} as date) ]]> </criteria> </filter> <filter name="wpEmpGoingToWork_partial"> <criteria placeholder="where-clause"> <![CDATA[ cast(wpEmpGoingToWork as date) = cast({0} as date) ]]> </criteria> </filter> <filter name="wpMovingDate"> <criteria placeholder="where-clause"> <![CDATA[ (wpMovingDate >= ({0})::timestamp and wpMovingDate < (({0})::timestamp + interval '1 day')) ]]> </criteria> </filter> <filter name="assignee"> <criteria placeholder="where-clause"> <![CDATA[ assignee = {0} ]]> </criteria> </filter> <filter name="assignee_partial"> <criteria placeholder="where-clause"> <![CDATA[ assignee ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpEmployee"> <criteria placeholder="where-clause"> <![CDATA[ wpEmployee = {0} ]]> </criteria> </filter> <filter name="wpEmployee_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpEmployee ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpEmpDepartment"> <criteria placeholder="where-clause"> <![CDATA[ wpEmpDepartment = {0} ]]> </criteria> </filter> <filter name="wpEmpDepartment_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpEmpDepartment ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpInitBranch"> <criteria placeholder="where-clause"> <![CDATA[ wpInitBranch = {0} ]]> </criteria> </filter> <filter name="wpInitBranch_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpInitBranch ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpInitiatorDepartment"> <criteria placeholder="where-clause"> <![CDATA[ wpInitiatorDepartment = {0} ]]> </criteria> </filter> <filter name="wpInitiatorDepartment_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpInitiatorDepartment ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpLocality"> <criteria placeholder="where-clause"> <![CDATA[ wpLocality = {0} ]]> </criteria> </filter> <filter name="wpLocality_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpLocality ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpCountry"> <criteria placeholder="where-clause"> <![CDATA[ wpCountry = {0} ]]> </criteria> </filter> <filter name="wpCountry_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpCountry ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpArea"> <criteria placeholder="where-clause"> <![CDATA[ wpArea = {0} ]]> </criteria> </filter> <filter name="wpArea_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpArea ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="wpFloor"> <criteria placeholder="where-clause"> <![CDATA[ wpFloor = {0} ]]> </criteria> </filter> <filter name="wpRoomNumber"> <criteria placeholder="where-clause"> <![CDATA[ wpRoomNumber = {0} ]]> </criteria> </filter> <filter name="wpCode"> <criteria placeholder="where-clause"> <![CDATA[ wpCode = {0} ]]> </criteria> </filter> <filter name="wpEmpHierDepatment"> <criteria placeholder="where-clause"> <![CDATA[ wpEmpHierDepatment = {0} ]]> </criteria> </filter> <filter name="wpEmpHierDepatment_partial"> <criteria placeholder="where-clause"> <![CDATA[ wpEmpHierDepatment ilike '%'||{0}||'%' ]]> </criteria> </filter> <filter name="BeforeDate"> <criteria placeholder="where-clause"> <![CDATA[ updated_date < {0} ]]> </criteria> </filter> </collection> |
<?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="WorkplaceRequests_(vw_cmj_all)Metadata" class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew" p:caseSensitiveFieldNames="true"> <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> |
Названия корневого bean должно строиться из названия collection и префикса Metadata. Пример: WorkplaceRequests_(vw_cmj_all)Metadata |
Описывает тип колонки и её название
Идентификатор колонки должен совпадать с названием колонки, возвращаемой в SQL-запросе кастомной коллекции.
<?xml version='1.0' encoding='UTF-8'?> <catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui"> <column name="finishtime" subject="${catalog.column.finishtime.subject:Дата исполнения}" extends="datetime"> <meta> <documentation>Фактический срок исполнения</documentation> </meta> </column> <column name="NumberWPRequest" subject="${catalog.column.NumberWPRequest.subject:Номер}" extends="string"> <meta> <documentation>Номер</documentation> </meta> </column> <column name="NumberWPRequestOneline" subject="${catalog.column.NumberWPRequestOneline.subject:Номер заявки}" extends="string"> <meta> <documentation>Номер заявки</documentation> </meta> </column> <column name="statusWPRequest" subject="${catalog.column.statusWPRequest.subject:Статус документа}" extends="string"> <meta> <documentation>Статус</documentation> </meta> </column> <column name="term" subject="${catalog.column.term.subject:Срок исполнения по регламенту}" extends="datetime"> <meta> <documentation>Срок исполнения по регламенту</documentation> </meta> </column> <complex-column name="wpEmpDepartment" subject="${catalog.column.wpEmpDepartment.subject:СП Работника по заявке}" extends="vcard"> <meta> <documentation>СП Работника по заявке</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <complex-column name="wpEmployee" subject="${catalog.column.wpEmployee.subject:Работник по заявке}" extends="vcard"> <meta> <documentation>Работник по заявке</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <complex-column name="wpInitBranch" subject="${catalog.column.wpInitBranch.subject:Филиал/ ГО}" extends="vcard"> <meta> <documentation>Филиал/ ГО</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <complex-column name="wpInitiatorDepartment" subject="${catalog.column.wpInitiatorDepartment.subject:СП инициатора}" extends="vcard"> <meta> <documentation>СП инициатора</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <complex-column name="wpInitOrganization" subject="${wp.Organization:Организация}" extends="vcard"> <meta> <documentation>Организация</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <complex-column name="wpArea" subject="${wp.Area:Зона СП}" extends="vcard"> <meta> <documentation>Зона СП</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <complex-column name="wpInitiator" subject="${wp.Inititator:Инициатор}" extends="vcard"> <meta> <documentation>Инициатор</documentation> </meta> <column-ref ref="shortName"/> <column-ref ref="id"/> <column-ref ref="hint"/> </complex-column> <column name="wpOffice" subject="${wp.Office:Офис}" extends="string"/> <column name="wpTypeOffice" subject="${wp.TypeOffice:Тип офиса}" extends="string"/> <column name="wpLocality" subject="${wp.Locality:Город}" extends="string"/> <column name="wpCountry" subject="${wp.Country:Страна}" extends="string"/> <column name="wpFloor" subject="${wp.Floor:Этаж}" extends="string"/> <column name="wpRoomNumber" subject="${wp.RoomNumber:Номер кабинета}" extends="string"/> <column name="wpCode" subject="${wp.Code:Код РМ}" extends="string"/> <column name="wpEmpGoingToWork" subject="${wp.GoingToWork:Дата выхода}" extends="datetime"/> <column name="wpMovingDate" subject="${wp.wpMovingDate:Дата переезда}" extends="datetime"/> <column name="wpEmpHierDepatment" subject="${wp.wpEmpHierDepatment:Подразделение}" extends="string"/> </catalog> |
Дескриптор решает следующие задачи:
<?xml version='1.0' encoding='UTF-8'?> <catalog xmlns="http://www.intertrust.ru/schema/palette/cat-ui"> <custom-descriptor ident="WorkplaceRequests" view="WorkplaceRequests_(vw_cmj_all)" id="wp-request-all-docs-af5" name="Заявки на организацию РМ - Все" style="default"> <builder name="ru.intertrust.cm_sochi.srv.uicollections.UiBuilder"> <config> <view-complex-classif level-select="all"/> </config> </builder> <table> <columns> <column-ref ref="self" important="true"/> <column-ref ref="created_date" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="typeRequest" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="regNumber" sort-asc="true" sort-desc="true" filter="true"/> <column-ref ref="wpInitBranch" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="wpInitiator" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="wpInitiatorDepartment" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="wpEmployee" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="wpEmpDepartment" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="wpEmpHierDepatment" sort-desc="true" sort-asc="true" filter="true" invisible-default="true"/> <column-ref ref="stage" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="statusWPRequest" filter="true" sort-asc="true" sort-desc="true" important="true"/> <column-ref ref="term" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="finishtime" sort-asc="true" sort-desc="true" important="true" filter="true"/> <column-ref ref="wpArea" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpCode" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpCountry" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpInitOrganization" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpFloor" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpLocality" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpRoomNumber" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpTypeOffice" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpOffice" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpEmpGoingToWork" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> <column-ref ref="wpMovingDate" sort-asc="true" sort-desc="true" filter="true" invisible-default="true"/> </columns> </table> <custom-actions schema-ref="RkkReadersCollection"/> </custom-descriptor> </catalog> |
Представление связывает дескриптор с навигационной панелью.
<view parent-ref="request" id="workplace-requests" name="${catalog.view.workplace_requests.name:Заявки на ОРМ}" position="10"> <pagename name="Заявки на ОРМ"/> <descriptor-ref ref="wp-request-all-docs-af5"/> <source> <module ident="WorkplaceRequests"/> </source> </view> |
Отлаживать кастомные коллекции можно через Управление конфигурациями. Данный раздел находится в админ-клиенте AF5 в Структуре Системы.
С помощью фильтров ищется нужная коллекция, открывается на редактирование, на вкладку Черновик вносится код xml-коллекции, сохраняется.
Далее выделяется данная коллекция и нажимается кнопка "Применить черновик"
Изменения применяются без dropcache
Дескрипторы и представления отлаживать удобнее, через заливу Палитры XML, но возможность сделать через админку AF5 есть.
Нужно перейти в раздел Структура системы\Каталог\Папки и Структура системы\Каталог\Дескрипторы