Кастомизация отображения информационных систем

Отображение новых типов задач при запуске ИС

Точка расширения 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.