將自訂內容或檔案新增至翻譯封裝
此自訂只能由具備 Java 專業知識的 Windchill 管理員執行。
您可以自訂建立翻譯封裝的流程,以便在翻譯封裝中包括其他檔案。例如,中繼資料 (例如文字或 xml 檔案格式的到期日)。自訂「核心翻譯流程」工作流程範本可向翻譯封裝新增檔案。執行此自訂的程序如下︰
1. 在工作流程範本編輯器中開啟「核心翻譯流程」工作流程範本。
2. 在 Build Translation Package 節點後插入運算式自動機制。
3. 根據您的企業需求,配置此自動機制節點的運算式以呼叫自訂程式碼,進而修改翻譯封裝的內容。
當您升級至新版本的 Windchill 時,將會覆寫工作流程範本的自訂。您必須在升級的系統中再次套用自訂。
以下是呼叫自訂程式碼以在建立翻譯封裝檔案後存取或修改的工作流程程式碼範例︰
String oldUser = null;
try {
String wfCreator = com.ptc.tml.utils.TMLUtils.getUserName(main.getCreator());
oldUser = com.ptc.tml.utils.TMLUtils.switchSessionPrincipal(wfCreator);
wt.fc.Persistable sourceObj = wt.primaryBusinessObject;
wt.vc.baeline.ManagedBaseline baseline = (wt.vc.baeline.ManagedBaseline) com.ptc.tml.utils.TMLUtils.getPersistable(baselineOid);
java.io.File packageFile = new java.io.File(newTranslationPackageName);
custom.doSomething(sourceObj, baseline, packageFile);
} catch (java.lang.Throwable t) {
Log.addError(t);
} finally {
com.ptc.tml.utils.TMLUtils.switchSessionPrincipal(oldUser);
}
在工作流程自動機制中需要指派工作階段主參與者,才能確保工作流程可以存取任何相關的 Windchill 物件。依預設,會以管理員身分執行工作流;如果不需要存取 Windchill 物件,則不需要變更工作階段主參與者。
以下是在翻譯基準線的內容中進行版序化,以尋找要新增至翻譯封裝中的其他內容或中繼資料的範例程式碼︰
void doSomething(Persistable sourceObj, ManagedBaseline baseline, File packageFile) {
// open zip
for (EPMDocument doc : com.ptc.tml.utils.TranslationBaselineUtils.getBaselineDocuments(baseline))
Object extra = custom.traverse(doc);
custom.addToZip(zipFile, extra);
}
//close zip
}
不能使用標準 Java API 將檔案附加至現有的翻譯 ZIP 檔案。若要修改翻譯封裝 zip,請將翻譯封裝的完整內容複製到可改變或可附加內容的新 zip 檔案。新的翻譯封裝 zip 檔案完成之後,自訂程式碼可將原始檔案取代為新的翻譯封裝檔案。