Fonctionnalités supplémentaires de Windchill > Gestion des processus de fabrication > Personnalisation de l'Explorateur de structures produit de fabrication > Personnalisation de l'Explorateur de structures produit pour les sous-types
  
Personnalisation de l'Explorateur de structures produit pour les sous-types
Objectif
Vous avez utilisé l'utilitaire Gestion d'attributs et de types pour définir les sous-types de WTPart, et vous avez éventuellement ajouté des attributs à WTPartUsageLink. Bien que ces types et attributs apparaissent généralement dans l'Explorateur de structures produit sans personnalisation, vous souhaitez contrôler l'affichage de ces attributs dans cet Explorateur.
Arrière-plan
Généralement, la sélection d'un type d'article dans l'Explorateur de structures produit détecte automatiquement si les sous-types ont été définis avec l'utilitaire Gestion d'attributs et de types. Les attributs seront automatiquement demandés et affichés. Cette opération est effectuée dans les fichiers XML de l'Explorateur de structures produit par l'intermédiaire d'entrées référençant les définitions d'attribut avec les ID suivants :
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Bien que ces entrées soient utiles, elles ne permettent pas de contrôler l'ordre d'affichage. En outre, certaines valeurs peuvent être définies par programme sur le serveur ; l'utilisateur ne doit donc pas être autorisé à spécifier ces valeurs.
Considérons l'exemple simple selon lequel l'attribut réutilisable myDescription a été ajouté à la définition de base de l'article WTPart. Un article myMechanical a été défini dans l'utilitaire Gestion d'attributs et de types avec les attributs myCost et myWeight, et WTPartUsageLink a été étendu pour disposer d'un attribut réutilisable myColor.
La procédure d'insertion d'un nouvel article myMechanical dans un assemblage entraîne l'affichage des écrans ci-après.
L'assistant Insérer nouveau présente une liste déroulante de types instanciables. L'utilisateur sélectionne l'article "myMechanical".
Une fois que le Nom et d'autres propriétés ont été spécifiés, la dernière étape de l'assistant demande l'attribut réutilisable ; bien que la colonne Attribut puisse être triée, l'ordre par défaut n'est pas contrôlé.
L'onglet Informations de l'article myMechanical présente tous les attributs, mais sans aucun ordre de tri. Les attributs figurant dans la partie supérieure de l'écran représentent le jeu fixe applicable pour l'identification de cet objet ; certains de ces attributs peuvent ne pas être pertinents. Les attributs indiqués dans le tableau modifiable inférieur comprennent les attributs hérités de WTPart et n'apparaissent dans aucun ordre précis.
L'attribut myColor n'apparaît pas sous l'onglet Composants, mais il peut être utile que l'utilisateur en connaisse la valeur avec celle des autres attributs UsageLink.
La personnalisation des fichiers XML de l'Explorateur de structures produit permet de demander explicitement que ces attributs soient présentés à l'utilisateur. Ceci affecte généralement l'onglet Informations, ainsi que les assistants Créer un article et Insérer un article.
Portée/applicabilité/hypothèses
Etant donné que ces modifications sont apportées aux fichiers XML de l'Explorateur de structures produit, elles s'appliqueront à tous les utilisateurs de cet Explorateur.
Résultats attendus
Considérons l'exemple décrit ci-dessus.
Lors de la spécification des attributs du nouvel article, les attributs de la dernière étape de l'assistant s'affichent dans l'ordre défini dans les fichiers XML de l'Explorateur de structures produit.
Les attributs figurant dans le tableau inférieur de l'onglet Informations peuvent également être ordonnés.
Le tableau de nomenclature de composants peut être configuré de façon à afficher l'attribut de lien de cas d'emploi.
Solution
Pour l'attribut dataType, définissez un nouvel élément ExplorerElementGroup avec l'application de contexte "ptc.wnc.StructureExplorer". Dans cet élément, définissez le contenu des tableaux d'attribut.
Cette personnalisation peut entraîner la définition de nombreux types d'articles WTPart. Ces définitions d'élément peuvent être ajoutées au fichier
<Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer/Explorer ForTablesAndPanels.xml
Toutefois, la taille de ce fichier ne cesse de croître et complique l'identification des extensions de client. Il est donc recommandé de créer un fichier par type d'article paramétré pour y stocker la personnalisation.
Les éléments AttributeTable présentant les identificateurs ptc.wnc.exp.CreatPartTab3, ptc.wnc.exp.CreatePartNoUsageLinkTab3 et ptc.wnc.exp.EditPropertiesTable sont définis pour chaque attribut dataType.
Ces attributs sont ajoutés sous l'onglet Composants via l'inclusion de l'élément CellDefinition approprié pour le tableau avec l'identificateur ptc.wnc.exp.PartUsesLinkTable dans le fichier ExplorerForTablesAndPanels.xml.
Connaissances préalables
Pour atteindre cet objectif, vous devez disposer d'une bonne connaissance des éléments suivants :
gestion des personnalisations de fichier XML ;
Eléments de la solution
Elément
Type
Description
ExplorerForTableAndPanels.xml
Fichier XML
Contient la définition des tableaux et des panneaux de l'Explorateur de structures produit.
Situé dans :
<Windchill>/codebase/config/logicreposi
tory/xml/structureexplore
LogicContext
Elément XML
Spécifie l'application et le type de données auxquels la définition doit s'appliquer.
AttributeTable
Elément XML
Définit le tableau d'attribut et son contenu.
CellDefinition
Elément XML
Indique l'attribut à afficher dans le tableau d'attribut avec le comportement approprié.
Placement remove=”true”
Elément XML
La chaîne "Remove=true" permet d'empêcher l'affichage d'une propriété dû à une relation d'héritage.
Procédure
Vous pouvez soit créer un fichier représentant l'article paramétré (myMechanical.xml) dans le répertoire :
Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer
et y insérer les lignes ci-après, soit ajouter l'élément ExplorerElementGroup au fichier
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE LogicRepository SYSTEM
"/config/logicrepository/dtd/LogicRepository.dtd">
<LogicRepository>
<ExplorerElementGroup>
<LogicContext application="ptc.wnc.StructureExplorer"
dataType="com.aprilia.www.myMechanical"/>
<AttributeTable id="ptc.wnc.exp.CreatePartTab3">
<Table id="Table" displayMode="edit">
<!-- These 3 entries remove the inherited entries from WTPart -->
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition
id="ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts and UsageLink in
the specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition
attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myColor">
<AttributeDefinition
attributeId="com.aprilia.www.myColor"
imageName="com/ptc/windchill/explorer/config/images/uses
Tab.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.NewObjectAttrTableAA"/>
</AttributeTable>
<AttributeTable
id="ptc.wnc.exp.CreatePartNoUsageLinkTab3">
<Table id="Table" displayMode="edit">
<!-- These 2 entries remove the inherited entries from WTPart -->
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts in the specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.NewObjectAttrTableAA"/>
</AttributeTable>
<AttributeTable id="ptc.wnc.exp.EditPropertiesTable">
<Table id="Table" displayMode="edit">
<!-- These 3 entries remove the inherited entries from WTPart -->
<CellDefinition id="source">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="partType">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition>
id="ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts and UsageLink in the
specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition
attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myColor">
<AttributeDefinition
attributeId="com.aprilia.www.myColor"
imageName="com/ptc/windchill/explorer/config/images/usesTab.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.EditPropertiesTableAA"/>
</AttributeTable>
</ExplorerElementGroup>
</LogicRepository>
Grâce à cette opération, les attributs sont demandés dans l'assistant et dans l'onglet Informations, comme illustré à la section "Résultats attendus".
Pour ajouter l'attribut réutilisable à l'onglet Composants, ouvrez le fichier :
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
Recherchez l'entrée Table présentant l'identificateur ptc.wnc.exp.PartUsesLinkTabTable, puis ajoutez le code suivant :
<CellDefinition id="myColor" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myColor">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
* 
Tout élément <AttributionDefinition> défini sur un objet autre qu'un article WTPart doit être désigné soit sous sa forme complète, soit via l'utilisation d'un attribut logique que vous avez défini.
Vous devrez redémarrer le serveur de méthodes pour que ces modifications soient prises en compte.
Personnalisation supplémentaire
Pour étendre l'exemple ci-dessus, prévoyez d'ajouter l'attribut "myDescription" à l'onglet Composants. Lors de la modification de cet attribut de chaîne, l'utilisateur peut avoir besoin de spécifier un grand nombre de caractères ; toutefois, la taille de la cellule peut compliquer cette opération. Il est donc possible d'associer un autre utilitaire de rendu à cet attribut pour qu'il affiche une boîte de dialogue lors de la modification de sa valeur, ce qui permettra à l'utilisateur d'entrer de nombreuses lignes de texte.
Ouvrez le fichier :
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
Recherchez l'entrée Table présentant l'identificateur ptc.wnc.exp.PartUsedLinkTabTable, puis ajoutez le code suivant :
<CellDefinition id="myDescription" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myDescription"
rendererClass="com.ptc.windchill.explorer.structureexplorer.renderer.component.
MultilineStringComponent">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
Si nous considérons l'exemple de l'article Golf Cart, cette opération entraînera la présentation de la boîte de dialogue ci-après lors de la sélection du bouton "…" dans la cellule.
Il est également possible d'appliquer cet utilitaire de rendu aux attributs de l'onglet Informations.
Points de personnalisation
La section "Arrière-plan" de cette rubrique mentionne certains attributs spéciaux définis dans le fichier LogicalAttributes.xml qui permettent à l'Explorateur de structures produit d'afficher différents attributs pour une même définition. Ces tâches comprennent :
Format logique
Description
ALL_SOFT_ATTRIBUTES
Tous les attributs réutilisables persistants sur l'objet
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
Tous les attributs réutilisables associés à la classification de l'objet
ALL_SOFT_NON_SCHEMA_ATTRIBUTES
Tous les attributs réutilisables persistants sur l'objet et non associés au type de l'objet
ALL_SOFT_SCHEMA_ATTRIBUTES
Tous les attributs réutilisables associés au type de l'objet
ALL_SOFT_NON_CLASSIFICATION_SCHEMA_ATTRIBUTES
Tous les attributs réutilisables associés au type de l'objet et non associés à la classification de l'objet
ALL_SOFT_NON_CLASSIFICATION_ATTRIBUTES
Tous les attributs réutilisables persistants sur l'objet et non associés à la classification de l'objet
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Dans le contexte d'un article, tous les attributs réutilisables sur le ou les liens de cas d'emploi de l'article qui sont associés au type de ce lien
ALL_SOFT_SCHEMA_ATTRIBUTES_FOR_INPUT_TYPE
Tous les attributs réutilisables associés au type spécifié dans le filtre, qui peut être un supertype de l'objet réel
Dans la révision 9, l'Explorateur de structures produit utilise les attributs ci-après dans la définition du tableau d'attribut de l'onglet Informations (ainsi que dans la boîte de dialogue Nouveau de l'onglet Informations) :
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
L'utilisation de l'attribut ALL_SOFT_ATTRIBUTES au lieu de l'attribut ALL_SOFT_SCHEMA_ATTRIBUTES ou l'ajout d'une entrée pour ALL_SOFT_NON_SCHEMA_ATTRIBUTES autorise le remplissage automatique des attributs à afficher à partir de l'application CAO.