Publish rules with multiple conditions
Hello,
We are using the following publis rules, they are triggered within a workflow:
<?xml version="1.0" encoding="UTF-8"?>
<rules xmlns="http://www.ptc.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ptc.com PublishRulesSchema.xsd"
evaluate-rules-on-republish="true">
<!-- The 'evaluate-rules-on-republish' attribute above provides a default value for
all the <publish> elements in this file. If this attribute is absent here, the
default is 'false'.
-->
<!-- CREO FILES Handling (PROE) -->
<authoring-application name="PROE">
<additional-files name="stl">
<file display-label="STL" type="stl" default="true" output-prefix="stl"/>
</additional-files>
<additional-files name="step">
<file display-label="STEP AP214" type="step" default="true" output-prefix="stp"/>
</additional-files>
<additional-files name="x_t">
<file display-label="Parasolid x_t" type="PARASOLID" default="true" output-prefix="x_t" />
</additional-files>
<condition name="makeSTEP">
<and>
<or>
<attribute name="epmdoc_CADName" regex=".*\.prt" />
<attribute name="epmdoc_CADName" regex=".*\.asm" />
</or>
<or>
<attribute name="epmdoc_TEILEART" value="ABC" />
<attribute name="epmdoc_TEILEART" value="XYZ" />
</or>
</and>
</condition>
<condition name="makeSTL">
<and>
<or>
<attribute name="epmdoc_CADName" regex=".*\.prt" />
<attribute name="epmdoc_CADName" regex=".*\.asm" />
</or>
<attribute name="epmdoc_TEILEART" value="STLON" />
</and>
</condition>
<condition name="makeXT">
<and>
<or>
<attribute name="epmdoc_CADName" regex=".*\.prt" />
<attribute name="epmdoc_CADName" regex=".*\.asm" />
</or>
<or>
<attribute name="epmdoc_TEILEART" value="ABC" />
<attribute name="epmdoc_TEILEART" value="XZY" />
<attribute name="epmdoc_TEILEART" value="OPQ" />
</or>
</and>
</condition>
<if condition="makeSTL">
<publish on="unknown-source" additional-files="stl" param-set="post-stl" />
</if>
<if condition="makeSTEP">
<publish on="unknown-source" additional-files="step" param-set="post-step" />
</if>
<if condition="makeXT">
<publish on="unknown-source" additional-files="x_t" param-set="post-x_t" />
</if>
<param-set name="post-stl">
<post-publish name="delegate">com.ptc.wvs.server.publish.AdditionalFilesPostPublishDelegate</post-publish>
<post-publish name="name">Stl_File_For_{AUTHORING_APP}_{EPM_NUMBER}_{ADDITIONAL_FILE_PRIMARY_BASENAME}_{ADDITIONAL_FILE_PRIMARY_EXTENSION}</post-publish>
<post-publish name="published-content-link">stl</post-publish>
<!--post-publish name="additional-file-primary" delete-original="true">.*\.stl</post-publish-->
</param-set>
<param-set name="post-step">
<post-publish name="delegate">com.ptc.wvs.server.publish.AdditionalFilesPostPublishDelegate</post-publish>
<post-publish name="name">Step_File_For_{AUTHORING_APP}_{EPM_NUMBER}_{ADDITIONAL_FILE_PRIMARY_BASENAME}_{ADDITIONAL_FILE_PRIMARY_EXTENSION}</post-publish>
<post-publish name="published-content-link">stp</post-publish>
<!--post-publish name="additional-file-primary" delete-original="true">.*\.stp</post-publish-->
</param-set>
<param-set name="post-x_t">
<post-publish name="delegate">com.ptc.wvs.server.publish.AdditionalFilesPostPublishDelegate</post-publish>
<post-publish name="name">XT_File_For_{AUTHORING_APP}_{EPM_NUMBER}_{ADDITIONAL_FILE_PRIMARY_BASENAME}_{ADDITIONAL_FILE_PRIMARY_EXTENSION}</post-publish>
<post-publish name="published-content-link">x_t</post-publish>
<!--post-publish name="additional-file-primary" delete-original="true">.*\.x_t</post-publish-->
</param-set>
</authoring-application>
</rules>
The publishing basically works, but for documents that match multiple criteria (for example makeXT and makeSTEP, only STEP files are generated. Is windchill only evaluating one if statement?
Thanks for your help 🙂

