その他の機能 > サービス情報管理 > Customizing Windchill Service Information Manager and Windchill Service Parts > 翻訳パッケージへのカスタムコンテンツまたはファイルの追加
翻訳パッケージへのカスタムコンテンツまたはファイルの追加
このカスタマイズは、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 ファイルが完成した後は、カスタムコードを使用して、元のファイルを新しい翻訳パッケージファイルで置換できます。
これは役に立ちましたか?