Кастомизация отображения информационных систем
Отображение новых типов задач при запуске ИС
Точка расширения ISTaskRunButton позволяет встраивать в запуски информационных систем отображение новых типов задач.
Ниже приведен пример добавления кнопки запуска разметки и новых типов запусков через такую точку расширения (Рисунок 1).
 
Рисунок 1 - Запуски разметки
Объявление типа ISTaskRunButton:
type Resolver = (store: ScannerTaskExecutionStore) => boolean;
type Props = {
    store: InformationSystemStore;
};
type Meta = {
    extraExecutionTypes: string[];
    getExtraTaskInstanceIds: (store: ScannerTaskExecutionStore) => string[];
    getDetailsText: (task: TaskExecution, store: ScannerTaskExecutionStore) => string;
}
export type ISTaskRunButtonUE = UeModuleBase<Resolver, Meta> & {
    component: ComponentType<Props>;
}
Пример: добавление сравнения по бизнес-ролям.
export const discoveryRunUE: UniverseUE.IUeMeta['ISTaskRunButton'] = {
    moduleId: 'discoveryRunButton',
    active: true,
    system: false,
    component: DiscoveryRunButton,
    resolver: () => true,
    meta: {
        extraExecutionTypes: [DISCOVERER_TASK_EXECUTION_TYPE],
        getExtraTaskInstanceIds: (store) => {
            return store.informationSystem.scanners.getRange().map((s: Scanner) => {
                return `${DISCOVERER_TASK_EXECUTION_TYPE}-${s.name.getValue()}`;
            }) || [];
        },
        getDetailsText: (task: TaskExecution, store: ScannerTaskExecutionStore) => {
            return i18n.t('module.dataDiscovery>scanRun>detailsCellText');
        }
    }
};
ueModuleManager.addModule('ISTaskRunButton', discoveryRunUE);
В точку расширения передается компонент для кнопки запусков в верхнюю панель DiscoveryRunButton.
В meta передаются дополнительные настройки для отображения запусков в таблице:
extraExecutionTypesновые типы запуска
getExtraTaskInstanceIdsгеттер для получения списка идентификаторов экземпляров задач для отображения
getDetailsTextгеттер текста для ячейки 'детали' в таблице
Дополнительные настройки для сканеров в ИС
Точка расширения ExtraScannerConfiguration позволяет встраивать дополнительные настройки для сканеров в информационной системе.
Ниже приведен пример добавления настройки разметки данных через такую точку расширения (Рисунок 1).
 
Рисунок 1 - Настройка разметки данных
Объявление типа UEExtraScannerConfiguration:
type Resolver = (store: InformationSystemStore) => boolean;
type ExtraScannerConfigurationProps = {
    store: InformationSystemStore;
    configStore: AbstractScannerConfigStore;
    scanner: Scanner;
    readOnly?: boolean;
};
export type UEExtraScannerConfiguration = UeModuleBase<Resolver, {}> & {
    component: ComponentType<ExtraScannerConfigurationProps>;
    scannerConfigStoreCtor: ClassCtor<AbstractScannerConfigStore>;
}
Пример: добавление настройки разметки данных для сканера информационной системы.
export const domainScannerConfigurationUE: UniverseUE.IUeMeta['ExtraScannerConfiguration'] = {
    moduleId: 'domainScannerConfiguration',
    active: true,
    system: false,
    component: DomainScannerConfiguration,
    scannerConfigStoreCtor: DomainScannerConfigurationStore,
    resolver: () => true,
    meta: {}
};
ueModuleManager.addModule('ExtraScannerConfiguration', domainScannerConfigurationUE);
В точку расширения передается хранилище DomainScannerConfigurationStore для управления данными и визуальный компонент DomainScannerConfiguration, который будет отображаться в настройках сканера.
Компонент принимает параметры ExtraScannerConfigurationProps. Хранилище должно быть унаследовано от AbstractScannerConfigStore.