Ejemplo de fichero de configuración de filtrado personalizado
En este escenario, un usuario ha definido los subtipos de un WTPart (ABCPart, CBSPart y NBCPart) y un subtipo FOXPartUsageLink de WTPartUsageLink, y ha creado el siguiente fichero de configuración.
<?xml version="1.0" encoding="UTF-8"?>
<FilterStrategy handler="com.ptc.windchill.option.filter.DefaultFilterStrategyHandler">
<FilterNode type="wt.option.ExpressionAssignable" parentType="wt.part.ABCPart" childType="wt.part.ABCPart">
<ExpressionPolicy advanced="true" mode="STANDARD,UNDEFINED"/>
</FilterNode>
<FilterNode parentType="wt.part.CBSPart" childType="wt.part.NBCPart">
<ExpressionPolicy advanced="true" mode="STANDARD,UNDEFINED "/>
</FilterNode>
<FilterNode type="wt.part.ABCPart">
<ExpressionPolicy advanced="true" mode="STANDARD "/>
</FilterNode>
<FilterMissingExpression type="wt.part.FOXPartUsageLink"/>
<FilterMissingExpression type="wt.part.PartUsesOccurrence" parentType=”wt.part.CBSPart” childType=”wt.part.NBCPart”/>
</FilterStrategy>
En el fichero de configuración se define el algoritmo de filtrado con expresiones básicas y avanzadas, tal como se muestra a continuación. Para expresiones básicas, las elecciones se recopilan y coinciden con la elección del filtro solo para el artículo hijo de soporte del vínculo de uso, si son de los tipos ABCPart o NBCPart. Las elecciones de vínculos de uso y artículos hijo de otros tipos se desestiman. Hay cuatro directivas para las expresiones avanzadas. En el orden de aparición en el fichero, significan lo siguiente:
• Si los artículos padre e hijo del vínculo de uso son de tipo ABCPart, se filtra el vínculo de uso si la expresión se evalúa como FALSO o SIN DEFINIR.
• Si los artículos padre e hijo del vínculo de uso son de los tipos CBSPart y NBCPart, respectivamente, se filtra el vínculo de uso si la expresión se evalúa como FALSO o SIN DEFINIR.
• Si el artículo (hijo) del elemento es de tipo ABCPart, se filtra el vínculo de uso si la expresión se evalúa como FALSO.
• Si el vínculo de uso es de tipo FOXPartUsageLink, se filtra el vínculo de uso si ni el vínculo de uso ni su artículo hijo tienen una expresión básica o avanzada asignada.
• Si una aparición de un vínculo de uso entre los artículos de los tipos CBSPart y NBCPart no tiene una expresión asignada, se filtra la aparición.