パブリッシング規則での条件の使用
追加ファイルタイプの設定
WVS では、パブリッシング時の追加ファイルタイプの生成がサポートされています。パブリッシング規則 XML 定義により、追加ファイルタイプを設定できます。このセクションでは、追加ファイルタイプ機能をサポートするパブリッシング規則について説明します。
追加ファイルタイプエレメント
パブリッシング時の追加ファイルタイプの生成を設定するには、パブリッシング規則 XML で以下のエレメントを使用します。
file と additional-Files
これらのパブリッシング規則 XML エレメントの簡潔な例については、<Windchill>/codebase/com/ptc/wvs/server/xml ディレクトリにあるサンプルファイル PublishRules-AdditionalFiles.xml を参照してください。
file - 生成可能な追加ファイルタイプはそれぞれ <file> エレメントで表されます。次に例を示します。
<file display-label="My IGES File" type="iges" output-prefix="2d" output-suffix=”001”default="true" />
ここで、
• display-label は、UI で公開されるラベルです (「新規製品表現」ウィザードの 2 番目のステップの「追加ファイル」など)。
• type は、Worker がエクスポートする追加ファイルタイプです。
• output-prefix と output-suffix は、パブリッシング時の追加ファイルの生成時に追加ファイルの名前にプレフィックスまたはサフィックスを追加します。output-suffix は省略可能です。
• default - これがパブリッシングするデフォルトのファイルタイプであるかどうかを定義します。Windchill の「新規製品表現」ウィザードを使用した create-representation パブリッシングリクエストの場合、この属性は追加ファイルタイプを識別して出力対象として事前選択します。チェックインおよびその他のパブリッシングリクエストタイプの場合、これはこれらの追加ファイルタイプを識別してパブリッシングします。
◦ default=true - 「新規製品表現」ウィザードで事前選択されていますが、ほかのパブリッシングリクエストタイプによって自動的に出力されます。
◦ default=false - 「新規製品表現」ウィザードで事前選択されており、ほかのパブリッシングリクエストタイプによって自動的に出力されません。
各 <file> エレメントには、その定義内で、create-representation パブリッシングリクエストの default エレメントと対話する visible エレメントと locked エレメントを指定することもできます (Windchill の「新規製品表現」ウィザードの使用時など)。
• visible は、追加ファイルタイプが「追加ファイル」リストに表示されるかどうかを決定します。
• locked は、ユーザーが追加ファイルタイプの出力を選択できるかどうかを定義します。locked=true と設定すると、「追加ファイル」リストからチェックボックスが除去され、<file> エレメントのデフォルトの設定を変更できなくなります。locked=false と設定すると、チェックボックスが表示されます。
これら 2 つのエレメントを default とともに設定すると、以下の例に示すように、異なる出力および表示が提供されます。
• このファイルは「追加ファイル」リストに表示され、パブリッシングされます。ファイル名の横にチェックボックスが表示されないため、ユーザーは設定を変更できません。
default="true" locked="true" visible="true"
• このファイルはパブリッシングされ、そのファイル名は表示されないため、ユーザーはそれを選択できません (ユーザーは表示されていないものの設定を変更できないため、locked はあまり重要ではありません)。
default="true" locked="true" visible="false"
default="true" locked="false" visible="false"
• このファイルは「追加ファイル」リストに表示されます。ユーザーは、ファイル名の横にあるチェックボックスをオンまたはオフにして、このファイルをパブリッシングするかどうかを指定できます。
default="true" locked="false" visible="true"
• このファイルはパブリッシングされず、表示されません。ユーザーはいかなる操作も実行できません。
default="false" locked="true visible="false"
各 <file> エレメントには、その定義内で、多数の <option> エレメントを指定することもできます。これらの <option> エレメントは、追加のアプリケーションエクスポート設定を Worker に渡すために使用されます。次に例を示します。
<file display-label="iges 2D" type="iges" default="true" output-prefix="2d">
<option name="output_2d" value="true" />
</file>
<option> エレメントはいくつでも構いませんが、オプションの実際の "name" および "value" は Worker が認識可能なものでなければなりません。Worker でサポートされているファイルタイプオプションについては、Creo View MCAD Adapter Installation and Configuration Guide でアダプタごとに説明されています。
additional-files - 各 <file> エレメントは、エクスポートされる追加ファイルタイプのリスト内に含まれており、以下に示すように <additional-files> エレメントを使用して定義されています。
<additional-files name="iges_files">
<file display-label="iges 2D" type="iges" default="true" outputPrefix="2d">
<option name="output_2d" value="true" />
</file>
<file display-label="iges 3D" type="iges" default="false" outputPrefix="3d">
<option name="output_2d" value="false" />
</file>
</additional-files>
この追加ファイルタイプ定義をほかのエレメントで参照するには、"name" 属性が使用されます (下記の <publish> エレメントを参照)。<additional-files> のリストには、<file> エレメントをいくつでも含めることができます。
<additional-files> エレメントは 2 つの方法で使用できます。
• ルートの <rules> エレメント内 - すべての <authoring-application> エレメントに適用されます。
• 1 つの特定の <authoring-application> エレメント内 - その特定のオーサリングアプリケーションのみに使用される <authoring-application> 規則に適用されます。
<publish> エレメント内から参照 - additional-files 定義を参照するには、additional-files 属性を <publish> エレメントに追加して、以下に示すようにその名前を指定します。
<publish display-label=”iges files” on="checkin" additional-files="iges_files"/>
この属性は、param-set 属性および output 属性と組み合わせて使用することもできます。
param-set、output、および additional-files はすべて特定の <publish> エレメントの一部であるため、これらは近くに配置されています。ただし、param-set 属性および output 属性はパブリッシング後のアクティビティ (Arbortext など) に使用され、additional-files は実際のパブリッシング (主に CAD パブリッシング) に使用されるので、2 つが同時に使用できることはあまりありません。output 属性を additional-files 属性と組み合わせることはできません。display-label 属性が publish エレメントに導入されていることにも注意してください。display-label 属性の値は、create-representation パブリッシングリクエスト中に「新規製品表現」ウィザードの「Creo View Output Options」リストに表示されます。
<publish on=”create-representation"> エレメントが 1 つしかない場合は、そのオプションのみが表示されますが、<publish on=create-representation> エレメントが複数ある場合は、それぞれが個別の出力オプションであり、All という名前の追加オプションが最上部に表示されます。オプション All を選択すると、<publish on=create-representation> エレメントごとに個別のジョブが作成されます。All 以外を選択すると、選択した <publish on=”create-representation"> エレメント (および対応する additional-files) が使用されます。
display-label を指定すると、それが製品表現の説明のデフォルトになります。製品表現に対して説明を設定しない場合は、次のように設定します。
display-label=””
<publish on=create-representation> エレメントに display-label が指定されていない場合、param-set、additional-files、および evaluate-rules-on-republish 属性を連結したものが表示名として使用されます。次の例には、表示ラベルがあるものとないものの 2 つの <publish on=”create-representation"> エレメントが含まれています。
<publish on="create-representation" additional-files="dxf_iges_step_files">
<param-set-ref name="PostPublish_STEP" />
<param-set-ref name="PostPublish_IGES_DXF" />
</publish>
<publish on="create-representation" display-label="Fred's Publish Options"
additional-files="dxf_iges_step_files">
<param-set-ref name="PostPublish_STEP" />
<param-set-ref name="PostPublish_IGES_DXF" />
</publish>
条件エレメント
新しい <condition> エレメントにより、ユーザーは、ライフサイクル状態 (例: In Work、Released)、CAD タイプ (例: Part、Assembly)、コンテナなどのより多くの属性を EPMDocument で検索する規則をセットアップできます。これには、AND、OR、NOT などの多くの論理演算子の概要が含まれます。
Attribute - 基本属性エレメント。以下に例を示します。
<attribute name="epmdoc_lifeCycleState" value="Released" />
このエレメントの name 属性は、評価対象の EPMDocument でチェックされる属性です。使用可能なすべての属性を見つける 1 つの方法は、Creo View で製品表現を開いてプロパティを確認することです。パブリッシング規則で使用できる一連の epmdoc_* プロパティが表示されます。また、関連する WTPart のプロパティも使用できます。これらは Creo View にも表示され、part_* フォーマットで表示されます。
この例の value 属性は、比較対象の値です。EPMDocument の値がこのエレメントの value (大文字小文字を区別します) と等しい場合、この属性は真と見なされます。
value を使用する代わりに、次の例に示すように XML 属性 regex を使用して正規表現を使用できます。
<attribute name="epmdoc_CADName" regex=".*\.asm" />
この場合、正規表現パターンがこの EPMDocument に一致した結果を返さないかぎり、属性は真と見なされます。
attribute エレメントのもう 1 つの使用目的は、オブジェクトに属性が存在するかどうかを確認することですが、値は何でも構いません。これは name も regex も使用せず、次のようになります。
<attribute name="MyIBA" />
Instance-of - <instance-of> エレメントは <attribute> エレメントと同様に使用されますが、評価対象のオブジェクトが指定したタイプかどうかを確認するために使用されます。次のようになります。
<instance-of type=”wt.epm.EPMDocument” />
オブジェクトが EPMDocument の場合、これによってパブリッシング規則は真と評価されます。または、以下を使用できます。
<instance-of type="wt.doc.WTDocument" />
オブジェクトが WTDocument の場合、これによってパブリッシング規則は真と評価されます。
structure - <structure> エレメントは次のようになります。
<structure type=”epm” />
<structure> は既存の <structure-type type="epm"> エレメントと同様であり、同じように動作します。この新規エレメントの詳細については、下記の「パブリッシング規則エレメントの互換性」を参照してください。
論理演算子 - attribute エレメント、instance-of エレメント、および structure エレメントはそれ自体を使用できますが、論理演算子を使用してこれらを組み合わせるとはるかに強力になります。新しくサポートされるようになった演算子は、and、or、および not です。たとえば、次のようになります。
<and>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_docType" value="Assembly"/>
</and>
この例では、評価対象のオブジェクトはアセンブリとリリース済み状態の両方でなければなりません。or の使用方法はこれとよく似ています。
<or>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_lifeCycleState" value="In Work" />
</or>
この例では、オブジェクトは Released または In Work のどちらかです。<and> および <or> には 2 つよりも多いサブエレメントがある場合もあります。しかし、どちらも少なくとも 2 個を必要とします。たとえば、次のようになります。
<and>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_docType" value="Assembly"/>
<instance-of type=”EPMDocument” />
</and>
<not> の使用方法も似ていますが、使用できるサブエレメントは 1 つのみです。以下の例は、評価対象のオブジェクトがリリース済み状態ではないことを示しています。
<not>
<attribute name="epmdoc_lifeCycleState" value="Released" />
</not>
これらのステートメントの容量を追加するには、互いにネストされている論理演算子を使用して複雑な評価を作成できます。次の例では、これが作業中またはリリース済みのどちらかのアセンブリであることを示します。
<and>
<attribute name="epmdoc_docType" value="Assembly"/>
<or>
<attribute name="epmdoc_lifeCycleState" value="In Work"/>
<attribute name="epmdoc_lifeCycleState" value="Released"/>
</or>
</and>
次の例はオブジェクトが描画作業中またはリリース済みアセンブリであることを示します。
<or>
<and>
<attribute name="epmdoc_lifeCycleState" value="In Work"/>
<attribute name="epmdoc_docType" value="Drawing"/>
</and>
<and>
<attribute name="epmdoc_docType" value="Assembly"/>
<attribute name="epmdoc_lifeCycleState" value="Released"/>
</and>
</or>
ネストは任意の深さのレベルにできます。
Condition Wrapper - 前述のすべてのエレメントはここに示すように <condition> エレメントにラッピングされている必要があります。
<condition name="In Work">
<attribute name="epmdoc_lifeCycleState" value="In Work" />
</condition>
この条件を参照するために、<if> エレメントで使用されるのは "name" 属性です (後述)。<condition> エレメントをルートの <rules> エレメントの下に置くことができます。これは、すべての <authoring-application> エレメントにも、特定の 1 つの <authoring-application> エレメントにも (その場合、そのコンテキストでのみ使用できます) 使用できることを意味します。"name" 属性はパブリッシング規則ドキュメントで一意でなければなりません。論理演算子を使用したもう 1 つの例を示します。
<condition name="Released Assembly”>
<and>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_docType" value="Assembly"/>
</and>
</condition>
if 条件 - 定義済みの <condition> エレメントを使用してパブリッシングを制御するには、次のように <if> エレメントを使用します。
<if condition="Released Assembly">
<publish on="checkin" />
<publish on="create-representation" />
<publish on="schedule" />
</if>
Released Assembly という名前の条件は、(前述のように) 規則で定義されています。
パブリッシング規則エレメントの互換性
新しい <condition>/<if> または <additional-files> エレメントを、以前の条件評価で使用した古い条件エレメント (<epm-number>、<epm-iba>、<epm-type>、および <structure-type>) とともに使用することはできません。これらの古い条件エレメントを使用して作成されたパブリッシング規則ファイルは以前と同様に機能しますが、新しいエレメントのいずれかを使用することにした場合、"古い" エレメントは使用できなくなります。
移行 - 以下に、パブリッシング規則ファイル内の古い条件エレメントを新しい条件エレメントに移行する方法の例をいくつか示します。
古い:
<epm-number number="01-12345.PRT">
<publish on="checkin" />
</epm-number>
新しい:
<condition name="specific epm number">
<attribute name="epmdoc_number" value="01-12345.PRT" />
</condition>
<if condition="specific epm number">
<publish on="checkin" />
</if>
古い:
<epm-iba iba="MyIBA" value="true">
<publish on="checkin" />
</epm-iba>
新しい:
<condition name="iba with value">
<attribute name="epmdoc_MyIBA" value="true" />
</condition>
<if condition="iba with value">
<publish on="checkin" />
</if>
古い:
<epm-iba iba="MyIBA">
<publish on="checkin" />
</epm-iba>
新しい:
<condition name="iba without value">
<attribute name="epmdoc_MyIBA" />
</condition>
<if condition="iba without value">
<publish on="checkin" />
</if>
古い:
<epm-type type="EPMDocument">
<publish on="checkin" />
</epm-iba>
新しい:
<condition name="epm type">
<instace-of type="EPMDocument" />
</condition>
<if condition="epm type">
<publish on="checkin" />
</if>
古い:
<structure-type type="epm">
<publish on="checkin" />
</epm-iba>
新しい:
<condition name="structure type">
<structure type="epm" />
</condition>
<if condition="structure type">
<publish on="checkin" />
</if>
再パブリッシング
再パブリッシングを処理するために、再パブリッシング時の参照先となる元のパブリッシング中に、ファイルが製品表現に格納されます。このファイルは publish_params.xml という名前で、content-role-type が PUBLISH_PARAMS になっています。再パブリッシング時には、「製品表現/アノテーション」テーブルまたはスケジュールされた再パブリッシングのいずれかから、このファイルを使用して、元のパブリッシング時と同じオプションが再パブリッシング時にも適用されるようにします。これは追加ファイルの概念にも影響し、再パブリッシング時には元のパブリッシングと同じ追加ファイルが作成されるようになります。ユーザーの追加ファイルの選択に基づいてこれまでにパブリッシングされた追加ファイルタイプの詳細は (製品表現を手動で作成した場合)、publish_params.xml ファイルに保存されています。
手動でパブリッシングするときに選択したファイルのレコードを維持する必要があります。たとえば、パブリッシング規則に新しいファイルを追加し、それがデフォルトであれば、この追加ファイルが再パブリッシング時に作成されます。このファイルが除去されると、追加ファイルは作成されません。ただし、publish_params.xml ファイル内の "デフォルト" 属性が変更された場合、最初に作成した内容を再作成する必要があります。その後の再パブリッシングで選択リストを変更してはなりません。これらは常に元のパブリッシングを表している必要があるからです。
publish_params.xmlファイルフォーマット - publish_params.xml ファイルの再パブリッシングの例を次に示します。
<result>
<publish on="create-representation" output="PDF"
param-set="Share with Arbortext"
additional-files=”standard_cad_xport_files”
evaluate-rules-on-republish="true" version="1.2">
<post-publish name="name">
GDD_of_01-2_VALVE_TIMING_SPROCKET.PRT<post-publish>
<post-publish name="delegate">
com.ptc.wvs.server.publish.EPMPostPublishDelegate</post-publish>
<post-publish name="published-content-link">create</post-publish>
<post-publish name="type">DynamicDocument</post-publish>
<file displayName="iges 2D" type="iges"
default="true" outputPrefix="2d">
<option name="output_2d" value="true" />
</file>
<file displayName="iges 3D" type="iges"
default="false" outputPrefix="3d">
<option name="output_2d" value="false" />
</file>
<file displayName="step file" type="step"
default="true" outputPrefix="step" />
</publish>
<user-selections>
<selected>
<file displayName="iges 2D" type="iges"
default="true" outputPrefix="2d">
<option name="output_2d" value="true" />
</file>
<file displayName="iges 3D" type="iges"
default="false" outputPrefix="3d">
<option name="output_2d" value="false" />
</file>
</selected>
<unselected>
<file displayName="step file" type="step"
default="true" outputPrefix="step" />
</unselected>
</user-selections>
</result>
前述の例では次のようになります。
• ルートノードが <result> になります。これまでは、<publish> セクションでした。これは <user-selections> および <publish> に対応しています。
• <publish> の下には、パブリッシング規則ファイル内の選択したリストにあるすべての追加ファイルを表す <file> エレメントの新しいリストが表示されます。このリストは、<publish> エレメントの新しい "additional-files" 属性に対応しています。
• <user-selections> エレメントが追加され、ユーザーが実際に選択したファイルのリストが格納されます。このリストの下は、<selected> と <unselected> という 2 つのリストです。
• <publish> タグの evaluate-rules-on-republish 属性が追加され、再パブリッシング時にパブリッシング規則ファイルを参照する代わりに再評価する必要があるかどうかが示されます。evaluate-rules-on-republish 属性を true に設定すると、publish_params.xml ファイルは再パブリッシング時に使用されず、代わりにパブリッシング規則が評価されます。evaluate-rules-on-republish 属性を false に設定すると、このファイルが再パブリッシング時に使用されます。evaluate-rules-on-republish 属性は、規則エレメントの属性にすることもできます。規則レベルでは、この属性は、evaluate-rules-on-republish 属性を指定しないすべてのパブリッシングエレメントのデフォルト値として使用されます。
既成では、evaluate-rules-on-republish 属性は、パブリッシング規則で設定されていなければ、パブリッシング時に false にデフォルト設定されます。パブリッシング規則は、最初のパブリッシングリクエスト時に評価され、製品表現と一緒に publish_params.xml ファイルに保存されます。publish_params.xml にあらかじめ evaluate-rules-on-republish="true" が含まれていない場合は、既存の製品表現を再パブリッシングするときに、状態変更または手動のいずれであっても、規則は再評価されません。
Windchill 10.2 M010 では、wvs.properties に 2 つのグループのプロパティが追加され、再パブリッシング時のパブリッシング規則の評価に関するコンフィギュレーション制御が強化されています。
• publish.evaluaterulesonrepublish.default - evaluate-rules-on-republish が存在しない場合は、デフォルトを定義するためのメカニズムを提供します。
• publish.evaluaterulesonrepublish.override - evaluate-rules-on-republish が存在する場合は、これをオーバーライドするためのメカニズムを提供します。
次にこの 2 つの新しいグループのプロパティについて説明します。
次のプロパティは、製品表現の作成時にパブリッシング規則ファイルで evaluate-rules-on-republish フラグが指定されなかった場合に、再パブリッシング用にサブミットされる既存の製品表現に対して、パブリッシング規則を再評価するかどうかを制御します。これらのプロパティの有効な値は true または false です。どちらのプロパティも存在しない場合、デフォルト値は false になります。オーサリングアプリケーション固有のプロパティは、すべてのオーサリングアプリケーション用のプロパティよりも常に優先されます。
プロパティ
|
説明
|
publish.evaluaterulesonrepublish.default
|
デフォルト値: False
publish.usesPublishRules プロパティに含まれるすべてのオーサリングアプリケーションに対する、再パブリッシング時の evaluate-rules-on-republish のデフォルト動作を指定します。
|
publish.evaluaterulesonrepublish.default.<AUTHORING_APP>
|
デフォルト値: False
publish.usesPublishRules プロパティに含まれる特定のオーサリングアプリケーションに対する、再パブリッシング時の evaluate-rules-on-republish のデフォルト動作を指定します。
|
再パブリッシング用に製品表現をサブミットするときに、次のプロパティは、製品表現の作成時にパブリッシング規則ファイルで指定された evaluate-rules-on-republish フラグをオーバーライドするかどうか、またはそのオーバーライド方法を制御します。製品表現の作成時にパブリッシング規則ファイルで evaluate-rules-on-republish フラグが指定されなかった場合、これらのプロパティは何も影響しません。代わりに、publish.evaluaterulesonrepublish.default プロパティによって指定されたデフォルト値が使用されます。
オーサリングアプリケーション固有のプロパティは、すべてのオーサリングアプリケーション用のプロパティよりも常に優先されます。有効な値は true または false です。製品表現に対する evaluate-rules-on-republish フラグの元の設定状態にかかわらず、値が true であれば再パブリッシング時に規則が常に評価され、値が false であれば再パブリッシング時には規則は評価されません。どちらのプロパティも存在しない場合、デフォルトは null になり、最初に指定された evaluate-rules-on-republish の値は上書きされません。
プロパティ
|
説明
|
publish.evaluaterulesonrepublish.override
|
デフォルト値: False
publish.usesPublishRules プロパティに含まれるすべてのオーサリングアプリケーションに対する、再パブリッシング時の evaluate-rules-on-republish の動作を上書きします。
|
publish.evaluaterulesonrepublish.override.<AUTHORING_APP>
|
デフォルト値: False
publish.usesPublishRules プロパティに含まれる特定のオーサリングアプリケーションに対する、再パブリッシング時の evaluate-rules-on-republish の動作を上書きします。
|