번역 패키지에 사용자 정의 컨텐트 또는 파일 추가
이 사용자 정의는 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 파일이 완료되면 사용자 정의 코드에서 원본 파일을 새 번역 패키지 파일로 대체할 수 있습니다.
도움이 되셨나요?