Возможности управления данными > Управление изменениями > Администрирование управления изменениями > Преобразование атрибута форматированного текста в атрибут простого текста
  
Преобразование атрибута форматированного текста в атрибут простого текста
Так как редактор форматированного текста был реализован в Windchill 11.1 F000, для любого пакета объектов изменения, экспортируемого в Windchill 11.0 M030, будут исключаться атрибуты форматируемого текста, такие как longDescription, longProposedSolution и longReason. Однако можно настроить систему-источник так, чтобы преобразовывать атрибуты форматированного текста, экспортируемые из источника, в атрибуты простого текста. В процессе настройки выполняется удаление существующих атрибутов (description, proposedSolution и reason) и преобразование атрибутов (longDescription в description, longReason в reason и longProposedSolution в proposedSolution). В результате значения форматированного текста преобразовываются в значения простого текста.
Для настройки выполните следующие шаги.
1. В зависимости от типа объекта изменения, обратитесь к соответствующему файлу в этом каталоге: <WT_HOME>\codebase\registry\XSLRepo\11.0.M030:
WTChangeActivity2.xsl
WTChangeIssue.xsl
WTChangeOrder2.xsl
WTChangeRequest2.xsl
WTVariance.xsl
* 
В этом примере используется файл WTChangeIssue.xsl.
2. Добавьте в файл следующие строки кода.
a. Чтобы удалить существующий атрибут description:
<xsl:template match="WTChangeIssue/description"></xsl:template>
b. Чтобы заменить атрибут longDescription на description:
<xsl:template match="WTChangeIssue/longDescription">
<description>
<xsl:call-template name="plainTextFilter" />
</description>
</xsl:template>
* 
Этот код также вызывает шаблон XSL с наименованием plainTextFilter, который будет определен далее.
c. Чтобы импортировать шаблон plainTextFilter:
<xsl:import href="plainTextFilter.xsl" />
3. Создайте файл с именем plainTextFilter.xsl в расположении <WT_HOME>\codebase\registry\XSLRepo\11.0.M030 и добавьте в этот файл следующие строки кода:
<?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>
Этот код вызывает метод convertToPlainText пользовательского класса com.custom.text.conversion.PlainTextConverter. Этот метод содержит строковое значение форматированного текста в качестве входного параметра и возвращает строковое значение простого текста.
4. Создайте класс с именем PlainTextConverter для определения вышеупомянутого пользовательского класса:
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;
}
}
* 
Этот класс должен быть доступен в пути класса Windchill, например <каталог_windchil>\codebase\com\custom\text\conversion.
После выполнения вышеописанных шагов созданный для Windchill 11.0 M030 пакет будет содержать атрибуты description, proposedSolution и reason со значениями простого текста, полученными посредством преобразования из форматированного текста.
Повторите шаг 2 для всех объектов изменения и атрибутов форматированного текста, которые требуется преобразовать.