リッチテキスト属性からシンプルテキスト属性への変換
longDescription、longProposedSolution、longReason などのリッチコンテンツをマークアップタグとともに取得するには、それぞれ getLongDescription、getLongProposedSolution、getLongReason などの API を使用します。
説明、提案されたソリューション、理由などのプレーンテキストの値を取得するには、getDescription、getProposedSolution、getReason などの API を使用します。
リッチコンテンツ (マークアップタグを含む) をシンプルプレーンテキストに変換するには、以下のコードを使用します。
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
レプリケーションパッケージでのリッチテキスト属性からシンプルテキスト属性への変換
リッチテキストエディタは Windchill 11.1 F000 で導入されたので、Windchill 11.0 M030 にエクスポートされた変更管理オブジェクトパッケージは、longDescription、longProposedSolution、longReason などリッチテキスト属性を除外します。ソースからエクスポートされたリッチテキスト属性をシンプルテキスト属性に変換するようにソースシステムをカスタマイズできます。カスタマイズによって、既存の属性 description、proposedSolution、および reason が除去され、属性 longDescription、longReason、および longProposedSolution がそれぞれ description、reason、および 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.PlainTextConverter の convertToPlainText メソッドを呼び出します。このメソッドは、入力パラメータとしてリッチテキスト文字列値を含んでおり、シンプルテキスト文字列値を返します。
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 クラスパス (<Windchill ホーム>\codebase\com\custom\text\conversion など) にあります。
|
上記の手順を完了すると、Windchill 11.0 M030 に対して作成されたパッケージに、リッチテキストから変換されたシンプルテキスト値を持つ description、proposedSolution、および reason 属性が含められます。
すべての変更管理オブジェクトおよび変換するリッチテキスト属性について、ステップ 2 を繰り返します。