Ниже описано, как рабочий процесс выполняет загрузку обработчиков заданий (разработанных компанией Autodesk и сторонними производителями) при запуске.
2012 | 2013 | 2014 | |
---|---|---|---|
Autodesk Vault Basic |
![]() |
||
Autodesk Vault Workgroup |
![]() |
![]() |
![]() |
Autodesk Vault Collaboration |
![]() |
![]() |
![]() |
Autodesk Vault Professional |
![]() |
![]() |
![]() |
Расширения сторонних обработчиков заданий
Все сторонние расширения должны находиться в отдельной папке в каталоге расширений:
%allusersprofile%\Autodesk\Vault 2012\Extensions\
Например, если имеется обработчик заданий с именем JobHandlerSample, он может находиться в каталоге %allusersprofile%\Autodesk\Vault 2013\Extensions\JobHandlerSample.
Для каждой папки в каталоге расширений рабочий процесс проверяет наличие файла конфигурации. Файл конфигурации представляет собой простой текстовый файл, которому может быть присвоено любое имя, однако файл должен иметь расширение .vcet.config. Если файл конфигурации отсутствует, расширение не будет загружено. Ниже приведен пример содержания файла конфигурации JobHandlerSample.vcet.config:
<configuration> <connectivity.ExtensionSettings2> <assembly>JobHandlerSample</assembly> <extensionType>JobProcessor</extensionType> </connectivity.ExtensionSettings2> </configuration>
Элемент сборки определяет имя файла библиотеки. Поэтому в данном примере библиотека расширения называется JobHandlerSample.dll. Тип расширения рабочего процесса указывает, что это расширение для рабочего процесса (в этом каталоге могут находиться расширения других типов: WebService и VaultClient).
Сборка расширения (в данном примере JobHandlerSample.dll) загружена. При загрузке выполняются следующие проверки.
namespace JobHandlerSample { public class JobHandlerSample : IJobHandler { public bool CanProcess(string strJobType) { return strJobType.Equals("jobhandlersample"); } public JobOutcome Execute(IJobProcessorServices context, IJob job) { return JobOutcome.Success; } } }
В сборке должен быть только один общедоступный тип, реализующий IJobHandler. В противном случае расширение не будет загружено. Вставляется экземпляр данного типа.
Конфигурация обработчиков заданий
Файл конфигурации обработчика задания — это файл формата XML, содержащий информацию о конфигурации для рабочего процесса. Он находится в том же каталоге, где расположен файл JobProcessor.exe (обычно это C:\Program Files\Autodesk\Vault Professional [год]\Explorer) и имеет имя JobProcessor.exe.config. Раздел конфигурации обработчиков заданий — это \connectivityExplorer\jobHandlers. В данном разделе XML каждый элемент jobHandler представляет один обработчик заданий. XML-элементы jobHandler имеют один из следующих форматов.
<jobHandler class="jobType" handler="NameOfTypeImplementingIJobHandler"/>
Где:
Таким образом, допустимым элементом jobHandler для примера расширения будет:
<jobHandler class="jobhandlersample" handler="JobHandlerSample.JobHandlerSample, JobHandlerSample"/>
Обратите внимание, что в файле JobProcessor.exe.config уже имеется запись jobHandler для каждого встроенного обработчика заданий Autodesk. Встроенные обработчики заданий загружаются, только если для них имеется запись jobHandler. Файлы DLL встроенных обработчиков заданий расположены в том же каталоге, что и файл JobProcessor.exe.
Проверка включения обработчиков заданий
Информация о конфигурации, приведенная выше, используется для связывания типа задания с определенным обработчиком заданий. После этого каждый обработчик заданий опрашивается для подтверждения возможности обработки определенного типа задания. Обработчик заданий отвечает на этот вопрос, реализуя метод интерфейса IJobHandler.CanProcess. На этом этапе обработчик заданий должен проверить, что у него имеется все необходимое для обработки заданий данного типа (например, некоторые обработчики заданий создания DWF проверяют, установлена ли программа Autodesk Inventor).
При проверке типов заданий, который рабочий процесс обрабатывает в текущий момент (через меню "Администрирование" -> "Типы заданий..."), каждая запись в списке означает, что обработчик заданий для данного типа задания загружен успешно. Если запись проверена, это свидетельствует о том, что обработчик заданий включен (то есть он вернул значение "Истина" из реализации IJobHandler.CanProcess). Чтобы рабочий процесс мог повторно направить обработчику заданий запрос на возможность выполнения обработки., пользователю необходимо будет закрыть и повторно запустить рабочий процесс.
После того как все обработчики заданий были загружены и опрошены, рабочий процесс будет готов к началу извлечения заданий из очереди и их обработке.
Примеры обработчиков заданий
Ниже представлен пример обработчика задания, написанный на C#. Он не выполняет никаких полезных действий (при вызове методов CanProcess и Execute появляется диалоговое окно), однако этот пример можно использовать в качестве шаблона для создания обработчиков заданий.