定義式の設定
定義式で使用される演算子のマッピング
ユーザーインタフェースに表示された論理演算子に使用されている文字を、データベースに格納されている論理演算子の内部文字 ("&&"、"||"、"!") にマッピングできます。
定義式でカスタム論理演算子を指定するには、プロパティの WT_HOME\codebase\wt.properties ファイルに次の値を設定します。
• ato.conjunction.operator
• ato.disjunction.operator
• ato.negation.operator
既成の値は次のとおりです。
• AND の場合: ato.conjunction.operator=+
• OR の場合: ato.disjunction.operator=/
• NOT の場合: ato.negation.operator= -
"=" の後に独自の記号を入力することで、AND、OR、または NOT に対応する独自の値を指定できます。定義式を定義するときには、これらの記号を使用して論理積 (AND)、論理和 (OR)、否定 (NOT) の演算子を示します。次に例を示します。
-red + -(green / white / -blue)
サイト固有のフォーマットをサポートするための定義式コンバータの使用
サイトでは、Windchill で使用可能な定義式コンバータを使用して、定義式を入力および表示するためのフォーマットをカスタマイズできます。
カスタムな定義式フォーマットコンバータを指定するには、次の手順を実行します。
1. 次の 3 つのメソッドを定義する com.ptc.wpcfg.logic.ExpressionFormatConverter を実装するクラスを作成します。
◦ カスタムな部分式を既成の部分式に変換するメソッド
public String toInternalSubexpressionFormat(String externalSubexpressionString)
引数 externalSubexpressionString は、定義式定義のユーザーインタフェースに定義式を入力する際に使用される、外部 (カスタム) フォーマットによる部分式文字列を表しています。部品の親子関係リンクや部品に定義式を割り当てる場合や、条件付き規則の定義式を指定する場合は、カスタムフォーマットが使用されます。
このメソッドは、内部の既成フォーマットで部分式文字列を返します。ここでは、オペランドが有効な Java 識別子であれば選択肢名になり、有効な Java 識別子でなければ引用符で囲まれた選択肢名になります。論理積の AND、論理和の OR、否定の NOT 演算子はそれぞれ、wt.properties ファイルの ato.conjunction.operator、ato.disjunction.operator、ato.negation.operator プロパティで指定された定義に準拠している必要があります。既成の値は、論理積演算子の場合は "+"、論理和演算子の場合は "/"、否定演算子の場合は "-" です。
◦ 既成の部分式をカスタムな部分式に変換するメソッド
public String toExternalSubexpressionFormat(String internalSubexpressionString)
引数 internalSubexpressionString は、内部の既成フォーマットによる部分式文字列を表しています。このメソッドは、外部 (カスタム) フォーマットで部分式文字列を返します。このフォーマットは定義式定義のユーザーインタフェースで使用されます。
◦ 定義式のカスタム表示のためのメソッド
public String toExternalExpressionFormat (String [] internalSubexpressionStrings)
引数 internalSubexpressionStrings は、内部の既成フォーマットによる部分式文字列の配列で、定義式定義のユーザーインタフェースと同じ順序です。このメソッドは、外部 (カスタム) フォーマットで定義式文字列全体を返します。このフォーマットは、製品構造ブラウザ内の割当済みの定義式の列や、さまざまな条件付き規則テーブルの規則の定義の列や、条件付き規則の情報ページに定義式を表示する場合に使用されます。このメソッドの実装では、toExternalSubexpressionFormat(String) メソッドを使用して部分式をカスタムフォーマットに変換することもできます。
2. wt.properties ファイルのプロパティ ato.expression.converter の下に、定義式コンバータクラスへのフルパスを登録します。次に例を示します。
ato.expression.converter=ext.customer.expr.format.CustomExpressionFormatConverter.