Définition des jeux d'attributs
Fichiers de configuration AttributeSet
La définition de marquage de l'élément AttributeSet permet de définir le comportement par défaut des commandes include et exclude pour chaque classe d'attribut. Les fichiers de configuration de l'élément AttributeSet se trouvent à l'emplacement suivant :
<Windchill-path>\codebase\com\ptc\arbortext\windchill\siscore\attset\xml
Lorsque vous définissez un ensemble d'attributs dans un fichier de configuration, veillez à regrouper tous ceux qui présentent le même type.
Plusieurs fichiers de configuration sont disponibles :
localizable_attset.xml
Définit le jeu d'attributs à envoyer dans un fichier XLIFF, à des fins de traduction. Par exemple, deux sections du fichier identifient l'attribut name :
<Type name="com.ptc.sis.Base">
<Attribute action="include" name="name"/>
<Attribute action="include" name="organizationName"/>
<Attribute action="include" name="number"/>
</Type>
<Type name="com.ptc.arbortext.windchill.partlist.PartList">
<Attribute action="include" name="name"/>
</Type>
manifest_attset.xml
Définit un ensemble d'attributs à envoyer en tant que métadonnées dans le manifeste. Par exemple, une section du fichier identifie les attributs des listes d'articles :
<Type name="com.ptc.arbortext.windchill.partlist.PartList">
<Attribute action="include" name="name" />
<Attribute action="include" name="organizationName" />
<Attribute action="include" name="number" />
<Attribute action="include" name="versionIdentifer.versionId" />
<Attribute action="include" name="iteration" />
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<Attribute action="include" name="thePersistInfo.createStamp" />
<Attribute action="include" name="type" />
</Type>
publishable_attset.xml
Définit l'ensemble d'attributs à envoyer à Arbortext Publishing Engine en tant que métadonnées pour la publication. Par exemple, une section du fichier identifie les attributs d'une structure de publication :
<Type name="com.ptc.sis.PsRoot">
<Attribute action="include" name="lifeCycleState" type="enum"
token="wt.lifecycle.State">
</Attribute>
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<Attribute action="include" name="orgid" />
<Attribute action="exclude" name="securityLabels.internalValue" />
<Attribute action="exclude" name="view" />
<Attribute action="include" name="name" />
<Attribute action="exclude" name="lineNumber" />
<Attribute action="exclude" name="quantityAmount" />
<Attribute action="exclude" name="quantityUnit" />
<Attribute action="exclude" name="traceCode" />
<Attribute action="exclude" name="state.state" />
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<!-- don't remove. It is used in downstream -->
<Attribute action="include" name="thePersistInfo.updateStamp" />
<!-- don't remove. It is used in downstream -->
</Type>
Les attributs de liste énumérée issus de Windchill sont publiés en tant que métadonnées pour l'objet. Dans l'exemple suivant, la liste énumérée est la clé ”INWORK”, tandis que la valeur In Work correspond au nom :
<Property token="lifeCycleState">
<Value key="INWORK">In Work</Value>
</Property>
Dans l'extrait de fichier, l'attribut d'identification reflète à la fois le nom et la liste énumérée pour lifeCycleState, où l'attribut token associé indique le nom de classe Java complet pour la liste énumérée (dans ce cas précis, wt.lifecycle.State).
Vous pouvez spécifier les attributs des catégories de classification d'articles. Dans ce cas, les attributs de classification enfants sont automatiquement inclus ou exclus. Vous pouvez exclure l'attribut de classification principal afin d'écarter tous les attributs enfants associés à la classification. Pour en savoir plus sur les attributs de classification, consultez la section Classification d'articles dans Windchill.
* 
Dans le document publishable_attset.xml, évitez de modifier ou de supprimer des actions include d'attribut pour thePersistInfo.modifyStamp et thePersistInfo.updateStamp. Ces actions sont spécifiées tout au long du fichier et sont utilisées dans des paquets pour Arbortext Content Delivery.
Si vous implémentez un sous-type personnalisé, vous devez ajouter ces instructions à votre spécification.
referencedObjects_attset.xml
Définit le jeu d'attributs faisant référence à d'autres objets de Windchill à inclure dans le fichier referencedObjects.xml au sein d'un paquet. Par exemple, une section du fichier identifie les attributs des documents dynamiques (sous-type des éléments EPMDocuments) :
<Type name="wt.epm.EPMDocument">
<Attribute action="include" name="missingDependents" />
<Attribute action="include" name="placeHolder" />
<Attribute action="include" name="revisionNumber" />
<Attribute action="include" name="derived" />
<Attribute action="include" name="name" />
<Attribute action="include" name="number" />
<Attribute action="include" name="CADName" />
<Attribute action="include" name="docType" />
<Attribute action="include" name="docSubType" />
<Attribute action="include" name="authoringApplication" />
<Attribute action="include" name="versionIdentifer.versionId" />
<Attribute action="include" name="thePersistInfo.modifyStamp" />
<Attribute action="include" name="thePersistInfo.createStamp" />
<Attribute action="include" name="iteration" />
<Attribute action="include" name="type" />/Type>
Un attribut qui référence un autre objet doit être explicitement défini pour être traité en tant qu'attribut de référence.
publishinfo_attset.xml
Définit un ensemble d'attributs à inclure ou à exclure dans le fichier publishinfo.xml de champ de données associé à la structure de service à publier. Par exemple, par défaut, le fichier indique que les structures de publication et d'informations (identifiées par leur type) incluent le nom, le numéro et le nom de l'organisation de la structure à publier :
Type name="com.ptc.sis.PsRoot">
<Attribute action="include" name="name" />
<Attribute action="include" name="number" />
<Attribute action="include" name="orgName" />
</Type>
<Type name="com.ptc.sis.IsRoot">
<Attribute action="include" name="name" />
<Attribute action="include" name="number" />
<Attribute action="include" name="orgName" />
</Type>
Commande de mise à jour AttributeSet
Les modifications apportées à un fichier de jeu d'attributs peuvent ne pas se charger immédiatement, par exemple si vous attendez l'exécution d'une tâche de publication mise à jour. Une fois que vous avez apporté les modifications au fichier de configuration de jeu d'attributs, effectuez un redémarrage de serveur dans le shell Windchill afin de les activer.
Si le redémarrage de Windchill n'est pas immédiatement possible, tentez d'effacer manuellement le cache :
1. Ouvrez une commande shell Windchill.
2. Entrez la commande suivante :
windchill com.ptc.arbortext.windchill.publisher.cmdline.
CleanCacheAttibuteSet
La commande efface le cache, tandis que les modifications sont traitées plus rapidement.
Catégories d'attribut Windchill
LWCIBAAttDefinition – Attributs d'instance
LWCHardAttDefinition – Attributs modélisés
LWCLogicalAttDefinition – Attributs logiques
LWCNonPersistedAttDefinition – Attributs non persistants
LWCFlexAttDefinition – Attributs paramétrés (précédemment appelés Attributs flexibles)
LWCAttributeSetAttDefinition – Jeux d'attributs
Attributs de type applicables aux structures
Le tableau ci-après affiche la liste des attributs de type personnalisables :
Nom et type
Format logique (nom de type non complet)
Description
Article, noeud de structure
wt.part.WTPart
Article (modélisé)
Base d'informations, noeud de structure
com.ptc.sis.Base
Type de base abstrait dérivé de WTPart pour tous les objets de structure de publication et de structure d'information.
Base de division, noeud de structure
com.ptc.sis.BaseDiv
Classe de base abstraite pour les types de division utilisés dans la structure de publication et la structure d'information.
Structure de publication, noeud de structure
com.ptc.sis.PsRoot
Objet racine de la structure de publication.
Section de publication, noeud de structure
com.ptc.sis.PsSection
Divisions ou sections d'une structure de publication.
Structure d'information, noeud de structure
com.ptc.sis.IsRoot
Objet racine de la structure d'information.
Groupe d'information, noeud de structure
com.ptc.sis.IsGroup
Division ou section de la structure d'information.
Base de contenu, noeud de structure
com.ptc.arbortext.sis.Content
Base abstraite pour les références de contenu et les noeuds spéciaux.
Conteneur, noeud de référence
com.ptc.sis.ContentRef
Référence générique aux fichiers de contenu.
Conteneur d'illustration, noeud de référence
com.ptc.sis.IllustrationRef
Référence à un document dynamique graphique.
Conteneur de liste d'articles, noeud de référence
com.ptc.sis.PartsListRef
Référence à un objet de liste d'articles.
Conteneur de texte, noeud de référence
com.ptc.sis.TextualContentRef
Référence à un document dynamique (XML, PDF, texte, etc.).
Base spéciale, noeud de structure
com.ptc.sis.PsSpecial
Base abstraite représentant des marqueurs textuels générés.
Table des matières, noeud de structure
com.ptc.sis.PsToc
Marqueur d'une structure de publication indiquant l'emplacement d'une TDM.
Index, noeud de structure
com.ptc.sis.PsIndex
Marqueur d'une structure de publication indiquant l'emplacement d'un index.
Lien de cas d'emploi d'information, objet référencé
com.ptc.sis.BaseUsageLink
Lien entre deux noeuds de base utilisés pour créer des structures Windchill Service Information Manager (modélisées).
Lien de cas d'emploi d'article, objet référencé
wt.part.WTPartUsageLink
Lien entre deux noeuds WTPart utilisés pour la création de structures (modélisées).
Liste d'articles, objet référencé
com.ptc.arbortext.windchill.partlist.PartList
Conteneur de liste d'articles pour les éléments de liste d'articles (modélisés).
Elément de liste d'articles, objet référencé
com.ptc.arbortext.windchill.partlist.PartListItem
Elément de liste d'articles relié à un article réel (modélisé).
EPMDocument, objet référencé
wt.epm.EPMDocument
Tout élément EPMDocument. Type de base d'un élément DynamicDocument (modélisé).
DynamicDocument, objet référencé
com.ptc.ptcnet.DynamicDocument
Document dynamique Arbortext à contenu textuel ou graphique.
Xliff Link, objet référencé
com.ptc.sis.XliffLink
Lien vers un document de traduction.
Elément AttributeSet
Définit l'action par défaut pour tous les attributs d'objet ou des classes spécifiques d'attributs. Les éléments Type enfants autorisent le remplacement du comportement par défaut des types Persistable.
<!ELEMENT AttributeSet ( Type* )>
<!ATTLIST AttributeSet
default (include | exclude) #IMPLIED
hard (include | exclude) #IMPLIED
soft (include | exclude) #IMPLIED
iba (include | exclude) #IMPLIED
logical (include | exclude) #IMPLIED
classification (include | exclude) #IMPLIED
nonPersisted (include | exclude) #IMPLIED
set (include | exclude) #IMPLIED
>
Les attributs de l'élément AttributeSet sont définis comme suit :
default
Action par défaut pour tous les attributs non inclus ou exclus par des tests plus spécifiques.
hard
Action par défaut pour tous les attributs hard (LWCHardAttDefinition) non inclus ou exclus par des tests plus spécifiques.
soft
Action par défaut pour tous les attributs soft (LWCFlexAttDefinition) non inclus ou exclus par des tests plus spécifiques.
iba
Action par défaut pour tous les attributs iba (LWCIBAAttDefinition) non inclus ou exclus par des tests plus spécifiques.
logical
Action par défaut pour tous les attributs logical (LWCLogicalAttDefinition) non inclus ou exclus par des tests plus spécifiques.
classification
Action par défaut pour tous les attributs classification non inclus ou exclus par des tests plus spécifiques. En cas d'absence de définition, la valeur de l'attribut iba est utilisée. Pour plus d'informations sur ces attributs, consultez la section Attributs de classification.
nonPersisted
Action par défaut pour tous les attributs nonPersisted (LWCNonPersistedAttDefinition) non inclus ou exclus par des tests plus spécifiques.
set
Action par défaut pour tous les attributs set (LWCAttributeSetAttDefinition) non inclus ou exclus par des tests plus spécifiques.
Par exemple :
<AttributeSet xmlns="http://www.ptc.com" default="exclude"
iba="include" soft="include" logical="include">
Elément Type
L'élément Type vous permet de définir les attributs Windchill sur include ou exclude pour un objet implémentant l'interface Persistable, qui permet aux objets d'être accessibles en lecture et en écriture dans la base de données. Les types sont des types modélisés ou des sous-types basés sur un type modélisé ou un autre sous-type. Les sous-types sont créés et gérés à l'aide du Gestionnaire d'attributs et de types ou des fichiers du chargeur.
<!ELEMENT Type ( Attribute* )>
<!ATTLIST Type
name CDATA #REQUIRED
token NMTOKENS #IMPLIED
default (include | exclude) #IMPLIED
>
Les attributs de l'élément Type sont définis comme suit :
name
Format logique d'un type paramétré ou modélisé. Les attributs de classification sont identifiés avec des valeurs name commençant par @.
token
Nom facultatif ou groupe de noms pouvant être utilisés pour associer une sémantique à ce type.
default
Action par défaut permettant d'exclure ou d'inclure tous les attributs de ce type ne disposant pas d'un paramètre plus spécifique.
Tous les types sont identifiés par une chaîne de nom de type appelée Logical Form (également connue en tant que LogicalID). Le format logique doit être unique au niveau du site étant donné qu'il identifie uniquement le type. Par exemple (ignorez le saut de ligne) :
com.ptc.ptcnet.DynamicDocument =>
WCTYPE|wt.epm.EPMDocument|com.ptc.ptcnet.DynamicDocument
wt.part.WTPart => WCTYPE|wt.part.WTPart
Le premier exemple est le nom du sous-type DynamicDocument de EPMDocument, tandis que le second est le nom du type modélisé wt.part.WTPart. Les formats logiques sont mis en correspondance avec le format externe du type. Dans le cas d'un type modélisé, le nom de classe Java de l'objet inclut le préfixe WCTYPE|. Dans le cas d'un sous-type, le nom correspond au nom du type de base (paramétré ou modélisé), suivi d'une barre verticale | et du nom du type défini par l'utilisateur. Le format logique est généralement le même que le dernier segment du format externe. Cependant, vous pouvez définir votre propre format logique à condition qu'il soit unique.
Par exemple :
<Type name="com.ptc.sis.PsRoot">
Elément Attribut
L'élément Attribute spécifie surtout s'il faut include ou exclude un attribut Windchill spécifique dans le jeu d'attributs. Il est également utilisé pour définir la sémantique d'un attribut ou de ses valeurs.
<!ELEMENT Attribute ( Choice* )>
<!ATTLIST Attribute
name CDATA #REQUIRED
token NMTOKENS #IMPLIED
type CDATA #IMPLIED
action (include | exclude) #REQUIRED
>
Les attributs de l'élément Attribute sont définis comme suit :
name
Nom de l'attribut au format logique.
token
Nom facultatif ou groupe de noms pouvant être utilisés pour associer une sémantique à cet attribut.
type
Une chaîne qui spécifie le type d'attribut à inclure ou exclure. La seule valeur prise en charge pour type est reference.
En précisant l'élément name de l'attribut et son type en tant que reference, vous définissez la valeur d'attribut en tant qu'objet référencé.
action
Action à exécuter pour cet attribut.
L'action, si elle est spécifiée, est le paramètre de priorité le plus élevé pour cet attribut. Il est possible d'omettre l'attribut action et d'autoriser le prochain paramètre de priorité le plus élevé à contrôler l'inclusion de cet attribut dans le jeu d'attributs.
Les attributs sont des types modélisés ou des attributs paramétrés. Les attributs paramétrés sont créés et gérés à l'aide du Gestionnaire d'attributs et de types ou des fichiers du chargeur. Tous les attributs sont identifiés par une chaîne de nom d'attribut appelée Logical Form. Le format logique doit être unique pour le type d'objet étant donné qu'il identifie uniquement l'attribut de ce type. Par exemple, la chaîne suivante met en correspondance le format logique d'un attribut avec son format externe :
name => MBA|masterReference^WCTYPE|wt.part.WTPartMaster~MBA|name
name => MBA|masterReference^WCTYPE|wt.doc.WTDocumentMaster~MBA|name
filename => MBA|masterReference^WCTYPE|wt.epm.EPMDocumentMaster~MBA|CADName
fileName => NPA|filename
La chaîne name sur un type donné n'identifie qu'un seul attribut. Le premier exemple identifie un attribut de modèle du type wt.part.WTPart. Le deuxième exemple identifie un attribut du type wt.doc.WTDocument. Le troisième exemple est l'attribut filename du type wt.epm.EPMDocument. Le dernier exemple déclare un alias pour le précédent attribut. Les types d'objet ne sont pas inclus dans le format externe de l'attribut.
Par exemple :
<Attribute action="include" name="lifeCycleState" token="STATE">
Si vous spécifiez l'élément name de l'attribut et son type en tant que reference, la valeur d'attribut est définie en tant qu'objet référencé et son URI (Uniform Resource Identifier) est transformé dans le champ de données afin que l'objet puisse être trouvé dans Arbortext Content Delivery.
Attribute action="include" name="PartListVersionRef" type=”reference”
Elément Choice
L'élément Choice définit la valeur possible d'un attribut. Il n'affecte pas l'inclusion ou l'exclusion de l'attribut dans le jeu d'attributs en cours de création. Il définit une plage de valeurs pour le traitement en aval. En outre, un jeton ou une liste de jetons peuvent être associés à une valeur pour donner à cette dernière une sémantique spéciale dans un processus en aval. Le contenu de l'élément Choice est une chaîne représentant une valeur possible pour l'élément Attribute parent.
<!ELEMENT Choice (#PCDATA) >
<!ATTLIST Choice
token NMTOKENS #IMPLIED
>
L'attribut token de l'élément Choice est défini en tant que nom facultatif ou groupe de noms pouvant être utilisés pour associer une sémantique à cette valeur.
Par exemple, pour étendre l'exemple Attribute :
<Attribute action="include" name="lifeCycleState" token="STATE">
<Choice name="Accepted" />
<Choice name="Approved" />
<Choice name="Closed" />
<Choice name="In Work" token="INWORK" />
<Choice name="Obsolete" token="OBSOLETE" />
<Choice name="Open" token="OPEN" />
</Attribute>
Calcul de l'inclusion du jeu d'attributs
Le fichier de configuration AttributeSet est conçu pour définir le jeu d'attributs à l'aide d'actions explicites à des niveaux variables. Le format est Element.attribute_of_element. Les niveaux pris en charge se présentent comme suit, par ordre ou priorité décroissant.
Attribute.action : attribut spécifique (Attribute.name) d'un type d'objet spécifique (Type.name)
Type.default : tous les attributs de valeur d'un type d'objet (Type.name)
AttributeSet.hard, AttributeSet.soft, AttributeSet.iba, etc. : tous les attributs d'une certaine classe
AttributeSet.default: tous les attributs de valeurs
En général, plus un paramètre est spécifique, plus un ordre de priorité élevé est défini pour cette action. L'omission d'une action pour un attribut à un niveau particulier implique que le prochain niveau de priorité le plus élevé doit être examiné pour déterminer si une action explicite est fournie pour cet attribut. La recherche d'une action explicite s'arrête lorsqu'une action explicite est trouvée. Si aucune action explicite n'est trouvée, le comportement par défaut est utilisé.
Le comportement par défaut du système dépend du contexte. Par exemple, le jeu d'attributs par défaut pour la localisation est différent du jeu par défaut pour la sérialisation. Les attributs modélisés inclus pour les structures de publication sont :
name
state.state
versionIdentifier.versionId
Par exemple, lors de la sérialisation de la structure de publication ou de la structure d'information à un champ de données, le comportement par défaut consiste à inclure tous les attributs soft, iba et logical, ainsi que les attributs modélisés.
Sérialisation des attributs référençant d'autres objets
Pour spécifier les métadonnées des références aux objets du champ de données, vous devez définir les attributs name et type de l'élément Attribute. Par exemple :
<Type default="include"
name="com.ptc.arbortext.windchill.siscore.serviceeff.ServiceEffectivity">
<Attribute action="include" name="effContextRef" type="reference" />
</Type>
Les attributs d'objets référencés sont placés dans le fichier referencedObjects.xml du champ de données. Le formulaire de la référence est modifié et passe de son identificateur Windchill à une URI qui peut être utilisée pour rechercher l'objet après sa publication dans Arbortext Content Delivery.
L'attribut référençant un objet est représenté dans le champ de données dans un élément Property, à l'aide de l'attribut token pour l'identifier. L'élément Value possède un attribut ref qui transforme la référence d'objet en une URI pour le champ de données en cours de publication dans un groupe. Plusieurs attributs comportent différentes entrées Value dans le champ de données.
API AttributeSet
Le fichier de configuration AttributeSet identifie un jeu d'attributs pour un objet Windchill. Ce jeu varie en fonction de l'objet sélectionné. Certains objets du même type ont des valeurs définies pour tous les attributs du jeu, mais le jeu reste inchangé. Les configurations sont spécifiques au contexte. Par exemple, vous devrez configurer les attributs localizable et publishable à l'aide de fichiers XML différents.
La classe AttributeSet est l'API d'un ou de plusieurs fichiers de configuration AttributeSet. La méthode factory getAttributeSet charge les fichiers correspondant au nom de contexte, plus l'extension de fichier .xml telle qu'elle est définie dans la liste des fichiers de configuration AttributeSet.
public class AttributeSet {

// Load one or more configuration files for a named context
and return an AttributeSet object
public static AttributeSet getAttributeSet(String context);

// Get the context for this AttributeSet
public String getContext();

// Test if a type/attribute is a member of this AttributeSet
public boolean isMember(String typeLogicalForm, String logicalForm);
public boolean isMember(TypeIdentifier type, AttributeTypeIdentifier att);

// Get the set of attributes and their types for an persistable object type.
public Map<String, AttributeTypeIdentifier> getAttributes
(String typeLogicalForm);
public Map<String, AttributeTypeIdentifier> getAttributes
(TypeIdentifier type);

// Get attribute values for a Persistable. Mapped object may be an array.
public Map<String, Object> getAttributeValues(Persistable wtobject);

}
Est-ce que cela a été utile ?