WVS 工作排程器管理
排程工作
欲存取「排程工作」視窗,請在 Windchill 的「導覽器」中,從「網站」「組織」「專案」「產品」「物件庫」中選取「公用程式」,然後選取「WVS 工作排程器管理」
「工作排程器管理」會在工作所在的前後關聯內操作。例如,如果您排定一個要發行某特定產品之所有 CAD 文件的工作,則此工作僅會發行該產品中所有的 CAD 文件。
請使用下列程序來排程發行工作:
1. 「排程工作」視窗中,於「名稱」欄位內輸入工作的名稱。
最多可輸入 200 個字元。此為必填欄位。
2. 「描述」欄位中輸入發行工作的簡短描述。
最多可輸入 200 個字元描述。
3. 如果只希望排程器產生發行工作的記錄檔而不真的提交發行工作,您可以勾選「只建立記錄檔」核取方塊。如此可讓您寫入新的排程工作,並不用實際提交工作就可測試。
4. 「工作類型」下,選取您想要的工作類型。可用選項有「發行工作」、「干涉偵測工作」、「列印工作」、「縮圖工作」與「清理工作」。「工作」欄位會相應更新。
5. 「工作」清單中,選取要包括在所選「工作類型」中的工作參數。
「發佈工作」- 下列選項可供使用︰
PublishAllEPMDocumentsNoRepresentation
PublishAllLatestEPMDocumentsNoRepresentation
PublishAllPartsNoRepresentation
RepublishAllDefaultRepresentations
PublishAllEPMDocuments
RepublishAllOutOfDateRepresentations
PublishAllWTDocumentsNoRepresentation
PublishAllLatestWTDocumentsNoRepresentation
PublishAllWTDocuments
PublishAllLatestWTDocuments
SISAutomatedTranslationPublish - 若配置 Services Information Manager Worker (SIS Worker),則可用。
「干涉偵測工作」- 單一選項可供使用。
InterferenceDetectionDefinition
1. 指定要處理的現有「干涉偵測定義」。按一下「搜尋」來開啟「搜尋干涉偵測定義」視窗。「搜尋結果」窗格即會開啟,且已填入可用 IDD
2. 選取「使用最新版序」使用所選「干涉偵測定義」的最新版本。
* 
如果選取「使用最新版序」,則「搜尋」只會列出「干涉偵測定義」的最新版序。
「列印工作」只有一個選項可用來將工作傳送至印表機。
「縮圖工作」- 下列選項可供使用︰
GenerateRepresentationThumbnails
GenerateLatestRepresentationThumbnails
AddRepresentation3DThumbnails
AddLatestRepresentation3DThumbnails
RegenerateRepresentationThumbnails
RegenerateLatestRepresentationThumbnails
AddRepresentationSmallThumbnails
AddLatestRepresentationSmallThumbnails
* 
欲發行迷你縮圖表示,請使用 AddRepresentationSmallThumbnails 與 AddLatestRepresentationSmallThumbnails「縮圖工作」選項。如果不需要迷你縮圖,請使用 “Generate” 與 “Add 3D” 為「縮圖工作」名稱。
「清理工作」- 下列選項可供使用︰
DeletedCompletedJobs
DeletedCompletedSuccessfulJobs
「刪除超過以下時間的工作:」0「天」欄位中,指定要刪除的工作。輸入 0 可刪除早於今天的工作,輸入 1 可刪除早於昨天的工作,依此類推。
* 
在上述清單中,"Latest" 表示最近入庫至 Windchill 的文件版序。因此,如果選取 "PublishAllLatestWTDocuments",則僅會發佈最近的 WTDocument 版序,而不會發佈所有較舊的版序。
上述工作清單均為 Windchill 預設提供。您可定義專屬的工作參數。如需詳細資訊,請參閱WVS 工作和佇列簡介
6. 決定是否要立即執行工作,或者是設定它在特定時間執行。
欲立即執行工作,請勾選「開始工作」欄位內的「立刻發行」核取方塊。
欲將工作設定為在指定時間執行,請選取您想要排程工作開始的「月」「日」「年」「時」「分」
7. 決定工作只要在指定的開始時間執行一次,或是每隔一段指定時間重複執行。
如果想在指定的開始時間執行此工作一次,請選取「工作頻率」欄位內的「一次」
若要重複執行工作,請指定要每隔多少「日」「時」「分」重複發行工作。
8. 按一下「排程」
該項發行工作就會出現在「排程的工作」表格中。
欲刪除發佈工作,請在發佈工作所在列的最後一欄中按一下
欲重新整理發佈工作清單,請按一下「重新整理清單」
執行工作時,如果記錄檔開啟,排程工作的名稱會顯示為連結。選取該連結可顯示一個記錄檔,其中會列出已傳送以進行發佈的項目。如果有選取「只建立記錄檔」選項,則該連結會顯示應被選取以進行發行的項目清單。
設定自動化發佈排程
您可以使用「WVS 工作排程器管理」將請求提交至 Windchill 排程佇列以進行處理。以下是範例。設定您網站的特定自動化發佈排程,來自動化某些類型資料的定期發佈。
排程工作第一次提交時,會建立名為 WVSScheduleQueue 的新 Windchill 排程佇列。您可以使用 Windchill「佇列管理」公用程式來確認此佇列存在且為作用中。排程佇列以指定的日期和時間、以及指定的頻率來提交發行請求。
wvs.properties 檔案中的設定定義了「WVS 工作排程器管理」公用程式之「排程工作」頁上可以選取的工作。有許多範例工作已經配置好。如果您有特定需求,則可以建立適當的排程工作。
建立「排程工作」的流程分成兩部份:
配置 wvs.properties 檔案
撰寫 Java 程式碼以選取要發佈的物件
以下屬性定義可使用項目的清單 (其中 <n> 是從 1 開始的遞增整數)。
Schedulejobs<n>=<schedulename>
接著 schedulename 用來尋找以下形式的其他屬性:
<schedulename>.description=pull-down description
<schedulename>.class=<ClassContainingMethod>
<schedulename>.method=<nameOfMethod>
<schedulename>.enableOnContainers=<true/false>
<schedulename>.description 內容可定義出現在「排程的工作」窗格中「工作類型」下拉選單中的文字。類別和方法則用來識別排程工作將呼叫的特定方法。enableOnContainers 的值可決定當在特定前後關聯中呼叫排程器 UI 時,是否在工作清單中顯示此排程工作。這表示排程工作包含可根據前後關聯篩選要發行之物件的代碼。
下列是發行工作方法的簽名:
public static QuerySpec <nameOfMethod>()
public static QueryResult <nameOfMethod>()
public static WTList <nameOfMethod>()
如果傳回 QuerySpec,則會使用 PersistenceHelper.manager.find(),進行查詢並傳回 QueryResult。這個 QueryResult 或直接從排程工作方法傳回的結果,會包含為發行所傳送的 EPMDocuments/WTParts/WTDocuments/Representations。
會使用預設的組態規格。如果 QueryResult 包含「表示」,則會傳送表示以供重新發行。如果 QueryResult 包含 WTDocument,則所有可發行檔案,亦即具有 Worker XXX=對應 (在 wvs.properties 中定義) 的檔案就會傳送至發行。
如果提交的發行工作需要更精細的控制,排程工作方法可以傳回空的 QueryResult 或 WTList,並會視需要在排程工作代碼中使用 doPublish 方法來提交發行工作。
若要取得排定工作的目前容器前後關聯,請在工作方法中使用以下方法呼叫:
WTContainerRef cr = com.ptc.wvs.server.schedule.ScheduleJobs.
getCurrentContainer();
以下範例排定工作方法會在目前前後關聯中發佈所有的 EPMDocument:
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
這是否有幫助?