特定管理 > 支援視覺化與發行 > WVS 發佈規則 > 使用發佈規則中的條件
  
使用發佈規則中的條件
配置其他檔案類型
WVS 支援在發佈期間產生其他檔案類型。發佈規則 XML 定義可讓您配置其他檔案類型。本節描述支援其他檔案類型功能的發佈規則。
* 
如需有關如何在「表示/註釋」表中顯示可用檔案類型清單的資訊,請參閱顯露表示與註釋
其他檔案類型元素
欲在發佈期間配置其他檔案類型的產生,請使用發佈規則 XML 中的下列元素︰
fileadditional-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 中的標籤。
type 是系統要求 Worker 匯出的額外檔案類型。
發佈期間產生其他檔案時,output-prefixoutput-suffix 會將前綴或後綴新增至額外檔案名稱。output-suffix 是選用的。
default - 可定義這是否為要發佈的預設檔案類型。針對使用 Windchill「新建表示」精靈的 create-representation 發佈請求,此屬性可識別要針對輸出預先選取的其他檔案類型。針對入庫及其他發佈請求類型,它可識別要發佈的其他檔案類型。
default=true - 已在「新建表示」精靈中預先選取,但由其他發佈請求類型自動輸出。
default=false - 未在「新建表示」精靈中預先選取,且未由其他發佈請求類型自動輸出。
每個 <file> 元素在其定義中也可以擁有 visiblelocked 元素,其可與 create-representation 發佈請求的 default 元素互動,例如在使用 Windchill「新建表示」精靈時。
visible 可決定額外檔案類型是否顯示在「額外檔案」清單中。
locked 可定義使用者是否可以選取額外檔案類型的輸出。設定 locked=true 可將核取方塊從「額外檔案」清單中移除,進而防止 <file> 元素中的預設設定變更。若設定為 locked=false,核取方塊會顯示出來。
這兩個元素的設定與 default 一起提供不同輸出與顯示,如下列範例所示。
檔案會顯示在「額外檔案」清單中,且會發佈。檔案名稱旁邊沒有核取方塊,因此,使用者無法變更設定。
default="true" locked="true" visible="true"
檔案會發佈,但檔案名稱不會顯示,因此,使用者無法選取。(「已鎖定」並不重要,因為使用者無法變更他看不到之項目的設定。)
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 所識別的目標。Creo View MCAD Adapter Installation and Configuration Guide (Creo View MCAD 轉接器安裝與組態指南)中的每一章都記錄了 Worker 支援的檔案類型選項。
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> 元素可透過兩種方式使用:
在根 <rules> 元素下 - 適用於所有 <authoring-application> 元素。
在一個特定 <authoring-application> 元素下 - 僅適用於該特定編寫應用程式的 <authoring-application> 規則。
<publish> 中參考 - 欲參考 additional-files 定義,請將 additional-files 屬性新增至 <publish> 元素,並如下所示指定其名稱。
<publish display-label=”iges files” on="checkin" additional-files="iges_files"/>
此屬性也可與 param-setoutput 屬性搭配使用。
由於 param-setoutputadditional-files 全都是特定 <publish> 元素的一部份,因此它們會緊密配合。但是,param-setoutput 屬性可用於後發佈活動 (例如 Arbortext),而 additional-files 會在實際發佈 (主要是 CAD 發佈與多擬真性發佈) 期間使用,因此這兩者一起使用的頻率可能沒有那麼高。output 屬性不可與 additional-files 屬性結合。另請注意將 display-label 屬性引進發佈元素的問題。create-representation 發佈請求期間,display-label 屬性的值會顯示在「新建表示」精靈的 Creo View Output Options 清單中。
如果只有一個 <publish on=”create-representation"> 元素,只會顯示該選項;但如果有多個 <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-setadditional-filesevaluate-rules-on-republish 屬性序連作為顯示名稱。下列範例包括兩個 <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> 元素可讓使用者設定規則來在 EPMDocument 中尋找更多屬性,例如生命週期狀態 (例如,In WorkReleased)、CAD 類型 (例如,PartAssembly) 以及容器。這包括引入一些邏輯運算子,例如 AND、OR 與 NOT
Attribute - 此基本屬性元素看起來像這樣:
<attribute name="epmdoc_lifeCycleState" value="Released" />
此元素的 name 屬性是要對所評估的 EPMDocument 進行檢查的屬性。有一個尋找所有可用屬性的方法是在 Creo View 中開啟表示並查看內容。您會看見一系列 epmdoc_* 內容,這些內容全都可用於發佈規則。此外,相關 WTPart 的任何內容也都可用。這些項目也可在 Creo View 中見到,並且會以 part_* 格式顯示。
此範例中的 value 屬性是要對其進行比較的值。如果 EPMDocument 的值等於此元素的 value (區分字母大小寫),則會將此屬性視為 true。
使用者可以使用 regex XML 屬性來使用一般運算式,而不必使用 value,如下列範例所示:
<attribute name="epmdoc_CADName" regex=".*\.asm" />
在此情況下,只要一般運算式模式傳回符合此 EPMDocument 的結果,便會將屬性視為 true。
attribute 元素的另一個用處是檢查屬性是否存在於物件上,但值是什麼無關緊要。這並不會使用 nameregex,且看起來像這樣:
<attribute name="MyIBA" />
Instance-of - <instance-of> 元素的用法與 <attribute> 元素相似,但主要用來查看所評估的物件是否為指定類型。它看起來像這樣:
<instance-of type=”wt.epm.EPMDocument” />
如果物件是 EPMDocument,它就會在發行規則中評估為 true。或者,您可以使用:
<instance-of type="wt.doc.WTDocument" />
如果物件是 WTDocument,它會在發行規則中評估為 true。
Structure - <structure> 元素看起來像這樣:
<structure type=”epm” />
<structure> 與現有 <structure-type type="epm"> 元素類似,且行為模式相同。如需此新元素的詳細資訊,請參閱下方的「發佈規則元素的相容性」。
Logical Operators - 您可以單獨使用 attributeinstance-ofstructure 元素,但當它們使用邏輯運算子結合起來時,功能會變得強大許多。新支援的運算子有 andornot。例如:
<and>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_docType" value="Assembly"/>
</and>
在此範例中,所評估的物件必須同時為「組件」及處於「已發行」狀態,陳述式才能為 true。使用 or 的方式非常類似:
<or>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_lifeCycleState" value="In Work" />
</or>
在此範例中,物件為 ReleasedIn Work<and><or> 也可能有兩個以上的子元素;但兩者都必須有至少兩個子元素。例如:
<and>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_docType" value="Assembly"/>
<instance-of type=”EPMDocument” />
</and>
<not> 的運作方式類似,但只能有一個子元素。以下範例指示正在評估的物件並非「已發行」︰
<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>
"name" 屬性是 <if> 元素 (請參閱下方) 用來參考此條件的屬性。<condition> 元素可位於根 <rules> 元素下,這表示它們可以用於所有 <authoring-application> 元素或者位於一個特定的 <authoring-application> 下,這表示它只能用於該前後關聯。"name" 屬性必須在整個發行規則文件中具唯一性。以下是使用邏輯運算子的另一個範例:
<condition name="Released Assembly”>
<and>
<attribute name="epmdoc_lifeCycleState" value="Released" />
<attribute name="epmdoc_docType" value="Assembly"/>
</and>
</condition>
if condition - 欲使用定義的 <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>) 搭配使用。使用這些較舊條件式元素建立的發佈規則檔案會繼續像以前一樣使用,但如果您選擇使用其中一個較新元素,則無法再使用「較舊」的元素。
Migration - 以下是如何從發佈規則檔案中的較舊條件式元素移至較新元素的一些範例:
較舊:
<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 檔案中的 "default" 屬性發生變更,您必須重新建立一開始建立的內容。選取項清單在後續重新發佈期間不得發生變更,因為它們必須始終代表原始發佈。
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>。
會新增 <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 來讓您在重新發行期間,對「發行規則」的評估進行更好地組態控制:
publish.evaluaterulesonrepublish.default - 提供用來在不顯示 evaluate-rules-on-republish 時定義預設值的機制。
publish.evaluaterulesonrepublish.override - 提供用來在顯示 evaluate-rules-on-republish 時予以取代的機制。
這兩個新群組的內容下文有所描述。
下列內容可控制當在建立表示時若未在「發佈規則」中指定 evaluate-rules-on-republish 旗標,是否讓「發佈規則」針對提交供重新發佈的現有表示重新計算。這些內容的有效值為 truefalse。當任何內容都不存在時,預設值為 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 內容指定的預設值。
編寫應用程式特定內容始終優先於所有編寫應用程式的內容。 有效值為 truefalsetrue 這個值表示始終計算重新發佈的規則,false 這個值表示從不計算重新發佈的規則,無論原始對表示設定的 evaluate-rules-on-republish 旗標為何。當任何內容都不存在時,預設為空值,這表示不覆寫原始指定的 evaluate-rules-on-republish 值。
屬性
描述 (Description)
publish.evaluaterulesonrepublish.override
預設值:False·
為包括在 publish.usesPublishRules 內容中的所有編寫應用程式覆寫 evaluate-rules-on-republish 在重新發佈期間的行為。
publish.evaluaterulesonrepublish.override。<AUTHORING_APP>
預設值:False·
為包括在 publish.usesPublishRules 內容中的特定編寫應用程式覆寫 evaluate-rules-on-republish 在重新發佈期間的行為。