Юниверс MDM SDK UI
v6.15.0

Интерфейс UETaskCardValidator

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

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;
}

Иерархия (Просмотр сводки)

Индекс

Свойства

active: boolean

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

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

moduleId: string

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

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

system: boolean

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