Search
    Preparing search index...

    Interface UETaskCardValidatorUser Exit

    Точка расширения предназначена для реализации дополнительных валидаций карточки задачи

    import {Universe} from '@universe-ee/sdk';

    const {NamespaceManager} = Universe.Platform.Namespace;
    const {TaskState} = Universe.MDM.EE.Workflow;

    function validateExample (
    _taskId: string,
    _linkedSubjectId: string,
    _namespace: string,
    typeName: string,
    draftId: string,
    ) {
    if (draftId !== '' || typeName === 'testTypeName') {
    return Promise.resolve({validationResult: false});
    } else {
    return Promise.resolve({validationResult: true});
    }
    }

    export async function validateTask (task: Universe.MDM.EE.Workflow.Task, taskState: Universe.MDM.EE.Workflow.TaskState) {
    const taskId = task.id.getValue();
    const taskName = task.name.getValue();
    const linkedSubjectId = task.process.linkedSubjectId.getValue() || '';
    const businessKey = task.process.businessKey.getValue();
    const [namespace, typeName, _, draftIdString] = businessKey.split(NamespaceManager.delimiter);

    if (taskState !== TaskState.IN_PROGRESS) {
    return;
    }

    const validationResult = await validateExample(taskId, linkedSubjectId, namespace, typeName, draftIdString);

    if (validationResult.validationResult === true) {
    return;
    } else {
    return {
    id: 'TASK_IS_NOT_VALID',
    errorMessage: `Задача ${taskName} не валидна`
    };
    }
    }

    Подключение точки расширения:

    import {Universe} from '@universe-ee/sdk';
    import {validateTask} from './CustomTaskCardValidator';

    export default {
    type: 'TaskCardValidator',
    moduleId: 'signTaskModule',
    active: true,
    system: false,
    meta: {
    validator: async (taskCardStore) => {
    const task = taskCardStore.task;
    const taskState = taskCardStore.taskState;

    if (!task) {
    return;
    }

    return validateTask(task, taskState);
    }
    },
    resolver: () => true
    } satisfies Universe.Platform.UserExit.UserExitDeclaration;
    interface UETaskCardValidator {
        active: boolean;
        meta: UETaskCardValidatorMeta;
        moduleId: string;
        resolver: UETaskCardValidatorResolver;
        system: boolean;
    }

    Hierarchy (View Summary)

    Index

    Properties

    active: boolean

    Является ли экземпляр точки расширения активным

    Мета-информация точки расширения

    moduleId: string

    Уникальный идентификатор экземпляра точки расширения

    Функция указывает, следует ли применять данный экземпляр точки расширения

    system: boolean

    Является ли системным экземпляром