Etiqueta getContent para recuperar contenido gestionado externamente

Se puede recuperar contenido de texto, como fragmentos de HTML para su uso en zonas de e-Marketing, de un sistema de gestión de contenido externo. Cuando se recupera contenido de texto de un sistema externo para mostrarlo en una página de tienda, el contenido se recupera mientras la página de tienda se representa. La etiqueta JSTL wcst:getContent se utiliza para aceptar y resolver URL de contenido para que sean válidos para la página de tienda en la que se va a mostrar el contenido. La etiqueta se utiliza entonces para recuperar el contenido del URL resuelto.

La etiqueta JSTL wcst:getContent se utiliza para incluir los resultados de un URL especificado para la ubicación de contenido en un sistema de gestión de contenido externo. El contenido que se recupera debe ser contenido de texto que se pueda incluir dentro de una página de tienda. Si el contenido que se va a recuperar contiene referencias de URL que son relativas a la ubicación del contenido, la etiqueta wcst:getContent actualiza las referencias de URL relativas para que sean URL totalmente calificados. Con el URL resuelto, se accede al URL y el contenido de texto que se encuentra en el URL totalmente calificado se incluye en la página de tienda. Cuando el contenido se recupera de la ubicación del URL resuelto, la etiqueta se utiliza para grabar el contenido en una variable especificada, o en el JSPWriter actual si no se especifica ninguna variable.

Cuando esta etiqueta se incluye en una página de tienda para resolver URL de contenido de un sistema externo, se pueden definir los siguientes atributos para la etiqueta wcst:getContent.
  • url - el URL del contenido que se va a recuperar. El URL no resuelto se puede especificar con este atributo o en el cuerpo de la etiqueta wcst:getContent.
  • var - la variable a la que se asigna el contenido. Si no se especifica este atributo de variable, el contenido se graba en el JSPWriter.
  • scope - el ámbito de la variable que se especifica con el atributo var. Los valores para el atributo scope pueden ser page, request, session y application. El valor predeterminado es page.

El contenido que se obtiene con esta etiqueta se recupera utilizando el mandato de tarea com.ibm.commerce.content.commands.GetContentCmd. Este mandato invoca el URL especificado para la etiqueta y recupera el contenido. La implementación predeterminada para el mandato de tarea GetContentCmd se configura en la tabla de base de datos STORECONF. Para obtener más información sobre cómo configurar la implementación predeterminada de este mandato de tarea, consulte com.ibm.commerce.content.commands.GetContentCmdImpl.

Los URL de contenido no resueltos deben llevar el prefijo http://[cmsHost]. Estos URL no resueltos se resuelven con el mandato de tarea com.ibm.commerce.content.commands.ResolveContentURLCmd. Cuando se llama a este mandato, el URL se invoca desde WebSphere Application Server. La implementación predeterminada del mandato de tarea sustituye el prefijo http://[cmshost] por el nombre de host para la clave wc.resolveContentURL.cmsInternalHost que se encuentra en la tabla de base de datos STORECONF. Si el mandato no detecta el prefijo http://[cmsHost], se considera que el URL se ha resuelto. Para obtener más información sobre cómo configurar la implementación predeterminada de este mandato de tarea, consulte com.ibm.commerce.content.commands.ResolveContentURLCmdImpl.

Almacenamiento en memoria caché de la etiqueta getContent

El mandato para la etiqueta wcst:getContent se puede almacenar en memoria caché. Para habilitar el almacenamiento en memoria caché de este mandato, añada la siguiente entrada cachespec en el archivo cachespec.xml.
<cache-entry>
  <class>command</class>
  <sharing-policy>not-shared</sharing-policy>
  <name>com.ibm.commerce.content.commands.GetContentCmdImpl</name>
  <cache-id>
    <component type="method" id="getCacheId">
      <required>true</required>
    </component>
    <priority>1</priority>
    <timeout>3600</timeout>
    <inactivity>600</inactivity>
  </cache-id>
  <dependency-id>getContent</dependency-id>
</cache-entry>
Con el almacenamiento en memoria caché habilitado, las páginas de tienda pueden incluir el contenido de un sistema de gestión de contenido externo. Podría ser necesario invalidar el contenido incluido si el contenido de origen cambia. Para invalidar este contenido almacenado en memoria caché, se pueden establecer tiempos de espera para la invalidación de memoria caché, o la memoria caché se puede vaciar cuando sea necesario. Si es necesaria una invalidación de memoria caché explícita, realice el siguiente procedimiento.
  1. Determine los URL de contenido que han cambiado. La comparación de los archivos previamente pre-representados con los archivos recién pre-representados puede ayudar a identificar los URL modificados. Ignore el contenido que no tenga un tipo MIME que sea text. El contenido que no sea texto no es almacenado en memoria caché por y es cargado directamente por el navegador. El contenido de texto puede almacenarse en memoria caché y ser consumido por zonas de e-Marketing en una página de tienda cuando se representa la zona de e-Marketing.
  2. Determine las filas de la tabla de base de datos que hacen referencia a cualquiera de los URL que han cambiado. Los URL de contenido se registran en la columna ATCHASTPATH de la tabla.
  3. Utilice el programa de utilidad stagingprop para insertar registros de en la base de datos de producción para invalidar las zonas de e-Marketing que hacen referencia al contenido modificado. De forma alternativa, actualice la columna TIMEUPDATED de la tabla ATCHAST ejecutando el siguiente SQL
    update atchast set timeupdated = current timestamp where atchastpath in ('http://[cmsHost]/contentPath');
    Donde http://[cmsHost]/contentPath es el URL de contenido para el contenido modificado.
    Nota: Si debe insertar manualmente los registros de CACHEIVL en la base de datos de producción, utilice el siguiente SQL
    insert into cacheivl (dataid) values ('contentId:collateral_Id'); 
    
    
    Donde collateral_Id es el valor de la columna COLLATERAL_ID de la tabla de base de datos . Para identificar todas las filas de la tabla COLLATERAL que están relacionadas con el contenido que ha cambiado, debe hacer referencia a la tabla . Esta tabla registra la relación entre las entradas de las tablas COLLATERAL y ATCHAST. Para recuperar una lista de los valores de COLLATERAL_ID que hacen referencia a un fragmento modificado de contenido, como http://[cmsHost]/contentPath, utilice el siguiente SQL
    select object_id from atchrel 
    where atchobjtyp_id = 4 
    and atchtgt_id in (select atchtgt_id from atchast where atchastpath in ('http://[cmsHost]/contentPath'));