Share via


Definir el esquema de suscripción

Notification Services genera notificaciones utilizando consultas de Transact-SQL que combinan datos de eventos y suscripciones. Para la mayoría de las aplicaciones, debe especificar los campos de suscripción que se utilizan al generar notificaciones. Estos campos se especifican en el esquema de la clase de suscripción.

En este tema se describen los campos predeterminados agregados por Notification Services, los campos estándar que se pueden agregar al esquema y cómo crear campos personalizados.

Campos predeterminados de suscripción

Todas las suscripciones requieren información común. Notification Services debe ser capaz de identificar de forma única cada suscripción, identificar el suscriptor de cada suscripción y determinar si la suscripción está habilitada. Si la clase de suscripción admite suscripciones programadas, la suscripción se debe asociar con una programación de suscripciones.

Para simplificar el desarrollo de aplicaciones, Notification Services agrega automáticamente los siguientes campos de clase de suscripción para esta información común:

[!NOTA] No defina los siguientes campos en el esquema de clase de suscripción. Si lo hace, la creación de la aplicación genera un error debido a definiciones de campos duplicados.

  • Notification Services incluye los campos SubscriptionId, SubscriberId y Enabled. Cuando Notification Services crea la aplicación, agrega las siguientes columnas a la definición de tabla de suscripción:
    • SubscriptionId es una columna de identidad de tipo bigint. Notification Services proporciona un valor para esta columna en cada nueva suscripción.
    • SubscriberId es una columna de tipo nvarchar(255). La interfaz de administración de suscripciones debe proporcionar el valor del identificador de suscriptor al agregar una suscripción.
    • Enabled es un campo de tipo Boolean que puede establecer para cada suscripción mediante programación. Si establece el valor de Enabled en false suspende la generación de notificaciones para la suscripción. El valor predeterminado es true.
  • Si la clase de suscripción tiene reglas programadas, Notification Services incluye un campo Scheduled. En la tabla de suscripciones, esto es una clave externa en una tabla de programación de suscripciones. El valor de programación se define en una interfaz de administración de suscripciones cuando el usuario crea una suscripción programada. El campo Scheduled es una columna de tipo int que permite valores NULL en el caso de que la clase de suscripción admita suscripciones controladas por eventos y programadas.

Campos estándar: DeviceName y SubscriberLocale

Dependiendo de su aplicación, puede que desee definir dos campos en un esquema de clase de suscripción: DeviceName y SubscriberLocale. Estos campos se definen a menudo en cada clase de suscripción para permitir al suscriptor seleccionar un dispositivo y una configuración regional, pero no son obligatorios. Si se definen los campos, el distribuidor puede utilizar la información para el formato y la entrega de notificaciones.

Campo DeviceName

Un dispositivo de suscriptor es donde se entrega una notificación. Un dispositivo puede ser el correo electrónico, Windows Messenger, un teléfono móvil o cualquier otro dispositivo que la aplicación admita.

Cuando genera notificaciones, los datos de notificaciones deben incluir el nombre de dispositivo para la entrega de notificaciones. Si permite que los suscriptores especifiquen un dispositivo al crear una suscripción, incluya el campo DeviceName en el esquema de clase de suscripción.

Utilice las propiedades siguientes para el campo DeviceName:

  • Nombre de campo: DeviceName
  • Tipo de campo: nvarchar(255)
  • Modificador de campo: NOT NULL

La información acerca del dispositivo, como la dirección del suscriptor, se encuentra en los datos de suscriptor en la base de datos de instancia. Use la vista NSSubscriberDeviceView para revisar la información de suscriptor y de los dispositivos de suscriptor para una instancia de Notification Services. Para obtener más información, vea NSSubscriberDeviceView.

Si excluye el campo DeviceName del esquema, también debe realizar una de las siguientes acciones:

  • Si su aplicación admite sólo un dispositivo, proporcione un nombre de dispositivo estático en la regla de Transact-SQL utilizada para generar notificaciones.
  • Si su aplicación admite varios dispositivos, seleccione un dispositivo dinámicamente. Por ejemplo, un suscriptor podría tener varios dispositivos y su aplicación podría seleccionar el dispositivo basándose en la hora del día. Durante el horario comercial, podría enviar todas las notificaciones a la cuenta de correo electrónico de la empresa del suscriptor. Fuera del horario laboral, podría enviar notificaciones críticas al teléfono del suscriptor y el resto de notificaciones a la cuenta de correo electrónico principal del suscriptor.

Campo SubscriberLocale

La configuración regional es el idioma y el país de la notificación. Notification Services admite muchas configuraciones regionales. Para obtener una lista de configuraciones regionales, vea Subscriber Locale Codes.

Cuando genere notificaciones, los datos de notificaciones deben incluir la configuración regional. Si permite que los suscriptores especifiquen una configuración regional, incluya el campo SubscriberLocale en el esquema de clase de suscripción.

Use las siguientes propiedades para el campo SubscriberLocale:

  • Nombre de campo: SubscriberLocale
  • Tipo de campo: nvarchar(10)
  • Modificador de campo: NOT NULL

Si excluye el campo SubscriberLocale, debe realizar una de las siguientes acciones:

  • Si su aplicación admite sólo una configuración regional, proporcione una configuración regional estática en la regla de Transact-SQL usada para generar notificaciones.
  • Si su aplicación admite varias configuraciones regionales, seleccione la configuración regional de suscriptor de otro origen, como una tabla de perfil de usuario de otra base de datos.

Campos personalizados de suscripción

La mayoría de las aplicaciones también tienen campos personalizados de suscripción. Estos campos definen valores que los suscriptores pueden personalizar en sus suscripciones y que se utilizan para crear columnas en la tabla de suscripciones.

La creación de campos personalizados requiere que conozca qué información pueden proporcionar los suscriptores para personalizar sus suscripciones. Por ejemplo, una aplicación meteorológica permitiría a los usuarios seleccionar sólo una ciudad, por lo que sólo se definiría un campo personalizado de "ciudad". Una aplicación de vuelos permitiría a los usuarios seleccionar un origen del vuelo, un destino, un precio y un compañía aérea, por lo que se crearían campos como Origen, Destino, Precio y Compañía.

Cuando define un campo personalizado, también debe definir el tipo de datos de SQL Server del campo y los modificadores de campo, como por ejemplo si el campo permite un valor NULL. Ya que estos campos definen columnas de tablas, debe seguir las directrices para definir columnas de tablas. Para obtener más información, vea CREATE TABLE (Transact-SQL).

[!NOTA] Para obtener una lista de tipos admitidos, vea FieldType Element for SubscriptionClass/Schema/Field (ADF).

Definir el esquema

En resumen, cuando define el esquema de una clase de suscripción, define campos personalizados y, si se usan, los campos estándar DeviceName y SubscriberLocale. No defina campos predeterminados, como SubscriberId.

Para definir el esquema de una clase de suscripción

Si está definiendo una aplicación con XML, defina el esquema de una clase de suscripción en el archivo de definición de aplicación (ADF). Si está definiendo una aplicación mediante programación, utilice Objetos de administración de Notification Services (NMO) para definir el esquema de una clase de suscripción.

Ejemplos

Para obtener ejemplos de esquema, vea Ejemplos de esquema de suscripción.

Vea también

Conceptos

Definir la clase principal de suscripción
Definir reglas de suscripción
Definir índices de una clase de suscripción
Definir crónicas para una clase de suscripción
Recopilar información relativa a suscripciones

Otros recursos

Definir clases de suscripción
Tipos de datos (motor de base de datos)
CREATE TABLE (Transact-SQL)
FieldType Element for SubscriptionClass/Schema/Field (ADF)
Desarrollar interfaces de administración de suscripciones

Ayuda e información

Obtener ayuda sobre SQL Server 2005