Механизм наследования позволяет на рабочем слое разработки в модуле решения создавать новые типы сущностей, которые наследуют структуру данных, свойства, действия, форму, логику работы и отображение от других типов сущностей. Благодаря механизму наследования уменьшается дублирование кода между схожими типами.
Тип сущности, от которого наследуются, называется базовым типом сущности. При создании типа сущности для него всегда указывается базовый тип. Например, при создании договора в качестве базового типа выбирается документ. Договор наследует от базового типа документа версии и возможность их подписания. При этом в договор добавляется свое свойство Контрагент (организация, персона или банк, с которым заключается договор):
Выбрав базовую сущность, разработчик определяет поведение и возможности сущности, ее «специализацию», при этом может расширить и изменить унаследованное. Подробнее см. раздел «Что можно изменять в наследнике».
В системе есть:
•базовые типы сущностей платформы. Например, в среде разработки есть стандартные базовые типы «Задача» (Sungero.Workflow.Task), «Задание» (Sungero.Workflow.Assignment), «Уведомление» (Sungero.Workflow.Notice), «Задание на приемку» (Sungero.Workflow.ReviewAssignment), «Электронный документ» (Sungero.Content.ElectronicDocument), «Справочник» (Sungero.CoreEntities.DatabookEntry) и т.д. На их основе можно создать свои типы сущностей;
•базовые типы сущностей на уровне прикладной разработки. Например, в стандартном решении Directum RX есть базовый тип документа «Базовый договор» (ContractBase). На его основе можно создать типы документов «Договор доходный», «Договор расходный» и т.д. При наследовании от прикладных абстрактных типов стоит учитывать, как с ними будут работать отчеты, задачи, списки и вычисляемые папки базовых решений. Например, наследники, созданные на основе базового типа:
•«Входящие документы» (IncomingDocumentBase) попадают в список «Входящие документы» модуля «Делопроизводство» и в отчет «Журнал входящих документов»;
•«Исходящие документы» (OutgoingDocumentBase) попадают в список «Исходящие документы» модуля «Делопроизводство»;
•«Внутренние документы» (InternalDocumentBase) попадают в список «Внутренние документы» модуля «Делопроизводство» и в отчет «Журнал внутренних документов»;
•«Бухгалтерские документы» (AccountingDocumentBase) попадают в список «Финансовые документы» модуля «Финансовый архив», а также доступны при выгрузке документов из финансового архива;
•«Договоры» (ContractBase) попадают в папку «Реестр договоров» модуля «Договоры», учитываются в рассылке о завершении срока действия договоров, а также доступны при выгрузке договоров из финансового архива.
•базовые типы сущностей ваших решений. Например, вы создали базовый тип документа «Внутренние документы» (MyInternalDocumentBase). На его основе можно создать типы документов «Заявление на отпуск», «Распоряжение» и т.д. Создавать базовые типы можно только справочников и документов. Для этого при создании типа сущности выберите любой существующий базовый тип справочника или документа, на основании которого будет создан новый тип, и установите флажок Абстрактный тип.
Важно. От созданного базового типа в дальнейшем можно создавать только наследников. В клиентском приложении справочники и документы базового типа нельзя создавать. Например, для правил согласования создан базовый тип ApprovalRuleBase. От него создано два наследника: «Правила согласования» (ApprovalRule) и «Правила согласования договоров» (ContractsApprovalRule). Пользователи в системе работают только с наследниками.
© Компания Directum, 2024 |