Personnalisation du modèle source pour la génération des structures de fabrication
Objectif
Personnalisez la logique par défaut pour résoudre le modèle de gamme ou de plan de routage dans la liste Source.
Solution
Utilisez la structure de délégué prête à l'emploi pour générer des structures en aval à l'aide d'un modèle, tout en offrant la possibilité d'étendre et d'appliquer une logique personnalisée pour le remplissage de la liste Source dans la boîte de dialogue Initialiser les structures de fabrication.
Connaissances préalables
Pour effectuer cette tâche, vous devez disposer d'une bonne connaissance des éléments suivants :
• Principes de base de Java (héritage, collections)
• Délégués Windchill et utilitaire xconfmanager
Eléments de la solution
• RelatedSourceDelegate
Classe abstraite appelée par Windchill pour récupérer les modèles source des articles dupliqués ou Enregistrer sous.
• DefaultRelatedSourceDelegate
Implémentation prête à l'emploi pour récupérer les modèles source.
• CustomRelatedSourceDelegate
Implémentation personnalisée conçue pour résoudre les modèles source en fonction des besoins du projet.
Procédure
Pour implémenter une logique personnalisée pour la récupération du modèle, procédez comme suit :
1. Créez une nouvelle classe de délégué, telle que CustomRelatedSourceDelegate, en étendant DefaultRelatedSourceDelegate.
2. Enregistrez le délégué dans le fichier BaseServer-service.properties.xconf.
3. Remplacez les méthodes selon vos besoins :
a. getSourceTemplates : personnalisez la logique de récupération des modèles de plan de routage.
b. getSourceProcessPlans : personnalisez la logique de récupération des modèles de gamme.
4. Exécutez xconfmanager -p pour propager les modifications.
5. Redémarrez le serveur de méthodes pour appliquer les modifications.
Implémentation prête à l'emploi
Voici une implémentation prête à l'emploi pour la récupération des plans de routage source :
Exemple d'extrait XCONF
Voici un exemple de configuration XCONF qui enregistre votre délégué personnalisé :
<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>
Exemple d'implémentation
L'exemple suivant présente une implémentation personnalisée d'un délégué source associé qui récupère les gammes source auprès d'un autre système d'aide (par exemple, une liste d'OID de gamme à partir d'un attribut d'article).
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;
}