起動時にジョブ ハンドラ(Autodesk およびサード パーティ)がジョブ プロセッサによってどのようにロードされるかを以下に説明します。
2012 | 2013 | 2014 | |
---|---|---|---|
Autodesk Vault Basic |
![]() |
||
Autodesk Vault Workgroup |
![]() |
![]() |
![]() |
Autodesk Vault Collaboration |
![]() |
![]() |
![]() |
Autodesk Vault Professional |
![]() |
![]() |
![]() |
サード パーティ ジョブ ハンドラの拡張
サード パーティ拡張は、Extension ディレクトリのそれぞれ固有のフォルダに存在します。
%allusersprofile%¥Autodesk¥Vault 2012¥Extensions¥
たとえば、「JobHandlerSample」という名前のジョブ ハンドラ拡張は、%allusersprofile%¥Autodesk¥Vault 2013¥Extensions¥JobHandlerSampleいうフォルダに存在します。
Extension ディレクトリ内の各フォルダについて、ジョブ プロセッサによって設定ファイルがチェックされます。設定ファイルは、任意の名前に設定できる単なるテキスト ファイルですが、 名前の最後が .vcet.config という拡張子でなければなりません。設定ファイルが存在しない場合、拡張のロードは失敗します。サンプルの設定ファイル JobHandlerSample.vcet.config の内容を次に示します。
<configuration> <connectivity.ExtensionSettings2> <assembly>JobHandlerSample</assembly> <extensionType>JobProcessor</extensionType> </connectivity.ExtensionSettings2> </configuration>
アセンブリ要素によって、拡張 dll の名前が指定されます。したがって、上記のサンプルでは、拡張 dll に JobHandlerSample.dll という名前が付けられます。JobProcessor という拡張子タイプによって、これがジョブ プロセッサの拡張であることが示されます(このディレクトリには、その他の拡張タイプである 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 を実装するアセンブリには、パブリック タイプが厳密に 1 つ存在する必要があります。そうでない場合、拡張のロードは失敗します。このタイプのインスタンスがインスタンス化されます。
ジョブ ハンドラの設定
ジョブ ハンドラの設定ファイルは、ジョブ プロセッサの設定情報を含む xml ファイルです。JobProcessor.exe と同じフォルダ(通常、C:¥Program Files¥Autodesk¥Vault Professional [年]¥Explorer)に格納され、JobProcessor.exe.config という名前が付けられます。ジョブ ハンドラの設定に関連するセクションは、configuration\connectivityExplorer\jobHandlers の下にあります。この xml セクションでは、各 jobHandler 要素はジョブ ハンドラを表します。jobHandler xml 要素には、次の形式のいずれかが使用されます。
<jobHandler class="jobType" handler="NameOfTypeImplementingIJobHandler"/>
引数の意味:
したがって、ここで示すサンプル拡張の有効な jobHandler 要素は次のようになります。
<jobHandler class="jobhandlersample" handler="JobHandlerSample.JobHandlerSample, JobHandlerSample"/>
JobProcessor.exe.config ファイルで、Autodesk のビルトイン ジョブ ハンドラのそれぞれに対して jobHandler エントリが既に存在していることに注目してください。ビルトイン ジョブ ハンドラは、それに対する jobHandler エントリが存在する場合のみロードされます。ビルトイン ジョブ ハンドラ dll は、JobProcessor.exe と同じディレクトリに格納されています。
ジョブ ハンドラが有効化されていることを確認する
上記の設定情報は、ジョブ タイプを特定のジョブ ハンドラに関連付ける場合に使用します。関連付けが完了すると、各ジョブ ハンドラに対して、その特定のジョブ タイプを処理できるかどうかが確認されます。ジョブ ハンドラは、IJobHandler.CanProcess というインタフェース メソッドを実装することで、この確認に対して応答します。それと同時に、ジョブ ハンドラは、そのタイプのジョブを処理するために必要なすべてを備えているかを確認します(たとえば、一部の dwf 作成ジョブ ハンドラは、Inventor がインストールされているかを確認します)。
ジョブ プロセッサによってどのジョブ タイプが現在処理されているかを確認する場合([管理]メニュー -> [ジョブ タイプ]を使用して)、一覧表示される各エントリは、そのジョブ タイプのジョブ ハンドラが正常にロードされていることを示します。エントリがチェックされている場合、そのジョブ ハンドラは有効になっていることを意味します(すなわち、その IJobHandler.CanProcess 実装から「true」が返されます)。ジョブ ハンドラが「処理可能」であるかどうか、ジョブ ハンドラに対する再確認をジョブ プロセッサに実行させる場合、ユーザは、ジョブ プロセッサを終了して、再起動する必要があります。
すべてのジョブ ハンドラがロードおよびクエリーされると、ジョブ プロセッサでは、キューのジョブを取得して処理を開始する準備が整います。
サンプル ジョブ ハンドラ
以下に、C# で作成されたサンプル ジョブ ハンドラを示します。有益な内容を実行するものではありませんが(CanProcess および Execute メソッドが呼び出されたときにダイアログを表示する)、ジョブ ハンドラを作成するためのテンプレートとして使用できます。