Windchill+ 관리 도움말 > Windchill 관리 및 구성 > 전문 관리 > MPMLink 관리 > 제조 구조를 생성하기 위한 소스 템플릿 사용자 정의
제조 구조를 생성하기 위한 소스 템플릿 사용자 정의
목표
소스 목록에서 공정 계획 또는 라우팅 계획 템플릿을 해결하기 위한 기본 로직을 사용자 정의합니다.
솔루션
기본 제공 위임 프레임워크를 사용하면 템플릿을 사용하여 다운스트림 구조를 생성할 수 있으며, 제조 구조 초기화 대화 상자의 소스 목록을 채우기 위한 사용자 정의 로직을 확장하고 적용할 수 있습니다.
사전 지식
이 임무를 수행하려면 다음 사항을 이해해야 합니다.
Java 기본 사항(상속, 컬렉션)
Windchill 위임 및 xconfmanager 유틸리티
솔루션 요소
RelatedSourceDelegate
복제 또는 다른 이름으로 저장 부품에 대한 소스 템플릿을 가져오기 위해 Windchill에서 호출하는 추상 클래스.
DefaultRelatedSourceDelegate
소스 템플릿을 가져오기 위한 OOTB 구현.
CustomRelatedSourceDelegate
프로젝트 요구 사항에 따라 소스 템플릿을 해결하도록 맞춤화된 사용자 지정 구현.
절차
템플릿을 가져오기 위한 사용자 정의 로직을 구현하려면 다음 단계를 수행합니다.
1. DefaultRelatedSourceDelegate를 확장하여 CustomRelatedSourceDelegate와 같은 새 위임 클래스를 작성합니다.
2. BaseServer-service.properties.xconf 파일에 위임을 등록합니다.
3. 필요에 따라 메소드를 재정의합니다.
a. getSourceTemplates - 라우팅 계획 템플릿을 가져오기 위한 로직을 사용자 정의합니다.
b. getSourceProcessPlans - 공정 계획 템플릿을 가져오기 위한 로직을 사용자 정의합니다.
4. xconfmanager -p를 실행하여 변경 내용을 전파합니다.
5. 메소드 서버를 다시 시작하여 변경 내용을 적용합니다.
OOTB 구현
다음은 소스 라우팅 계획을 가져오기 위한 OOTB 구현입니다.
예제 XCONF 코드 조각
다음은 사용자 정의 위임을 등록하는 샘플 XCONF 구성입니다.
<Service context="default" name="com.ptc.windchill.baseserver.delegate.RelatedSourceDelegate">
<Option cardinality="singleton"
requestor=”null”
serviceClass="com.ptc.windchill.baseserver.delegate.CustomRelatedSourceDelegate"
selector="default"/>
</Service>
샘플 구현
다음 예에서는 다른 도우미에서 소스 공정 계획을 가져오는 관련 소스 위임의 사용자 정의 구현을 보여줍니다(예: 부품 속성에서 공정 계획 OID 목록).
public class CustomRelatedSourceDelegate extends DefaultRelatedSourceDelegate {
@Override
protected Set<String> getSourceProcessPlans(final WTPart selectedPart, NavigationCriteria nc, boolean flag) {
//Fetch the list of process plan oids and related mbom oid from attribute.
Map<String, String> partToProcessPlans = CustomHelper.getMBomToProcessPlanMap(selectedPart, nc);
Set<String> processPlans = new HashSet<>();
for(Entry<String, String> mapEntry : partToProcessPlans.entrySet()) {
String mBomOid = mapEntry.getKey();
String processPlanOid = mapEntry.getValue();
If (flag) {
processPlans.add(mBomOid + “|” + processPlanOid);
} else {
processPlans.add(processPlanOid);
}
}
return processPlans;
}
도움이 되셨나요?