WVS ジョブスケジューラ管理
ジョブのスケジュール
「スケジュールジョブ」ウィンドウにアクセスするには、Windchill の「ナビゲータ」で、「サイト」「組織」「プロジェクト」「製品」、または「ライブラリ」から「ユーティリティ」を選択し、「WVS ジョブスケジューラ管理」を選択します。
ジョブスケジューラ管理は、そのジョブが存在するコンテキストの中で動作します。たとえば、特定の製品からすべての CAD ドキュメントをパブリッシングするようにジョブをスケジュールしている場合は、すべての CAD ドキュメントのパブリッシングがその製品のみでパブリッシングされます。
パブリッシングジョブをスケジュールするには、以下の手順に従います。
1. 「スケジュールジョブ」ウィンドウで、「名前」フィールドにジョブの名前を入力します。
最大 200 文字まで入力できます。これは必須フィールドです。
2. 「説明」フィールドに、パブリッシングジョブの概略を入力します。
最大 200 文字まで入力できます。
3. パブリッシングジョブを実際にサブミットせずに、パブリッシングジョブのログファイルのみを作成する場合は、「ログファイルのみを作成」チェックボックスをオンにします。これにより、新しいスケジュールジョブを記述して、ジョブを実際にサブミットせずにテストできます。
4. 「ジョブのタイプ」で、必要なジョブのタイプを選択します。使用可能なオプションは、「パブリッシングジョブ」、「干渉検知ジョブ」、「印刷ジョブ」、「サムネイルジョブ」、「クリーンアップジョブ」です。選択した内容に応じて、「ジョブ」フィールドが更新されます。
5. 「ジョブ」リストで、選択した「ジョブのタイプ」に含めるジョブパラメータを選択します。使用可能なフィルタの詳細については、WVS ジョブスケジューラフィルタを参照してください。
6. ジョブをただちに実行するか、指定された時間に実行するように設定するかを決定します。
ジョブをただちに実行するには、「ジョブを開始」「即時」を選択します。
指定した時間にジョブを実行するように設定するには、スケジュールジョブを開始する日時の「月」「日」「年」「時」「分」を選択します。
7. ジョブは、指定された開始時間に 1 度だけ実行するか、指定された間隔で繰り返し実行するかを決定します。
指定した開始時刻にジョブを 1 回実行するには、「ジョブの頻度」「1 回」を選択します。
ジョブを繰り返し実行するには、ジョブパブリッシングを次に実行するまでの、「日」「時」「分」の間隔を指定します。
8. 「スケジュール」をクリックします。
パブリッシングジョブが「スケジュールされたジョブ」テーブルに表示されます。
パブリッシングジョブを削除するには、パブリッシングジョブの行の最終列で をクリックします。
パブリッシングジョブのリストを再表示するには、「リストを再表示」 をクリックします。
ジョブが実行されると、ログファイルを開いた場合、スケジュールジョブの名前がリンクとして表示されます。リンクを選択すると、パブリッシング用に送信されたアイテムのリストを含むログファイルが表示されます。「ログファイルのみを作成」オプションが選択されている場合は、リンクをクリックすると、パブリッシング用に選択されるアイテムのリストが表示されます。
自動パブリッシングスケジュールの設定
「WVS ジョブスケジューラ管理」を使用して、リクエストを Windchill スケジュールキューにサブミットして処理できます。以下に例を示します。使用するサイト独自の自動パブリッシングスケジュールを設定して、特定タイプのデータの定期的なパブリッシングを自動化します。
スケジュール化ジョブが初回にサブミットされる際、WVSScheduleQueue と呼ばれる新しい Windchill スケジュールキューが作成されます。Windchill 「キュー管理」ユーティリティを使用して、スケジュールキューが存在してアクティブであることを確認できます。スケジュールキューは、指定の日付、時刻、および頻度でパブリッシングリクエストをサブミットします。
wvs.properties ファイルの設定により、「WVS ジョブスケジューラ管理」ユーティリティの「スケジュールジョブ」ページで選択可能なジョブが決まります。多数のジョブ設定例があります。特定の要件があれば、それに応じてスケジュールを作成できます。
「スケジュールジョブ」の作成プロセスは、次の 2 つに分かれています。
wvs.properties ファイルの設定
パブリッシングするオブジェクトを選択する java コードの作成
以下のプロパティで、使用可能なエントリのリストを定義します (<n> は増分を表す連続する整数であり、初期値は 1 です)。
Schedulejobs<n>=<スケジュール名>
スケジュール名は、以下の形式の追加プロパティの検索に使用されます。
<スケジュール名>.description=pull-down description
<スケジュール名>.class=<メソッドを含むクラス>
<スケジュール名>.method=<メソッド名>
<スケジュール名>.enableOnContainers=<true/false>
<スケジュール名>.description プロパティは、「スケジュールされたジョブ」枠の「ジョブのタイプ」ドロップダウンメニューに表示されるテキストを定義します。クラスとメソッドは、スケジュールジョブによって呼び出される特定のメソッドの識別に使用されます。スケジューラの UI が特定のコンテキストで呼び出されたときにこのスケジュールジョブがジョブのリストに表示されるかどうかは、enableOnContainers の値で決まります。これは、コンテキストに基づいてパブリッシングするオブジェクトをフィルタリングするコードがスケジュールジョブに含まれることを示します。
以下にパブリッシュジョブメソッドの署名を示します。
public static QuerySpec <メソッド名>()
または
public static QueryResult <メソッド名>()
または
public static WTList <メソッド名>()
QuerySpec が返された場合は、PersistenceHelper.manager.find() を使用して照会し、QueryResult を返します。この QueryResult、またはスケジュールジョブメソッドから直接返された結果には、パブリッシング用に送信される EPMDocuments/WTParts/WTDocuments/ 製品表現が含まれています。
デフォルトのコンフィギュレーション仕様が使用されます。QueryResult に製品表現が含まれている場合、製品表現は再パブリッシング用に送信されます。QueryResult に WTDocument が含まれている場合は、すべてのパブリッシング可能なファイル、つまり、wvs.properties で worker XXX=mapping が定義されているファイルが、パブリッシング用に送信されます。
サブミットされるパブリッシングジョブに対してさらに細かい制御が必要な場合、スケジュールジョブメソッドは空の QueryResult または WTList を返し、スケジュールジョブコードで doPublish メソッドを使用して必要に応じてパブリッシングジョブをサブミットします。
スケジュールジョブの現在のコンテナのコンテキストを取得するには、ジョブメソッドで以下のメソッド呼び出しを使用します。
WTContainerRef cr = com.ptc.wvs.server.schedule.ScheduleJobs.
getCurrentContainer();
以下のスケジュールジョブメソッドの例は、現在のコンテキストにあるすべての EPMDocuments をパブリッシングします。
public static QuerySpec allEPMDocuments()
{
QuerySpec qs = null;
try {
qs = new QuerySpec(EPMDocument.class);
WTContainerRef cr = com.ptc.wvs.server.schedule.ScheduleJobs.getCurrent
Container();
if( cr != null ) {
ContainerSpec cs = new ContainerSpec();
cs.addSearchContainer(cr);
qs.setAdvancedQueryEnabled(true);
qs.appendWhere(WTContainerHelper.getWhereContainerIn(cs, EPMDocument.
class),new int[]{0});
}
} catch (Exception e ) { e.printStackTrace(); }
return qs;
}
スケジュールジョブのデバッグ情報を入手するには、wvs.properties ファイルで次のプロパティを true に設定します。
publish.publishqueuehelper.verbose=true
* 
WVS ジョブスケジューラ管理の詳細については、Windchill Visualization Services のカスタマイズを参照してください。
これは役に立ちましたか?