Точка расширения предназначена для реализации дополнительных валидаций карточки задачи
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';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; Копировать
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;
Является ли экземпляр точки расширения активным
Мета-информация точки расширения
Уникальный идентификатор экземпляра точки расширения
Функция указывает, следует ли применять данный экземпляр точки расширения
Является ли системным экземпляром
Точка расширения предназначена для реализации дополнительных валидаций карточки задачи
Example
Пример: асинхронная валидация задачи по её параметрам
Подключение точки расширения: