Настройка шаблона источника для создания производственных структур
Задача
Настройте логику по умолчанию, чтобы разрешить технологический процесс или шаблон плана маршрутизации в списке Источник.
Решение
Используйте стандартную платформу делегата для создания дочерних структур с использованием шаблона, предоставляя при этом возможность расширения и применения пользовательской логики для заполнения списка Источник в диалоговом окне Инициализировать производственные структуры.
Необходимые предварительные знания
Для выполнения этого задания необходимо понимание следующих понятий:
• Java Fundamentals (наследование, наборы)
• Делегаты Windchill и утилита xconfmanager
Элементы решения
• RelatedSourceDelegate
Абстрактный класс, вызываемый Windchill для получения исходных шаблонов для дубликатов деталей или деталей, сохраненных в действии "Сохранить как".
• DefaultRelatedSourceDelegate
Готовая к применению реализация для вызова шаблонов источника.
• CustomRelatedSourceDelegate
Пользовательская реализация, адаптированная к шаблонам источника на основе потребностей проекта.
Процедура
Чтобы применить пользовательскую логику для вызова шаблона, выполните следующие шаги:
1. Создайте новый класс делегатов, например CustomRelatedSourceDelegate, путем расширения элемента DefaultRelatedSourceDelegate.
2. Зарегистрируйте делегат в файле BaseServer-service.properties.xconf.
3. Переопределите методы в соответствии с требованиями.
a. getSourceTemplates - настройка логики вызова шаблонов плана маршрутизации.
b. getSourceProcessPlans - настройка логики вызова шаблонов технологического процесса.
4. Выполните xconfmanager -p, чтобы распространить изменения.
5. Чтобы изменения вступили в силу, перезапустите сервер методов.
Готовая к применению реализация
Ниже приведена готовая к применению реализация для вызова планов маршрутизации источника:
Пример фрагмента кода 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;
}