Modifica del delegato (Autodesk Inventor)
Delegato predefinito
Windchill fornisce un meccanismo predefinito per passare informazioni aggiuntive correlate al documento CAD come parametri di sistema personalizzati.
Per personalizzare i parametri, impostare la preferenza lato server, > a livello di sito.
• Il valore è un elenco di attributi aggiuntivi ricavati dagli oggetti correlati al documento CAD visualizzati nello strumento CAD come parametri o proprietà.
• Il valore è un elenco separato da virgole di coppie di proprietà CAD e attributi Windchill nel formato seguente:
<name_of_CAD_property>:<relatedObjectCode>.<WindchillAttributeName>
dove:
Valore
|
Descrizione
|
Valori possibili
|
name_of_CAD_property
|
Si tratta del nome del parametro o della proprietà nello strumento CAD
|
PART_REVISION
|
relatedObjectCode
|
Si tratta della stringa utilizzata per identificare l'oggetto correlato
|
• docMaster
• associatedPart
• relatedECN
• promote
|
WindchillAttributeName
|
Si tratta del nome logico o del nome interno dell'attributo in Windchill per l'oggetto correlato.
|
• Attributi di tipo soft su master del documento CAD
• Attributi della parte
◦ Attributo di tipo soft sulla parte correlata di tipo booleano, data, numero intero, reale, reale con unità o stringa
◦ lifeCycleState
◦ lifecycleTemplate.name
◦ name
◦ number
◦ orgid
◦ view.identity
◦ partType
• For related ECN
◦ number
◦ orgid
◦ resolutionDate
• Per promote
◦ number
◦ promotionDate
◦ orgid
◦ approvers
◦ approveDates
◦ reviewers
◦ reviewDates
|
|
Per gli attributi di tipo soft, i valori inviati allo strumento CAD sono i valori di visualizzazione visti in Informazioni dell'oggetto. I valori di visualizzazione utilizzano le preferenze Gestione attributi e le impostazioni Gestione tipi e attributi, ma non supportano le personalizzazioni di visualizzazione complesse utilizzando le utilità dati per il rendering.
|
Questa funzionalità può essere utilizzata solo se non si dispone di un delegato lato server personalizzato CustomModeledAttributesDelegate da utilizzare per inserire parametri (vedere la sezione successiva seguente per Delegato personalizzato).
Per la parte associata:
• Questa funzionalità supporta le parti correlate a Documento CAD con Proprietario, Immagine contribuente, Immagine e Contenuto contribuente.
• La versione parte selezionata è simile alla tabella delle parti correlate della pagina delle informazioni di Documento CAD.
• Se al documento CAD sono associate più revisioni della stessa parte, viene restituita la revisione più recente di ogni parte.
• È possibile che vengano restituite più parti se il sistema è configurato in modo da consentire più associazioni di creazione, con la preferenza lato server > > impostata su Sì. In questo caso, le informazioni relative a ciascuna parte correlata vengono restituite in un formato delimitato. Il delimitatore utilizzato è definito dalla preferenza lato server > .
Per la notifica di modifica correlata:
• Quando la revisione del documento CAD partecipa alla notifica di modifica come oggetto risultante, gli attributi sulla notifica di modifica vengono inviati al parametro CAD.
• Se la revisione del documento CAD partecipa a più di una Notifica di modifica, il delimitatore utilizzato viene definito dalla preferenza lato server > .
• Le notifiche di modifica rifiutate non sono elencate.
Per la richiesta di promozione:
• Quando la versione del documento CAD partecipa alla richiesta di promozione, gli attributi relativi alla richiesta di promozione vengono inviati al parametro CAD.
• Se la revisione del documento CAD partecipa a più di una Richiesta di promozione, il delimitatore utilizzato viene definito dalla preferenza lato server > .
• La richiesta di promozione rifiutata non è elencata.
Delegato personalizzato
Windchill fornisce un delegato lato server che può essere utilizzato per inserire parametri in una parte dell'applicazione di creazione durante il download. Questo meccanismo consente di trasmettere informazioni dal server fino all'applicazione di creazione, dove può essere utilizzato come qualsiasi altro parametro dell'applicazione di creazione, ad esempio per inserire informazioni nei moduli di disegno. I parametri che iniziano con PTC o PROI vengono considerati parametri di sistema riservati e non possono essere propagati con la personalizzazione. Se vengono aggiunti nella personalizzazione, vengono ignorati dal servizio di download.
|
• Se si configura il sistema per l'utilizzo di un delegato personalizzato, gli attributi definiti nella preferenza lato server, > non vengono utilizzati. Solo il delegato PTC controlla questa preferenza.
• I parametri personalizzati vengono forniti al client durante il download e non vengono aggiornati nella sessione dell'applicazione CAD dopo un'operazione Windchill, ad esempio il Check-In. Se, ad esempio, a un parametro personalizzato viene assegnato come valore il numero del documento CAD, questo valore viene fornito al client al momento del download. Se successivamente il documento CAD viene rinumerato, il valore nella sessione dell'applicazione di creazione o nella cache del client non viene aggiornato automaticamente. Il meccanismo di delega del servizio Windchill viene utilizzato per consentire la personalizzazione.
|
Per la personalizzazione, attenersi alla procedura descritta di seguito.
1. Creare una classe Java che implementi l'interfaccia ModeledAttributesDelegate in una posizione specifica del cliente distinta dalle classi PTC (ad esempio, <WT_HOME>\com\acme). La definizione dell'interfaccia è la seguente:
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. Gli attributi di sistema personalizzati forniti da PTC sono disponibili per impostazione predefinita in DefaultModeledAttributesDelegate. Tuttavia, il file site.xconf, disponibile in <Windchill>, può essere modificato in modo che punti al servizio di personalizzazione nel server.
◦ Utilizzare il percorso della classe al posto del valore di com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate, ovvero sostituire serviceClass con il percorso della classe. Esempio:
<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>
◦ Utilizzare lo strumento xconfmanager per applicare le modifiche al file service.properties (eseguire xconfmanager -p).
3. Riavviare il method server.