다운로드 서비스에서 매개변수 사용자 정의
기본 제공 위임
Windchill에서는 CAD 문서와 관련된 추가 정보를 사용자 정의 시스템 매개변수로서 전달하는 기본 제공 메커니즘을 제공합니다.
매개변수를 사용자 정의하려면 사이트 수준에서 서버측 기본 설정인 > 을 설정합니다.
• 값은 CAD 도구에서 매개변수 또는 등록 정보로서 표시되는 CAD 문서와 관련된 객체의 추가 속성 목록입니다.
• 값은 쉼표로 구분된 다음 형식의 CAD 등록 정보 및 Windchill 속성 쌍의 목록입니다.
<name_of_CAD_property>:<relatedObjectCode>.<WindchillAttributeName>
설명:
값
|
설명
|
가능한 값
|
name_of_CAD_property
|
CAD 도구의 매개변수 또는 등록 정보 이름입니다.
|
PART_REVISION
|
relatedObjectCode
|
관련 객체를 식별하는 데 사용되는 문자열입니다.
|
• docMaster
• associatedPart
• relatedECN
• 수준 올리기
|
WindchillAttributeName
|
관련 객체에 대한 Windchill 속성의 논리적 이름 또는 내부 이름입니다.
|
• CAD 문서 마스터에 대한 소프트 유형 속성
• 부품 속성
◦ 부울, 날짜, 정수, 실수, 단위 또는 문자열이 있는 실수 유형의 관련 부품에 대한 소프트 유형 속성
◦ lifeCycleState
◦ lifecycleTemplate.name
◦ name
◦ number
◦ orgid
◦ view.identity
◦ partType
• For related ECN
◦ number
◦ orgid
◦ resolutionDate
• For promote
◦ number
◦ promotionDate
◦ orgid
◦ approvers
◦ approveDates
◦ reviewers
◦ reviewDates
|
|
소프트 유형 속성의 경우 CAD 도구로 전송되는 값은 객체의 정보 페이지에 나타나는 표시 값입니다. 표시 값은 속성 처리 기본 설정과 유형 및 속성 관리 설정을 사용하지만 렌더링용 데이터 유틸리티를 사용한 복잡한 디스플레이 사용자 정의는 지원하지 않습니다.
예를 들어, 검토 날짜 및 승인 날짜는 날짜 표시 형식에 대한 유형 및 속성 관리 설정인 dd-MM-yy를 따릅니다.
|
이 기능은 매개변수 삽입에 사용할 수 있는 사용자 정의 서버측 위임 CustomModeledAttributesDelegate가 없는 경우에만 사용할 수 있습니다(사용자 정의 위임은 아래의 다음 섹션 참조).
연관된 부품의 경우:
• 이 기능은 소유자, 사용자 정의 이미지, 이미지 및 사용자 정의 콘텐츠가 있는 CAD 문서와 관련된 부품을 지원합니다.
• 선택한 부품 버전은 CAD 문서 정보 페이지 관련 부품 테이블과 유사합니다.
• 동일한 부품의 둘 이상의 개정이 CAD 문서와 관련된 경우 각 부품의 최신 개정이 반환됩니다.
• 시스템이 다중 빌드 연관을 허용하도록 구성된 경우 서버측 기본 설정인 > > 이 예로 설정되어 있으면 두 개 이상의 부품이 반환될 수 있습니다. 이 경우 각 관련 부품에 대한 정보는 구분 형식으로 반환됩니다. 사용되는 구분 기호는 서버측 기본 설정 > 로 정의됩니다.
관련 ECN의 경우:
• CAD 문서 개정이 변경 공지에 결과 객체로 참여하면 ECN에 대한 속성이 CAD 매개변수로 전송됩니다.
• CAD 문서 개정이 둘 이상의 변경 공지에 참여하는 경우 사용되는 구분 기호는 서버측 기본 설정 > 로 정의됩니다.
• 거부된 ECN은 나열되지 않습니다.
수준 올리기 요청의 경우:
• CAD 문서 버전이 수준 올리기 요청에 참여하면 수준 올리기 요청에 대한 속성이 CAD 매개변수로 전송됩니다.
• CAD 문서 버전이 둘 이상의 수준 올리기 요청에 참여하는 경우 사용되는 구분 기호는 서버측 기본 설정 > 로 정의됩니다.
• 거부된 수준 올리기 요청은 나열되지 않습니다.
|
• resolutionDate는 CAD 문서와 관련된 변경 공지를 기반으로 합니다. 날짜 형식은 유형 및 속성 관리에서 형식을 설정하여 구성할 수 있습니다. 내부 이름인 resolutionDate를 사용하여 변경 공지 속성 형식을 지정합니다.
• promotionDate는 CAD 문서와 관련된 수준 올리기 요청을 기반으로 합니다. 날짜 형식은 유형 및 속성 관리에서 형식을 설정하여 구성할 수 있습니다. 내부 이름인 promotionDate를 사용하여 수준 올리기 요청 속성 형식을 지정합니다.
• approveDates 및 reviewDates는 수준 올리기 요청과 관련된 작업 항목을 기반으로 합니다. 날짜 형식은 유형 및 속성 관리에서 형식을 설정하여 구성합니다. 내부 이름인 thePersistInfo.modifyStamp를 사용하여 작업 항목 속성의 형식을 지정합니다.
|
사용자 정의 위임
비즈니스 프로세스에서 CAD 도구에 다른 속성을 전달해야 하는 경우 Windchill에서는 다운로드 시 Creo Parametric 모델에 매개변수를 삽입하는 데 사용할 수 있는 서버측 위임을 제공합니다. 이 메커니즘은 정보를 서버에서 Creo Parametric로 전달하는 데 사용할 수 있습니다. 여기서 다른 Creo Parametric 매개변수와 같이 사용 가능합니다(예: 정보를 드로잉 양식에 추가할 때). "PTC" 또는 "PROI"로 시작하는 매개변수는 예약된 시스템 매개변수로 취급되며, 사용자 정의를 통해 전파할 수 없습니다. 이러한 매개변수를 사용자 정의로 추가한 경우 이 매개변수는 다운로드 서비스에 의해 무시됩니다.
|
이 기능은 타사 CAD 도구와 Windchill Workgroup Manager의 모든 통합에 적용됩니다.
|
|
사용자 정의된 매개변수는 다운로드 시 클라이언트에 제공되며, PTC_WM_ITERATION 등의 시스템 매개변수와 달리 Windchill 작업(예: 체크 인) 후 Creo Parametric 세션 또는 로컬 캐시에서 업데이트되지 않습니다.
예를 들어 사용자 정의된 매개변수에 CAD 문서 번호 값을 지정할 경우 그 값은 모델 다운로드 시 클라이언트에게 제공됩니다. 나중에 CAD 문서 번호가 다시 지정되는 경우 Creo Parametric 세션 또는 클라이언트 캐시의 값은 자동으로 업데이트되지 않습니다.
|
Windchill 서비스 위임 메커니즘을 사용하여 사용자 정의를 할 수 있습니다. 다음 단계는 사용자 정의 프로세스에 대한 설명입니다.
1. PTC 클래스와는 별도로 고객별 위치에 인터페이스 ModeledAttributesDelegate를 구현하는 Java 클래스를 작성합니다(예: <WT_HOME>\com\acme). 인터페이스 정의는 다음과 같습니다.
package com.acme.download;
import static org.junit.Assert.assertTrue;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate;
import java.util.Iterator;
import wt.epm.EPMDocument;
import wt.fc.collections.WTCollection;
import wt.fc.collections.WTHashSet;
import wt.preference.PreferenceHelper;
import wt.util.WTException;
/**
* When CustomizedModeledAttributesDelegate is configured following modeled attributes would be added to the CAD
* Document, which would be combination of custom CURRENT_DATE parameter along with Parameters configured in mentioned
* preference "Mapping Custom System Attributes and File Properties". For eg.When preference "Mapping Custom System
* Attributes and File Properties" set with value as
* -CREO_PART_REVISION:associatedPart.revision,CREO_PART_VIEW:associatedPart.view.identity,ECN_NUMBER:relatedECN.number
* Modeled attributes on CAD Document would be- CREO_PART_REVISION=A, ECN_NUMBER=00192, CREO_PART_VIEW=Design,
* CURRENT_DATE=2023/10/11 05:07
*/
public class CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate {
private static final String CUSTOM_SYSTEM_PARAMS_PREF = "system.attribute.mapping.custom";
private static final String PROE = "PROE";
private static final String CURRENT_DATE = "CURRENT_DATE";
// getAvailableAttributes() returns
// HashMap<String, Object> which contains
// HashMap<Attribute name, Attribute type> @Override
public HashMap getAvailableAttributes() {
System.out.println(
"Invoked CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate :: getModeledAttributes() :Returning an empty list of modeled Attributes.");
return new HashMap();
}
/**
* Returns a map of modeled attributes for the EPMDocument objects in the provided collection. This method retrieves
* the modeled attributes from the PTC default implementation.
*
* @param collection a collection of EPMDocument objects for which to retrieve the modeled attributes
* @return a map of modeled attributes for the provided EPMDocument objects
* @throws WTException if an exception occurs while retrieving the modeled attributes
*/
@Override
public HashMap getModeledAttributes(
final Collection collection)
throws WTException {
System.out.println(
"Invoked CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate :: getModeledAttributes() ");
String prefValue = (String) PreferenceHelper.service.getValue(CUSTOM_SYSTEM_PARAMS_PREF,
PROE);
System.out.println("CustomizedModeledAttributesDelegate prefValue " + prefValue);
HashMap objVsAttrNameVsValue = new HashMap();
// Fetching only EPMDocuments from input collection.
WTCollection inEPMDocs = new WTHashSet(collection).subCollection(EPMDocument.class);
Iterator persistableIterator = inEPMDocs.persistableIterator();
if (prefValue != null && (!prefValue.isBlank())) {
while (persistableIterator.hasNext()) {
EPMDocument anEPMDoc = (EPMDocument) persistableIterator.next();
objVsAttrNameVsValue = super.getModeledAttributes(collection);
Map<String, String> attrNameVsValueMap = (Map<String, String>)objVsAttrNameVsValue.get(anEPMDoc);
assertTrue(attrNameVsValueMap != null);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
LocalDateTime now = LocalDateTime.now();
attrNameVsValueMap.put(CURRENT_DATE, dtf.format(now).toString());
System.out.println("CustomizedModeledAttributesDelegate attrNameVsValueMap " + attrNameVsValueMap);
return objVsAttrNameVsValue;
}
}
System.out
.println("Could not find CustomizedModeledAttributesDelegate extends DefaultModeledAttributesDelegate");
return objVsAttrNameVsValue;
}
} // end class
2. PTC에서 제공하는 사용자 정의 시스템 속성은 기본적으로 DefaultModeledAttributesDelegate에서 사용할 수 있습니다. 그러나 site.xconf 파일(<Windchill>에 있음)은 서버의 사용자 정의 서비스를 가리키도록 변경할 수 있습니다.
◦ serviceClass 값 대신 해당 클래스의 경로를 사용합니다(즉, com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate를 해당 클래스의 경로로 대체함). 예를 들면 다음과 같습니다.
<Service context="default"
name="com.ptc.windchill.uwgm.proesrv.c11n.ModeledAttributesDele
gate" targetFile=codebase/service.properties">
<Option cardinality="singleton"
requestor="java.lang.Object"
serviceClass="com.acme.download.CustomizedModeledAttributesDelegate"/>
</Service>
◦ xconfmanager 도구를 사용하여 변경 사항을 service.properties 파일에 적용합니다(xconfmanager -p 실행).
3. 메소드 서버를 다시 시작합니다.