Modificaciones avanzadas

Este artículo contiene los siguientes temas:
casm173
Este artículo contiene los siguientes temas:
Si se decide utilizar herramientas distintas a Web Screen Painter para modificar HTMPL o si se tienen requisitos de personalización inusualmente complejos, se deben tener en cuenta ciertos aspectos a la hora de modificar páginas web. En cualquier caso, se recomienda encarecidamente trabajar con Web Screen Painter para modificar las páginas web de CA SDM antes de probar cualquier otro enfoque. Web Screen Painter es capaz de realizar casi cualquier modificación deseada y, además, gestiona automáticamente tareas de reorganización de archivos que impliquen, por ejemplo, colocar actualizaciones en el directorio site/mods o distribuir archivos publicados en todos los servidores.
El motor Web y su caché
A la hora de modificar páginas web, resulta de gran utilidad conocer la estructura del servidor web de CA SDM. La interfaz Web utiliza un contenedor de servlets J2EE, como Tomcat, o un servidor HTTP estándar, como Apache o Internet Information Server (IIS) de Microsoft. Cuando un usuario solicita una página web de CA SDM, el servidor HTTP invoca el programa pdmweb.exe suministrado.
Una vez se ha iniciado, pdmweb.exe establece una conexión con un daemon de CA SDM (o servicio de Windows) de que se denomina motor Web. El motor Web interpreta, entonces, la solicitud del usuario. Casi todas las solicitudes exigen que el motor Web busque algún archivo de plantillas (HTMPL) y lo convierta a código HTML estándar. Por lo general, para el proceso de conversión es necesario que el motor web se comunique con un servidor de CA SDM a fin de leer o actualizar la base de datos e incluir información de la base de datos en el código HTML generado. Una vez que se finaliza el código HTML, el motor Web lo envía a pdmweb.exe que, a su vez, lo vuelve a enviar al explorador del usuario.
Con el objetivo de optimizar el rendimiento, el motor Web normalmente lee cada archivo HTMPL sólo una vez. Después de analizar el archivo y determinar cómo convertirlo a HTML, el motor Web almacena el archivo analizado en la memoria caché, con lo cual se reduce significativamente el tiempo de procesamiento la siguiente vez que se solicita el archivo. Si bien la memoria caché resulta muy beneficiosa en un entorno de producción, puede causar inconvenientes en un entorno de desarrollo, ya que implica que los cambios realizados a archivos HTMPL no surtirán efecto hasta que el motor Web se recicle o hasta que se utilice la utilidad pdm_webcache. En entornos de desarrollo, es posible evitar este comportamiento si se especifica la propiedad SuppressHtmplCache del archivo de configuración. Sin embargo, se recomienda no suprimir la memoria caché de HTMPL en un entorno de producción, ya que tiene un gran impacto en el rendimiento general del motor Web.
Las páginas Web que pdmweb.exe proporciona se generan al leer archivos HTMPL y usarlos para generar HTML. Los archivos de plantilla HTML se identifican por el sufijo de archivo .htmpl. Estos archivos de plantilla se pueden modificar, lo que permite personalizar las páginas web de CA SDM.
La utilidad pdm_webcache
Use la utilidad pdm_webcache para eliminar uno o más formularios HTMPL de la caché del motor Web. De esta forma se obliga al motor Web a buscar estos formularios en el disco la siguiente vez que se utilizan, lo que hace posible que surtan efecto los cambios aplicados a los formularios.
pdm_webcache [-f form-name] [-g form-group] [-i interface] [-p process] [-v]
  • -f
    nombre-formulario
    Especifica el nombre del formulario que hay que eliminar de la memoria caché, como detail_cr.htmpl. Puede usar "%" (o "*") a modo de carácter comodín para seleccionar más de un formulario. Por ejemplo, si especifica:
    -f detail%
    se seleccionarán todos los formularios de detalles.
    Este argumento es opcional. En caso de omitirse, se seleccionarán todos los formularios existentes en la caché.
  • -g
    grupo-formularios
    Especifica el nombre del grupo de formularios que hay que eliminar de la caché, como Analista. Puede usar “%” (o “*”) a modo de carácter comodín para seleccionar más de un grupo de formularios
    .
    Por ejemplo, si especifica:
    -g Anal%
    se seleccionan todos los grupos de formularios que comiencen por “Anal”.
    Este argumento es opcional. En caso de omitirse, se seleccionarán todos los grupos de formularios existentes en la caché.
  • -i
    interfaz
    Especifica el nombre de la interfaz Web que hay que eliminar de la caché como, por ejemplo, la de analista, la de cliente o la de empleado. Puede utilizar “%” (o “*”) a modo de carácter comodín. Por ejemplo, si especifica:
    -i a%
    se selecciona la interfaz de analista.
    Este argumento es opcional. En caso de omitirse, se seleccionarán todas las interfaces existentes en la caché.
  • -p
    proceso
    Especifica el nombre del proceso del motor Web cuya caché hay que modificar como, por ejemplo, web:local.
    Este argumento es opcional. Si se omite, se seleccionan todos los motores Web.
  • -v
    Especifica un resultado detallado. Cuando se especifica este argumento, pdm_webcache muestra en una lista el nombre completo de todos los formularios eliminados de la caché, en el siguiente formato:
    interfaz
    :
    grupo-formularios
    :
    nombre-formulario
    Este argumento es opcional. Si se omite, pdm_webcache informa sólo del número de formularios eliminados de la caché de cada motor Web.
Modificación de plantillas HTML
Por lo general, es posible hacer dos tipos de cambios en las plantillas HTML:
  • Puede hacer modificaciones que serán visibles al usuario pero que no se verán alteradas por la interfaz Web antes de mostrarse. Por ejemplo, podría agregar un archivo GIF con el logotipo de su empresa a las páginas de la interfaz Web (código HTML de uso directo) añadiendo la referencia al archivo de plantilla pertinente, o podría agregar a la página JavaScript destinado a validar la introducción de datos. Todos los cambios que realice al archivo HTMPL y que no estén incluidos dentro de una etiqueta PDM, tal y como se define a continuación, se transfieren sin cambios al HTML que se devuelve al usuario.
  • Puede modificar los apartados sustituibles de las plantillas. Por ejemplo, podría agregar nuevos datos de aplicación a la página de detalles de solicitud.
Distintos tipos de entradas de plantilla le permiten hacer lo siguiente:
  • Mostrar información al usuario sobre CA SDM.
  • Configurar una página de consulta.
  • Crear vínculos a otras páginas de CA SDM mediante etiquetas de vínculo.
Archivos que no se recomienda modificar
Ciertas plantillas HTMPL y ciertos archivos JavaScript contienen información necesaria para muchos formularios web de CA SDM. La información incluida en estas plantillas depende de cada versión y es, a la vez, fundamental para el correcto funcionamiento de la interfaz web de CA SDM. Por lo tanto, estos archivos siempre se reemplazan cuando se lanza al mercado una nueva versión de CA SDM; los cambios realizados no se actualizan.
Las plantillas a las que afecta esta restricción son las siguientes:
  • ahdtop.htmpl
    Contiene estilos, secuencias de comandos y variables de JavaScript que se utilizan a través de la interfaz web de CA SDM. Este archivo forma parte del marco principal de la interfaz Web y siempre está presente durante una sesión. Todos los formularios de CA SDM cuentan con acceso a la variable ahdtop de JavaScript que hace referencia a la ventana donde se encuentra ahdtop.htmpl.
  • menu_frames.htmpl
    Define el conjunto de marcos HTML que utiliza el formulario principal de CA SDM.
  • msg_cat.js
    Contiene el texto de todos los mensajes utilizados en los archivos JavaScript de CA SDM.
  • reports.htmpl
    Contiene datos necesarios para los informes Web.
  • std_body.htmpl
    Contiene información estándar utilizada al comienzo del cuerpo de la mayoría de plantillas HTMPL.
  • std_footer.htmpl
    Contiene información estándar utilizada al final del cuerpo de la mayoría de plantillas HTMPL.
  • std_head.htmpl
    Contiene información estándar utilizada al comienzo del encabezado de casi todas las plantillas HTMPL.
  • styles.htmpl
    Contiene estilos CSS utilizados a través de la interfaz web de CA SDM.
Aunque no es posible modificar estos archivos directamente, puede agregar más información a ellos. Cada archivo xxx.htmpl restringido (excepto los archivos menu_frames.htmpl y reports.htmpl) cuenta con su archivo xxx_site.htmpl correspondiente susceptible de modificación. Por ejemplo, se puede agregar información adicional a ahdtop.htmpl mediante la modificación de ahdtop_site.htmpl o agregar nuevos mensajes mediante la modificación de msg_cat_site.js.
El archivo xxx_site.htmpl que corresponde a cada archivo restringido está cargado después del archivo principal, por lo que se puede omitir o cambiar JavaScript en el archivo principal. Extreme las precauciones al agregar información, ya que cualquier cambio realizado incorrectamente en estos archivos puede provocar problemas inesperados en la interfaz web de CA SDM.
Pautas para nuevos archivos HTMPL
Se pueden agregar sus propios archivos HTMPL a la interfaz web de CA SDM. Siga estas pautas como ayuda para asegurarse de que sus archivos HTMPL funcionan correctamente junto con el resto de la interfaz de CA SDM:
  1. Incluya la siguiente instrucción en algún lugar de la sección <HEAD> del archivo. Se recomienda incluirla a continuación de la instrucción <TITLE> (en caso de que la hubiera). Define diversas variables globales de JavaScript que requiere la interfaz web de CA SDM y, también, registra su página en el gestor de ventanas de CA SDM:
    <PDM_INCLUDE FILE=std_head.htmpl>
  2. Incluye el siguiente atributo como parte de la etiqueta <BODY> del archivo. Este atributo ayuda al gestor de ventanas de CA SDM a realizar el seguimiento de su página:
    onUnload="deregister_window()"
  3. Incluya la siguiente instrucción al principio de la sección <BODY> de su archivo. El argumento “menubar=no” es opcional; en caso de especificarse, suprime la barra de menús de CA SDM:
    <PDM_INCLUDE FILE=std_body.htmpl [menubar=no]>
  4. Incluya la siguiente instrucción al final de la sección <BODY> de su archivo.
    <PDM_INCLUDE FILE=std_footer.htmpl>
Adición de información de estado definida por el usuario
Muchos clientes desean tener la capacidad de incrustar su propia información de estado en las páginas web de CA SDM y de transferir esta información a todas las páginas posteriores que se llegan a proporcionar en una sesión de usuario. Es posible averiguar esta información mediante instrucciones condicionales en los archivos HTMPL.
La información de estado correspondiente a la sesión de un usuario se consigue definiendo el atributo especial USER_STATE en sus vínculos o formularios. Cuando se ha enviado al motor web de CA SDM, todas las páginas que se presenten al usuario tendrán a disposición la variable HTMPL USER_STATE y, además, está establecida como el valor enviado que ha enviado USER_STATE por última vez.
En los siguientes ejemplos se muestra cómo podría configurar una entrada en CA SDM desde alguna otra parte del sitio como, por ejemplo, desde páginas orientadas al personal de ventas:
  • Mediante un hipervínculo
    <a href="/CAisd/pdmweb.exe?USER_STATE=Sales">Service Desk</a>
  • Mediante un formulario con un campo oculto
    <form action="http://yourhost.com/CAisd/pdmweb.exe"> <input type=hidden name=USER_STATE value=Sales>
    Haga clic en el botón correspondiente a Service Desk
    <input type=submit> </form>
A continuación, se pueden modificar los formularios HTMPL en función de la información sobre el estado:
<PDM_IF "$USER_STATE" == "Sales">
información personalizada para el público de ventas
<PDM_ELIF "$USER_STATE" == "Engineering">
información personalizada para los técnicos
<PDM_ELSE>
información para el resto de personas
</PDM_IF>
Creación directa de una solicitud a partir de una plantilla
Es posible crear una nueva solicitud directamente desde una plantilla mediante una dirección URL.
Ejemplo
http://machinename/CAisd/pdmweb.exe?FACTORY=cr+OP=CREATE NEW+PERSID=cr:3106+use_template=1
donde cr:3106 es el ID persistente de la plantilla.
Directorios utilizados por el servidor HTTP
La instalación predeterminada de CA SDM define dos directorios virtuales en el servidor HTTP:
  • El directorio virtual CAisd indica el siguiente directorio en la instalación de CA SDM:
    1. En Windows:
      directorio-instalación
      \bopcfg\www\wwwroot
    2. En UNIX: $NX_ROOT/bopcfg/www/wwwroot
  • El directorio virtual CAisd/sitemods indica el siguiente directorio durante la instalación de CA SDM:
    1. En Windows:
      directorio-instalación
      \site\mods\www\wwwroot
    2. En UNIX: $NX_ROOT/site/mods/www/wwwroot
Los subdirectorios que se encuentran en estos directorios virtuales son:
Subdirectorio
Almacena
css
Hojas de estilo
ayuda
Ayuda de la interfaz Web
html
Archivos HTML
img
Archivos gráficos
scripts
JavaScript
sitemods
Modificaciones definidas por el sitio
Si se decide crear una nueva versión de cualquiera de los archivos incluidos en los directorios css, html, img o scripts, se recomienda encarecidamente no actualizar el archivo ubicado en /CAisd. En su lugar, almacene el archivo en el subdirectorio apropiado de /CAisd/sitemods. Por ejemplo, si se decide modificar una hoja de estilo ubicada en /CAisd/css, se debe almacenar la versión en /CAisd/sitemods/css. Cuando el motor Web analiza un archivo HTMPL, modifica automáticamente los nombres de archivo que comienzan por $CAisd de modo que señalen a sitemods en caso de que el archivo exista en un subdirectorio de sitemods.
La utilización del directorio /CAisd/sitemods supone las siguientes ventajas:
  • Permite llevar un registro de los archivos distribuidos que ha modificado.
  • Le proporciona fácil acceso a la versión original en caso de que haya alguna pregunta o algún problema.
  • Facilita el proceso de mantenimiento o de instalación de una nueva versión, ya que el programa de instalación de CA SDM no coloca nunca ningún archivo en el directorio /CAisd/sitemods.
No hay ningún subdirectorio /CAisd/sitemods/help. Ya que los datos de ayuda están en archivos HTML estándar (no en plantillas HTMPL), el motor Web no puede cambiar dinámicamente referencias de archivo. Si se requiere modificar la ayuda, se deben realizar los cambios en /CAisd/help.
El subdirectorio HTML contiene algunos archivos de uso constante que no necesitan que el motor Web los procese y que pueden mejorar el rendimiento si se almacenan en la caché del explorador. Si se crea una nueva versión de cualquiera de estos archivos, se deben buscar detenidamente en el archivo referencias a otros archivos modificados. Al no haber procesamiento por parte del motor Web, deberá insertar manualmente una referencia a sitemods allí donde resulte apropiado.
Descarga de adjuntos de PDF
Cuando se descarga e intenta ver un archivo adjunto de PDF en CA SDM, puede que el archivo PDF no se muestre correctamente o que aparezca una ventana en blanco después de actualizar a la versión de Adobe Acrobat 7.0 o 8.0. Con CA SDM, puede aparecer el archivo PDF correctamente si se siguen los siguientes pasos:
  1. Establezca el parámetro
    forceDecompressOnDownload
    en YES en NX_ROOT\bopcfg\www\CATALINA_BASE\webapps\CAisd\WEB-INF\web.xml.
    Linux: $NX_ROOT es /opt/CAisd
  2. Reinicie los servicios de CA SDM.