Prestaciones adicionales > Gestión de datos de servicio > Personalización de Windchill Service Information Manager y Windchill Service Parts > Personalización de la publicación > Aplicabilidad en la publicación
  
Aplicabilidad en la publicación
Resumen
En los temas XML pueden se pueden incluir expresiones lógicas para determinar si se debe incluir contenido en el nivel de elemento. El marcador que define las opciones y elecciones que se aplican a algún contenido se denomina aplicabilidad en línea. La decisión de incluir o excluir contenido se determina mediante la evaluación de esta expresión lógica frente a las elecciones seleccionadas por el filtro de aplicabilidad en el momento de la publicación (o por el parámetro rootApplicabilityExpression, si está definido en la regla de publicación).
Una expresión de aplicabilidad representa un subconjunto de opciones y elecciones de un producto, que se utiliza para anotar el contenido. La expresión asocia el contenido con un producto o productos específicos y luego se puede utilizar para filtrarlo. Las expresiones simples se pueden combinar mediante operadores lógicos.
En la interfaz de usuario de la estructura del servicio se pueden definir filtros para la estructura de servicio y la aplicabilidad en línea para documentos dinámicos, mediante el conjunto de acciones de Filtro en la barra de herramientas de la ficha Estructura. La publicación aplica el Filtro de opciones a la estructura de publicación y sus documentos dinámicos. Si se define el parámetro de la regla de publicación rootApplicabilityExpression, sobrescribirá la expresión de filtro definida mediante el conjunto de opciones de Filtro.
El filtrado de la aplicabilidad en línea solo se soporta para los tipos de salida PDF y con XSL. En el caso de salida de paquete, no se aplica el filtrado durante la publicación ya que lo aplica un usuario de Arbortext Content Delivery.
Las expresiones de aplicabilidad necesitan un analizador que pueda descifrar las expresiones de las opciones y elecciones especificadas con operadores de intersección y disyuntivos como, por ejemplo, AND, OR y NOT.
Acerca de APEX
Windchill utiliza la sintaxis de ATO para representar expresiones de aplicabilidad. Cuando se publica un paquete, en función de la regla de publicación, las expresiones de aplicabilidad se publican en formato APEX, que Arbortext Content Delivery puede utilizar. Para obtener más información sobre las reglas de publicación, consulte la sección Expresiones de aplicabilidad en paquetes.
APEX es una sintaxis que se basa en el lenguaje de programación LISP. El valor de la propiedad LogicalExpression es la expresión de aplicabilidad de APEX que se aplica a un objeto de Windchill. Esta propiedad está disponible en los ficheros DMPmap.xml y hierarchy.xml para una jerarquía de estructuras de servicio y productos de servicio, respectivamente, en un paquete publicado.
Utilice la siguiente tabla para comprender mejor la gramática de la expresión de APEX.
Símbolo de gramática de APEX
Gramática de expresión de APEX
expression
"(" expression-body ")" | constant
expression-body
polyadic-body | choice-body | function-body
polyadic-body
polyadic-op s expression expression-list
choice-body
"IS" s quote string-list
function-body
name string-list
expression-list
empty | s expression s expression-list
string-list
empty | s quote s string-list
S
" " | " " s
polyadic-op
"AND" | "OR" | "NOT"
constant
"TRUE" | "FALSE" | "UNKNOWN"
quote
' string '
Ejemplos
* 
Se debe definir una expresión asignada dentro de un paréntesis, ya que el operador AND indicado por + tiene prioridad sobre el operador OR indicado por /.
Ejemplo 1:
Un objeto de Windchill tiene asignada una expresión donde la opción Neumático es 155 o 145 y la opción Color es negro o rojo. El formato de ATO es:
("155"/"145") + (Black/Red)
El formato de APEX correspondiente es el siguiente:
(AND (IS 'Tire' '155' '145') (IS 'Colour' 'Black' 'Red')
Ejemplo 2:
Un objeto de Windchill tiene asignada una expresión donde la opción de versión es X-24 o X-26. Para la versión X-24, la opción de mantenimiento puede ser M022 o M023. En este caso, el formato de ATO es:
(“X-24” + (“M022”/”M023”) ) / ”X-26”
El formato de APEX correspondiente es el siguiente:
(OR (AND (IS 'release' 'X-24') (IS 'maintenance' 'M022' 'M023')) (IS 'release' 'X-26'))
Ejemplo 3:
Un objeto de Windchill tiene asignada una expresión con una efectividad de servicio como se indica a continuación:
A la opción de familia se le asigna X96 con contexto como modelos K95 o K96. El tipo de efectividad de servicio es el número de serie con rango definido entre 12000 y 13000. El formato APEX de la expresión anterior y la efectividad de servicio anteriores es:
(AND (IS 'family' 'X96') (IS 'model' 'K95' 'K96') (IS 'serialNo' '12000' '13000'))
Configuración de hojas de estilo
Si desea expresiones de aplicabilidad en línea dentro del documento de estructura de servicio raíz Identifier.xml enviado en la carga útil, es necesario modificar la hoja de estilo pubstructXsl de modo que se copien las expresiones de aplicabilidad de Identifier.xml en la ubicación correcta del mapa DITA de salida (tales como los elementos topicref y topic).
Configuración de reglas de publicación
Al crear reglas de publicación para la salida PDF y XSL, se deben tener en cuenta los parámetros de reglas de publicación que desea aplicar durante la publicación en el servidor de Arbortext Publishing Engine. Se pueden utilizar los parámetros básicos de la regla de publicación de aplicabilidad para aplicarlos a ambas estructuras y contenido en línea de documentos dinámicos. Lo siguiente va precedido de com.ptc.arbortext.pe/:
applicabilitySyntax
Especifique el nombre de la sintaxis de aplicabilidad que se utiliza para las expresiones de aplicabilidad en la carga útil. Especifique el nombre que se ha registrado en el servidor de Arbortext Publishing Engine mediante el método LCA applic::registerSyntax(). No hay ningún valor por defecto.
Si un paquete se publica para utilizarse con Arbortext Content Delivery y tanto las estructuras como sus temas utilizan ATO y la misma sintaxis de origen, applicabilitySyntax es el único parámetro necesario para publicar paquetes.
rootApplicabilityExpression
Especifique una expresión de aplicabilidad para aplicarla a la estructura completa de servicio y a su contenido durante la publicación. La sintaxis de la expresión debe coincidir con la sintaxis que se encuentra en la estructura de servicio y en su contenido textual XML.
La aplicabilidad de los documentos dinámicos en línea se activa o desactiva mediante disableInlineApplicFiltering. Especifique true (por defecto) para desactivar la aplicabilidad en línea o especifique false para activarla.
Para obtener más información sobre los parámetros de reglas de publicación, consulte Parámetros del convertidor del servicio.
Implementación de un analizador de sintaxis
La sintaxis de la aplicabilidad puede adoptar un formato básico mediante rótulos del conjunto de opciones, suponiendo que los rótulos son nombres de elección exclusivos. En las expresiones de aplicabilidad se utilizan operadores para combinar o descartar elecciones. Se necesita un analizador para evaluar la expresión utilizando una sintaxis registrada.
Para implementar un nuevo analizador de sintaxis, se deben utilizar los siguientes paquetes Java que se encuentran en el servidor de Arbortext Publishing Engine en lib\classes\applicability.jar:
com.ptc.arbortext.applicability.expression
Un paquete Java en el que se incluyen interfaces para soportar objetos de expresión de aplicabilidad con el fin de filtrar el contenido con datos de opciones y elecciones. Los elementos de opciones tienen un nombre, una descripción y un conjunto de elementos de elección. Los elementos de opción y elección tienen un atributo de rótulo que se utiliza en la interfaz de usuario y en expresiones de aplicabilidad. Se espera que los rótulos sean únicos dentro de cada conjunto de opciones.
com.ptc.arbortext.applicability.representation
Un paquete Java en el que se incluyen interfaces para soportar el markup de la aplicabilidad de los elementos, los atributos, el contenido y las instrucciones de procesamiento.
En la carga útil, las opciones y las elecciones se incluyen en el fichero OptionsDefinition.xml.
Registro de la sintaxis de aplicabilidad
Es necesario registrar la sintaxis de aplicabilidad en el servidor de Arbortext Publishing Engine mediante una función LCA antes de que se pueda utilizar durante la publicación. Utilice la siguiente función de registro:
applic::registerSyntax(NAME, TEST_XPATH, EXPR_XPATH, PARSER_CLASS)
NAME es el nombre de la sintaxis de aplicabilidad.
TEST_XPATH es una expresión booleana de XPath para comprobar si hay una expresión de aplicabilidad para un elemento.
EXPR_XPATH es una expresión de XPath que permite recuperar la aplicabilidad de un elemento concreto.
PARSER_CLASS es el nombre de clase del analizador para la sintaxis de aplicabilidad.
Por defecto, en el servidor se ofrece un analizador ATO, registrado de la siguiente manera (omita los saltos de línea):
applic::registerSyntax("ATO", "boolean(@*[namespace-uri() =
'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic'])",
"@*[namespace-uri() = 'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic']",
"com.ptc.arbortext.applicability.representation.ATOParser")
Expresiones de aplicabilidad en paquetes
El filtrado de aplicabilidad no se realiza durante la publicación de paquetes. En su lugar, las expresiones de aplicabilidad se convierten a un formato que se puede aplicar en Arbortext Content Delivery.
La aplicabilidad de la estructura de publicación se encuentra en la propiedad de metadatos LogicalExpression. La aplicabilidad de temas se copia en el atributo {http://arbortext.ptc.com/namespace/ATO}applic y después se convierte.
Los siguientes parámetros de aplicabilidad en línea se aplican a las estructuras publicadas en paquetes:
com.ptc.arbortext.pe.service/structureSourceApplicSyntax
Especifique el nombre de la sintaxis de aplicabilidad que se utiliza para expresiones de aplicabilidad en la estructura de servicio. Especifique el nombre registrado por applic::registerSyntax en el servidor de Arbortext Publishing Engine. Si no se especifica, se utiliza el valor de applicabilitySyntax. Si no se especifica applicabilitySyntax, el valor por defecto es ATO.
com.ptc.arbortext.pe.service/structureTargetApplicSyntax
Especifique el nombre de la sintaxis de aplicabilidad que se utiliza para expresiones de aplicabilidad después de que el subsistema del servicio finalice el procesamiento. Especifique el nombre registrado por applic::registerSyntax en el servidor de Arbortext Publishing Engine. Si no se especifica, se utiliza el valor de applicabilitySyntax. Si no se especifica applicabilitySyntax, el valor por defecto es ATO.
disableStructureApplicabilityConverter
Especifique si desea buscar y convertir las expresiones de aplicabilidad en una estructura. Especifique false, el valor por defecto para paquetes, para activarlo. Especifique true para desactivarlo. Por defecto, se desactiva para PDF.
Los siguientes parámetros de aplicabilidad en línea se aplican a los temas publicados en paquetes:
com.ptc.arbortext.pe.service/topicCcfParam.sourceApplicabilitySyntax
Especifique el nombre de la sintaxis de aplicabilidad que se utiliza para expresiones de aplicabilidad dentro de los temas del paquete. Especifique el nombre registrado en el servidor de Arbortext Publishing Engine. Si no se especifica, se utiliza el valor de applicabilitySyntax. Si no se especifica applicabilitySyntax, el valor por defecto es ATO.
com.ptc.arbortext.pe.service/topicCcfParam.targetApplicabilitySyntax
Especifique el nombre de la sintaxis de aplicabilidad que se utiliza para expresiones de aplicabilidad dentro de los temas después de que el subsistema del servicio haya finalizado el procesamiento. Especifique el nombre registrado en el servidor de Arbortext Publishing Engine. Si no se especifica, se utiliza el valor de applicabilitySyntax. Si no se especifica applicabilitySyntax, el valor por defecto es APEX.
com.ptc.arbortext.pe.service/topicCcfParam.disableApplicabilityConverter
Especifique si desea buscar y convertir las expresiones de aplicabilidad en un tema. Especifique false, el valor por defecto, para activarlo. Especifique true para desactivarlo.
Creación de perfiles de expresiones de aplicabilidad
Los elementos de información pueden tener perfiles que se aplicaron al crearlos. El marcador de perfiles se puede convertir en una expresión de aplicabilidad mediante una sintaxis de aplicabilidad. La conversión que perfiles se controla mediante el parámetro de publicación booleano com.ptc.arbortext.pe.service/topicCcfParam.disableProfilingConverter.
Por ejemplo, el marcador siguiente se puede encontrar en un documento XML, donde os y userlevel especifican la creación de perfiles:
<chapter os="Windows Vista;Unix" userlevel="Novice">
Una solicitud de publicación que especificó la sintaxis APEX como la expresión de aplicabilidad convertiría la información de perfiles al marcador siguiente:
<book xmlns:prf=http://arbortext.ptc.com/namespace/
applicability/profiling prf:syntax="APEX"
prf:optionSet="axdocbook">
<chapter prf:applic="(AND (IS 'os' 'Windows Vista' 'Unix')
(IS 'userlevel' 'Novice'))">
</chapter>
</book>
El URI del espacio de nombres para prf en el nivel superior especifica una configuración de perfiles. El atributo de perfiles del espacio de nombres se especifica mediante el parámetro de publicación de com.ptc.arbortext.pe.service/topicCcfParam.profilingAttribute.
El atributo prf:syntax especifica la sintaxis de la expresión. El atributo prf:optionSet especifica el tipo de documento del fichero de configuración de perfiles que se está usando.
El atributo prf:applic se coloca en el elemento que contiene el marcador de perfil y se asigna a la expresión convertida.
Los atributos de perfiles originales se pueden quitar de los elementos de información al publicar en un paquete mediante el parámetro de publicación com.ptc.arbortext.pe.service/topicCcfParam.removeProfilingMarkup.
En la carga útil de publicación, el fichero OptionsDefinition.xml contiene la lista de conjuntos de opciones de configuración de perfiles. Para el ejemplo anterior, el conjunto de opciones puede tener el siguiente aspecto:
<OptionSet container="axdocbook.pcf" token="_oset_axdocbook_pcf"
label="Operating System, User Level, Output Type, Security Level Options">
<Option label="os" token="_opt_axdocbook_os"><Name>Operating System</Name>
<Choice label="Windows XP" token="_ch_axdocbook_pcf_os_windows_xp">
<Name>Windows XP</Name></Choice>
<Choice label="Windows Vista" token="_ch_axdocbook_pcf_os_windows_vista">
<Name>Windows Vista</Name></Choice>
<Choice label="Windows 7" token="_ch_axdocbook__pcf_os_windows_7">
<Name>Windows 7</Name></Choice>
<Choice label="Unix" token="_ch_axdocbook_pcf_os_unix">
<Name>Unix</Name></Choice>
</Option>
<Option label="userlevel" token="_opt_axdocbook_pcf_userlevel">
<Name>User Level</Name>
<Choice label="Novice" token="_ch_axdocbook_pcf_userlevel_novice">
<Name>Novice</Name></Choice>
<Choice label="Typical" token="_ch_axdocbook_pcf_userlevel_typical">
<Name>Typical</Name></Choice>
<Choice label="Expert" token="_ch_axdocbook_pcf_userlevel_expert">
<Name>Expert</Name></Choice>
</Option>
</OptionSet>
Para obtener más información sobre los parámetros de publicación de perfiles, consulte Parámetros del convertidor del servicio.