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
Lorsque vous exportez un lot d'objets de modification vers Windchill, si les attributs de texte enrichi tels que longDescription, longProposedSolution et longReason sont exclus, 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 com.ptc.commons.lang.util.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éé 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.