Adición de contenido personalizado o ficheros en un paquete de traducción
Esta personalización la puede realizar solo un administrador de Windchill con experiencia en Java.
Se puede personalizar el proceso de crear un paquete de traducción para incluir ficheros adicionales en un paquete de traducción. Por ejemplo, los metadatos, como la fecha de vencimiento en un texto o un formato de fichero XML. La personalización de la plantilla de proceso de trabajo Proceso de traducción básico permite la adición de ficheros a los paquetes de traducción. El procedimiento para realizar esta personalización es el siguiente:
1. Abra la plantilla de proceso de trabajo Proceso de traducción básico en un editor de plantillas de proceso de trabajo.
2. Inserte un robot de expresiones después del nodo Build Translation Package.
3. Configure la expresión de este nodo de robot para llamar al código personalizado que modificará el contenido del paquete de traducción, según los requisitos del negocio.
Al actualizar a una nueva versión de Windchill, la personalización de la plantilla de proceso de trabajo se sobrescribirá. El usuario tendrá que aplicar la personalización otra vez en el sistema actualizado.
A continuación se muestra un ejemplo de código del proceso de trabajo en el que se llama al código personalizado para acceder al fichero del paquete de traducción, o modificarlo, después de que se haya creado:
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);
}
La identidad de la sesión debe asignarse en el robot de procesos de trabajo para asegurarse de que el proceso de trabajo pueda acceder a cualquier objeto Windchill pertinente. Por defecto, el proceso de trabajo se ejecuta como administrador. Si no es necesario acceder a ningún objeto Windchill, no hace falta cambiar la identidad de la sesión.
A continuación se muestra un código de ejemplo para iterar a través del contenido en la instantánea de traducción para buscar contenido o metadatos adicionales y añadirlos al paquete de traducción:
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
}
No es posible incorporar los ficheros a un fichero ZIP existente de traducción con las API estándar de Java. Para modificar el fichero ZIP del paquete de traducción, copie el contenido del paquete de traducción en un nuevo fichero zip en el que se pueda alterar o incorporar contenido. Una vez que el nuevo fichero ZIP del paquete de traducción se haya completado, el código personalizado puede reemplazar el fichero original con el nuevo fichero del paquete de traducción.