Fonctionnalités de gestion des données > Gestion des modifications > Administration de la gestion des modifications > Conversion d'un attribut de texte enrichi en attribut de texte simple
  
Conversion d'un attribut de texte enrichi en attribut de texte simple
Utilisez des API telles que getLongDescription, getLongProposedSolution et getLongReason pour récupérer du contenu enrichi comme longDescription, longProposedSolution et longReason, respectivement, avec des tags de marquage.
Utilisez des API telles que getDescription, getProposedSolution et getReason pour récupérer les valeurs de texte brut d'une description, d'une solution proposée et d'un motif.
Pour convertir un contenu enrichi (avec des tags de marquage) en texte brut simple, utilisez le code suivant :
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
Conversion d'un attribut de texte enrichi en attribut de texte simple pour les lots de réplication
Comme l'éditeur de texte enrichi a été introduit dans Windchill 11.1 F000, tout lot d'objet de modification exporté vers Windchill 11.0 M030 exclut les attributs de texte enrichi, par exemple longDescription, longProposedSolution et longReason. Toutefois, vous pouvez personnaliser le système source pour convertir les attributs de texte enrichi exportés à partir de la source en attributs de texte simple. La personnalisation supprime les attributs existants : description, proposedSolution et reason. Elle convertit les attributs : longDescription en description, longReason en reason, et longProposedSolution en proposedSolution. Par conséquent, les valeurs de texte enrichi sont converties en valeurs de texte simple.
Pour effectuer la personnalisation, procédez comme suit :
1. En fonction du type d'objet de modification, accédez au fichier respectif à partir de ce chemin : <WT_HOME>\codebase\registry\XSLRepo\11.0.M030 :
WTChangeActivity2.xsl
WTChangeIssue.xsl
WTChangeOrder2.xsl
WTChangeRequest2.xsl
WTVariance.xsl
* 
Dans cet exemple, nous utilisons le fichier WTChangeIssue.xsl.
2. Ajoutez les lignes de code suivantes dans le fichier :
a. Pour supprimer l'attribut description existant :
<xsl:template match="WTChangeIssue/description"></xsl:template>
b. Pour remplacer l'attribut longDescription par description :
<xsl:template match="WTChangeIssue/longDescription">
<description>
<xsl:call-template name="plainTextFilter" />
</description>
</xsl:template>
* 
Le code appelle également un modèle XSL nommé plainTextFilter, qui sera défini par la suite.
c. Pour importer le modèle plainTextFilter :
<xsl:import href="plainTextFilter.xsl" />
3. Créez un fichier nommé plainTextFilter.xsl à l'emplacement : <WT_HOME>\codebase\registry\XSLRepo\11.0.M030, puis ajoutez les lignes de code suivantes dans le fichier :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:filter="java:com.custom.text.conversion.PlainTextConverter" >
<xsl:template name="plainTextFilter">
<xsl:value-of select="filter:convertToPlainText(.)" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
Ce faisant, la méthode convertToPlainText d'une classe personnalisée com.custom.text.conversion.PlainTextConverter est appelée. Cette méthode contient une valeur de chaîne de texte enrichi en tant que paramètre d'entrée et retourne une valeur de chaîne de texte simple.
4. Créez une classe nommée PlainTextConverter pour définir la classe personnalisée indiquée ci-dessus :
package com.custom.text.conversion;
import org.apache.commons.lang.StringEscapeUtils;
import com.ptc.core.richtext.HTMLText;
public class PlainTextConverter {
public static String convertToPlainText(String rawText) {
HTMLText htmlAttr;
String plainText = " ((null))";
try {
if (null != rawText && !rawText.isEmpty()) {
htmlAttr = HTMLText.newHTMLText(rawText);
plainText = htmlAttr.getPlainText();
plainText = StringEscapeUtils.escapeXml(plainText);
}
} catch (Exception exp) {
exp.printStackTrace();
}
return plainText;
}
}
* 
La classe doit être disponible dans le chemin de classe Windchill, par exemple <windchill_home>\codebase\com\custom\text\conversion.
Une fois que vous avez effectué les étapes décrites ci-dessus, le lot créé pour Windchill 11.0 M030 contient les attributs description, proposedSolution et reason avec des valeurs de texte simple converties à partir de texte enrichi.
Répétez l'étape 2 pour l'ensemble des objets de modification et des attributs de texte enrichi que vous souhaitez convertir.