データ管理機能 > 変更の管理 > 変更管理の管理 > リッチテキスト属性からシンプルテキスト属性への変換
リッチテキスト属性からシンプルテキスト属性への変換
longDescriptionlongProposedSolutionlongReason などのリッチコンテンツをマークアップタグとともに取得するには、それぞれ getLongDescriptiongetLongProposedSolutiongetLongReason などの API を使用します。
説明、提案されたソリューション、理由などのプレーンテキストの値を取得するには、getDescriptiongetProposedSolutiongetReason などの API を使用します。
リッチコンテンツ (マークアップタグを含む) をシンプルプレーンテキストに変換するには、以下のコードを使用します。
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
レプリケーションパッケージでのリッチテキスト属性からシンプルテキスト属性への変換
変更管理オブジェクトパッケージを Windchill にエクスポートする際に、longDescriptionlongProposedSolutionlongReason などのリッチテキスト属性が除外されている場合、ソースからエクスポートされたリッチテキスト属性をシンプルテキスト属性に変換するようにソースシステムをカスタマイズできます。カスタマイズによって、既存の属性 descriptionproposedSolution、および reason が除去され、属性 longDescriptionlongReason、および longProposedSolution がそれぞれ descriptionreason、および proposedSolution に変換されます。結果として、リッチテキスト値がシンプルテキスト値に変換されます。
次のカスタマイズの手順を実行します。
1. 変更管理オブジェクトのタイプに応じて、パス <WT ホーム>\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. plainTextFilter.xsl という名前のファイルを <WT ホーム>\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>
これは、カスタムクラス com.custom.text.conversion.PlainTextConverterconvertToPlainText メソッドを呼び出します。このメソッドは、入力パラメータとしてリッチテキスト文字列値を含んでおり、シンプルテキスト文字列値を返します。
4. PlainTextConverter という名前のクラスを作成して、上記のカスタムクラスを定義します。
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;
}
}
* 
このクラスは、Windchill クラスパス (<Windchill ホーム>\codebase\com\custom\text\conversion など) にあります。
上記の手順を完了すると、作成されたパッケージに、リッチテキストから変換されたシンプルテキスト値を持つ descriptionproposedSolution、および reason 属性が含められます。
すべての変更管理オブジェクトおよび変換するリッチテキスト属性について、ステップ 2 を繰り返します。
これは役に立ちましたか?