Acerca del ejemplo de creación de un patrón solar

Este ejemplo crea un patrón solar para calcular diversas horas de salida y puesta del sol para una fecha y posición sobre la Tierra concretas.

La fecha se suministra en un mensaje XML de WebSphere MQ y la posición se especifica cuando el usuario utiliza el patrón Solar para generar una instancia. Cada instancia del patrón tiene la variable posición especificada.

La salida es un mensaje XML de WebSphere MQ que contiene la siguiente información detallada:

El ejemplo de Creación de un patrón solar se utiliza para demostrar las siguientes funciones de creación de patrones:

Propiedades de destino
Exponer propiedades definidas por el usuario como propiedades de destino en un patrón.
Enumeraciones
Crear una enumeración, que se presenta en forma de lista desplegable. Los valores de la enumeración contienen tanto la latitud como la longitud, delimitadas por un espacio.
Transformaciones
Utilizar expresiones de serie XPath para extraer la latitud y la longitud de la enumeración para transformar las propiedades de destino Latitude y Longitude en parámetros.
Habilitación
Utilizar expresiones de serie XPath para habilitar las propiedades de destino Latitude y Longitude cuando la selección de la enumeración es Lugar personalizado y para inhabilitarlas cuando se selecciona un lugar en la enumeración.

Este ejemplo utiliza un flujo de mensajes y trata las siguientes acciones:

  1. Un nodo MQInput recibe un mensaje XML que contiene una fecha en formato UTC (Coordinated Universal Time) de la cola de WebSphere MQ SOLAR.
  2. Se utiliza un nodo PHPCompute para extraer la fecha del mensaje entrante, recopilar los valores de Latitude y Longitude de las propiedades definidas por el usuario (UDP - User Defined Properties), calcular las horas de salida y puesta del sol y añadirlas al mensaje XML.
  3. Un nodo MQOutput envía el mensaje XML aumentado a la cola de WebSphere MQ SUNSETSUNRISETIME.

Esquema XML del mensaje

<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://caspian.hursley.ibm.com"
  xmlns:solar="http://caspian.hursley.ibm.com" elementFormDefault="qualified">
  <element name="sun">
    <complexType>
      <sequence>
        <element name="dateQuery" type="date"/>
        <element name="sunEventTime" minOccurs="0" maxOccurs="1">
          <complexType>
            <sequence>
              <element name="sunrise" type="date"/>
              <element name="sunset" type="date"/>
              <element name="transit" type="date"/>
              <element name="civil_twilight_begin" type="date"/>
              <element name="civil_twilight_end" type="date"/>
              <element name="nautical_twilight_begin" type="date"/>
              <element name="nautical_twilight_end" type="date"/>
              <element name="astronomical_twilight_begin" type="date"/>
              <element name="astronomical_twilight_end" type="date"/>
            </sequence>
          </complexType>
        </element>
      </sequence>
    </complexType>
  </element>
</schema>

Ejemplo en XML del mensaje de entrada

<?xml version="1.0" encoding="UTF-8"?>
<solar:sun xmlns:solar="http://caspian.hursley.ibm.com"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://caspian.hursley.ibm.com solar.xsd">
  <solar:dateQuery>2010-04-15</solar:dateQuery>
</solar:sun>

Volver a la página inicial del ejemplo