Создание пользовательской функции на базе сценария

Модуль Управление процессами предоставляет универсальный метод для добавления требуемой функциональности в БП — функция "Сценарий", которая может содержать произвольный исходный код на языке C# и Visual Basic .NET.

Чтобы создать сценарий:
  1. Добавьте функцию Сценарий в шаблон БП.

  2. Откройте свойства добавленной функции.

  3. Нажать кнопку Текст сценарий. Будет открыто окно редактирования исходного кода скрипта.

    Окно редактирования скрипта функции "Сценарий"
    Рисунок 1. Окно редактирования скрипта функции "Сценарий"
  4. Напишите исходный код скрипта (в функции Execute).

    Инструкция по разработке скриптов приведена в Руководстве по разработке.

  5. Нажмите на кнопку Компилировать для выполнения проверки исходного кода скрипта на наличие ошибок.

    По результатам компиляции будет выведено сообщение Компиляция прошла успешно или окно со списком ошибок.

  6. Нажмите на кнопку ОК для сохранения исходного кода скрипта.

  7. Сохраните настройки функции Сценарий и завершите редактирование шаблона БП.

    Редактор кода не поддерживает работу со сборками, подключенными с участием псевдонима ("extern alias mOM;"). При компиляции такого скрипта возникнет ошибка вида:

    Окно ошибки
    Рисунок 2. Окно ошибки
    Чтобы исключить данную ошибку:
    • Удалите конструкцию extern alias mOM;, перепишите части кода, в которых используется пространство имен mOM, и установить флаг Не добавлять ссылку на Docsvision.Objectmanager.Interop.dll в настройках функции.

    • Используйте простой редактор сценариев — установите флаг Использовать простой редактор сценариев в настройках функции.

    • Или не используйте функцию компиляции скрипта — сам сценарий будет корректно скомпилирован (если нет ошибок) при работе сервиса Workflow.

      Может возникнуть ситуация, когда при открытии сценария на редактирование происходит фатальная ошибка приложения и программа Windows-клиент закрывается. Такое поведение может быть связано с недоступностью одной из сборок, входящих в Docsvision или из дополнительных сборок, добавленных в сценарий в основном окне настройки функции Сценарий. В этом случае следует установить проблемную сборку в каталог модуля Windows-клиент.

      С помощью функции Сценарий можно создать пользовательскую функцию (.Net-сборку), которую затем можно будет вставить в бизнес-процесс из Универсальной функции.

      Чтобы создать пользовательскую функцию, откройте окно Текст сценария, введите текст сценария и нажмите кнопку Создать сборку. При этом откроется окно для выбора файла формата .dll, в который будет сохранен сценарий.

      Чтобы обеспечить возможность повторного использования сценария в виде скомпилированной сборки, в нем обязательно должен быть хоть один публичный (publiс) класс, в котором должны присутствовать публичные статические методы.

      Скомпилированные и подключенные сборки должны находится в папке серверной части модуля Управление процессами, по умолчанию папка C:\Program Files (x86)\Docsvision\Workflow\.

      Просмотреть из функции Сценарий текст сценария, сохраненного как .Net-сборка, нельзя.

Защита сценария бизнес-процесса

Разработчик может заблокировать возможность просмотра исходного кода сценариев БП (функций Сценарий) с помощью пароля. Для доступа к настройкам (и, соответственно, к исходному коду) заблокированного сценария потребуется ввести корректный пароль.

Защита сценария распространяется на все функции Сценарий шаблона БП и формируемых экземпляров БП. Защитить отдельный сценарии и сценарии всех БП нельзя.

Чтобы защитить сценарий БП:
  1. Откройте карточку БП, содержащую защищаемый сценарий.

  2. Нажмите кнопку Настройки на панели инструментов "Конструктора бизнес-процессов".

  3. В окне свойств бизнес-процесса перейдите на вкладку Дополнительно.

  4. Установите флаг Защитить сценарии процесса.

  5. Введите и подтвердите пароль, с помощью которого будут защищены сценарии БП.

  6. Сохраните БП.

Чтобы снять защиту со сценариев БП, нужно снять флаг Защитить сценарии процесса в настройках БП. Для снятия защиты нужно ввести пароль, которым БП защищен.