Compartir a través de


Lección 5: Agregar una clase de suscripción

En esta lección, agregará una clase de suscripción al archivo de definición de aplicación (ADF) y luego actualizará la instancia de Notification Services para aplicar los cambios a la base de datos de la aplicación. Luego podrá revisar los cambios realizados en la base de datos de la aplicación.

Información básica sobre la clase de suscripción

Al definir una clase de suscripción, define el almacenamiento para los datos de suscripción y las consultas que generan notificaciones a partir de los datos de eventos y de suscripción.

Al definir el almacenamiento para los datos de suscripción, define los campos para los datos de suscripción recopilados. Si, por ejemplo, una parte de los datos de suscripción corresponde a una ciudad de interés, puede agregar un campo de suscripción City. A continuación, puede proporcionar una interfaz que permita a los suscriptores crear suscripciones en las que se especifiquen una ciudad.

Si la aplicación admite varias configuraciones regionales de los suscriptores y varios dispositivos, como correo electrónico y teléfonos móviles, también puede agregar los campos DeviceName y SubscriberLocale a los campos de suscripción. Estos campos permiten personalizar las notificaciones para distintos dispositivos, zonas horarias e idiomas.

Notification Services agrega un campo SubscriberId a la tabla subyacente por cada clase de suscripción.

Además de definir los campos de suscripción, también debe definir una regla de generación de notificaciones. Esta regla es una consulta Transact-SQL que establece una correspondencia entre eventos y datos de suscripción e inserta los resultados en la vista de clase de notificación. Estas reglas pueden estar controladas por eventos o pueden programarse. Las reglas controladas por eventos se ejecutan cuando llegan los eventos. Las reglas programadas evalúan suscripciones individuales de una programación proporcionada en la suscripción.

Una clase de suscripción puede definir otro tipo de información, como índices de los datos de suscripción y tablas adicionales. Para obtener más información sobre las clases de suscripción, vea Definir clases de suscripción.

Al crear la aplicación, Notification Services utiliza la definición de la clase de suscripción para crear tablas, vistas, índices y procedimientos almacenados para la clase de suscripción.

Clase de suscripción WeatherCity

En esta aplicación, agregará una clase de suscripción WeatherCity al archivo ADF. Esta clase de suscripción tiene tres campos, DeviceName, SubscriberLocale y City. El campo City es el campo importante de esta aplicación. Cuando los suscriptores crean suscripciones para información meteorológica, deben especificar el nombre de una ciudad.

Los campos de suscripción DeviceName y SubscriberLocale está definidos, por lo que puede agregar compatibilidad para varios dispositivos y configuraciones regionales.

Esta clase de suscripción también define una consulta de generación de notificaciones. Para escribir esta consulta, debe saber qué datos de evento hay disponibles, qué datos de notificación desea producir y qué datos de suscripción hay disponibles:

  • Como se ha mostrado en la lección 3, la clase de evento WeatherData tiene cinco campos: City, Date, Low, High y Forecast.
  • La clase de suscripción tiene un campo City.
  • Como se ha mostrado en la lección 4, la clase de notificación WeatherAlerts tiene los mismos campos que la clase de evento (City, Date, Low, High y Forecast).
  • Asimismo, recuerde que la tabla de notificación subyacente tiene los campos siguientes: SubscriberId, DeviceName y SubscriberLocale.

Estos campos pasan a ser columnas en las vistas. Conociendo estos campos, puede combinar las vistas de evento y de suscripción e insertar datos en la vista de notificación:

INSERT INTO WeatherAlerts(SubscriberId, 
   DeviceName, SubscriberLocale, City, Date, Low, High, 
   Forecast)
SELECT s.SubscriberId, s.DeviceName, s.SubscriberLocale,
    e.City, e.Date, e.Low, e.High, e.Forecast
FROM WeatherData e, WeatherCity s
WHERE e.City = s.City;

Cuando Notification Services ejecuta esta consulta, combina el conjunto actual de eventos de la vista de la clase de evento con las suscripciones de la vista de la clase de suscripción, en función de las coincidencias existentes entre los valores de City del evento y la suscripción. Notification Services inserta los resultados en la vista de notificación.

Agregar la clase de suscripción al ADF

El XML de esta sección define la clase de suscripción. Examine el XML y siga las instrucciones que se indican para copiarlo en el ADF.

Para agregar la clase de suscripción al ADF

  1. Haga clic en Copiar código para copiar el XML en el Portapapeles de Windows.

    <!-- Subscription Classes -->
    <SubscriptionClasses>
      <SubscriptionClass>
        <SubscriptionClassName>WeatherCity</SubscriptionClassName>
        <Schema>
          <Field>
            <FieldName>DeviceName</FieldName>
            <FieldType>nvarchar(255)</FieldType>
            <FieldTypeMods>not null</FieldTypeMods>
          </Field>
          <Field>
            <FieldName>SubscriberLocale</FieldName>
            <FieldType>nvarchar(10)</FieldType>
            <FieldTypeMods>not null</FieldTypeMods>
          </Field>
          <Field>
            <FieldName>City</FieldName>
            <FieldType>nvarchar(40)</FieldType>
            <FieldTypeMods>not null</FieldTypeMods>
          </Field>
        </Schema>
        <EventRules>
          <EventRule>
            <RuleName>WeatherEventRule</RuleName>
            <EventClassName>WeatherData</EventClassName>
            <Action>
              INSERT INTO WeatherAlerts(SubscriberId, 
                 DeviceName, SubscriberLocale, City, Date, Low, High, 
                 Forecast)
              SELECT s.SubscriberId, s.DeviceName, s.SubscriberLocale,
                  e.City, e.Date, e.Low, e.High, e.Forecast
              FROM WeatherData e, WeatherCity s
              WHERE e.City = s.City;
            </Action>
          </EventRule>
        </EventRules>
      </SubscriptionClass>
    </SubscriptionClasses>
    
  2. En el Explorador de soluciones, abra el archivo WeatherADF.xml.

  3. Sustituya el XML siguiente por el código que acaba de copiar.

    <!-- Subscription Classes -->

    <SubscriptionClasses></SubscriptionClasses>

  4. En el menú Archivo, seleccione Guardar WeatherADF.xml.

Actualizar la instancia de Notification Services

Tras modificar el ADF, debe actualizar la instancia de Notification Services para agregar los objetos de clase de suscripción a la base de datos de la aplicación.

Para actualizar la instancia de Notification Services

  1. En el Explorador de objetos, expanda Notification Services.

  2. Haga clic con el botón secundario en Tutorial, seleccione Tareas y, a continuación, seleccione Actualizar.

  3. En el cuadro de diálogo Actualizar instancia, haga clic en Examinar, busque el archivo TutorialICF.xml y, a continuación, haga clic en Abrir.

  4. En el panel Parámetros, revise los valores de los parámetros.

  5. Haga clic en Aceptar.

  6. Revise el cuadro de diálogo Notification Services: resumen de actualización y haga clic en Actualizar.

  7. Cuando las acciones de actualización hayan finalizado, haga clic en Cerrar.

Revisar los cambios realizados en la base de datos de la aplicación

Una vez que se ha actualizado la instancia, Notification Services agrega tablas, vistas y procedimientos almacenados para la clase de suscripción en la base de datos TutorialWeather de la aplicación:

  • La vista dbo.WeatherCityView proporciona una vista de los registros de suscripción para la clase de suscripción asociada.
  • La vista dbo.WeatherCity contiene el conjunto actual de suscripciones que están siendo evaluadas por la aplicación. En la consulta de generación de notificaciones, debe seleccionar datos de suscripción de esta vista.
  • La tabla dbo.NSWeatherCitySubscriptions es la tabla subyacente que contiene los datos de suscripción para la clase de suscripción.
    ms166580.Caution(es-es,SQL.90).gifAdvertencia:
    No modifique directamente los datos en las tablas y las vistas de suscripción. Utilice los objetos de administración de suscripciones. Para obtener más información, vea Desarrollar interfaces de administración de suscripciones.

Puede utilizar el Explorador de objetos para examinar estos objetos en la base de datos TutorialWeather. Las tablas y las vistas de uso interno sólo contienen datos que se utilizan para el seguimiento interno y para la búsqueda de datos interna.

Es posible que deba actualizar el Explorador de objetos para ver los objetos nuevos.

Lección siguiente

Lección 6: Agregar un Proveedor de eventos

Vea también

Conceptos

Tutorial de Notification Services

Otros recursos

Vistas de Notification Services
Tablas de Notification Services
Definir clases de suscripción
Crear soluciones de notificación
Introducción a SQL Server Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005