数据管理功能 > 管理更改 > “更改管理”管理 > 导入、转换和迁移变更管理数据 > 将增强型文本属性转换为简单文本属性
将增强型文本属性转换为简单文本属性
使用 getLongDescriptiongetLongProposedSolutiongetLongReason 等 API 可分别提取 longDescriptionlongProposedSolutionlongReason 等带标注标记的丰富内容。
使用 getDescriptiongetProposedSolutiongetReason 等 API 可提取说明、提议的解决方案和原因的纯文本值。
要将丰富内容 (带标注标记) 转换为简单的纯文本,请使用以下代码:
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
将增强型文本属性转换为复制包的简单文本属性
将任何变更对象包导出到 Windchill 时,如果已排除 longDescriptionlongProposedSolutionlongReason 等增强型文本属性,则可以自定义源系统以将从源系统导出的增强型文本属性转换为简单文本属性。自定义会移除现有属性:descriptionproposedSolutionreason,并将属性 longDescription 转换为 descriptionlongReason 转换为 reasonlongProposedSolution 转换为 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>
* 
此代码还调用了名为 plainTextFilter 的 XSL 模板,该模板将在随后定义。
c. 要导入 plainTextFilter 模板:
<xsl:import href="plainTextFilter.xsl" />
3. <WT_HOME>\codebase\registry\XSLRepo\11.0.M030 位置创建名为 plainTextFilter.xsl 的文件,并在该文件中添加以下代码行:
<?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>
其中调用了自定义类 com.custom.text.conversion.PlainTextConverterconvertToPlainText 方法。此方法将包含增强型文本字符串值作为输入参数,并返回简单文本字符串值。
4. 创建一个名为 PlainTextConverter 的类来定义上述自定义类:
package com.custom.text.conversion;
import org.apache.commons.lang3.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 类路径下;例如,<WT_HOME>\codebase\com\custom\text\conversion
完成上述步骤后,创建的包将包含 descriptionproposedSolutionreason 属性,其中包含从增强型文本转换而来的简单文本值。
针对所有要转换的变更对象和增强型文本属性重复步骤 2。
这对您有帮助吗?