ADN Open CIS
Сообщество программистов Autodesk в СНГ

06/06/2015

Типы сценариев PLM360 - Сценарии условия и проверки

В прошлом посте мы говорили о сценариях действий. Сегодня давайте сосредоточимся на двух других типах сценариев: состояния и проверки.

В отличие от сценариев действий, сценарии состояния и проверки служат только обслуживания переходов рабочего процесса.Свойства перехода рабочего процесса являются единственным местом для установки ссылки на них. [Administration -> Workspace Manager -> workspace —> Workflow Editor -> double click transition]

Сценарии условия

  • Сценарии условия доступны только для чтения.Изменения, внесенные в код, не будут сохранены.
  • Сценарий состояния должен возвращать логическое значение (истина или ложь), используя предопределенную функцию ReturnValue().
  • Возвращаемое значение используется для того, чтобы сообщить, доступно ли пользователю выполнение исходящего перехода рабочего процесса из текущего состояния. Но это не является единственным условие, чтобы сделать переход доступным.Пользователь также должен иметь разрешение перехода рабочего процесса.
  • Сценарии условия запускаются, когда PLM должен определить, если доступен ли пользователю документооборота.
  • Каждый переход может иметь только один сценарий условия.
  • Каждый сценарий условия может быть передан нескольким переходам из разных рабочих пространств.

Примеры сценариев условия

Пример 1: Переход доступен только владельцу элемента.

Код - JavaScript: [Выделить]
  1. // Получить владельца текущего элемента.
  2. var owner = item.master.owner;
  3. // Если идентификатор владельца равен ID текущего пользователя, то возвратить ИСТИНА; в противном случае ЛОЖЬ.
  4. returnValue(owner.id === userID ? true : false);

Пример 2: Переход доступен только для пользователей группы администраторов

Код - JavaScript: [Выделить]
  1. // Security.inGroup (идентификатор пользователя, имя группы) — это встроенная функция, которая проверяет, является ли пользователь членом определенной группы.
  2. var isCurrentUserInAdminGroup = Security.inGroup(userID, ’Admin Group’);
  3. // Возвращает результат проверки
  4. returnValue(isCurrentUserInAdminGroup);

Сценарий проверки

  • Сценарии проверки также доступны только для чтения. Изменения, внесенные в код, не будут сохранены.
  • Сценарий проверки используется для проверки определенных предпосылок, прежде чем разрешить переход в следующее состояние рабочего процесса.
  • Сценарий проверки должен возвращать массив сообщений ошибок, используя встроенную функцию ReturnValue().
  • Переход будет разрешен, если будет получен пустой массив; в противном случае, пользователю не будет разрешено выполнять переход и возвращенные сообщения будут показаны пользователю.
  • Каждый переход может иметь только один сценарий проверки.
  • Каждый сценарий проверки может быть передан нескольким переходам из разных рабочих пространств.

Пример сценария проверки

Пример: поле «name» элемента не должно быть пустым, и элемент должен иметь по крайней мере, вложение.

Код - JavaScript: [Выделить]
  1. var messages = [];
  2. if (item.NAME === null) {  //имя поля не должно быть пустым
  3. messages.push("Для выполнения перехода необходимо наименование продукции");
  4. }
  5. if (item.attachments.length === 0) {  // должно быть, по крайней мере, одно вложение
  6. messages.push("По крайней мере, одно вложение требуется для завершения перехода");
  7. }
  8. returnValue(messages);

Сценарии рабочих процессов в рабочем процессе жизненного цикла

Как 3 типа сценариев используются в процессе перехода рабочего процесса:

  1. Каждый сценарий состояния на исходящих переходах текущего состояния документооборота работает для определения переходов доступных для текущего пользователя.
  2. Пользователь выбирает доступный переход для выполнения действий рабочего процесса.
  3. Сценарий проверки для этого перехода запускается для проверки всех предварительных требований.
  4. Если все требования соблюдены, выполняется сценарий действия по этому переходу.
  5. Переход завершен.

Источник: http://justonesandzeros.typepad.com/blog/2015/04/script-types-condition-and-validation-script.html

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=2775

Опубликовано 06.06.2015