Definir el esquema de notificación

Las reglas de suscripción insertan notificaciones en una vista de notificación. Se trata de una vista sobre la tabla de notificaciones y recibe el nombre de la clase de notificación. Los esquemas de la vista y de la tabla subyacente se derivan del esquema de clase de notificación. Defina los campos que forman este esquema en la clase de notificación.

En este tema se describen los campos predeterminados que Notification Services agrega al esquema y cómo crear campos personalizados, incluidos los campos calculados personalizados, para los datos de notificaciones.

Campos de notificación predeterminados

Al crear una tabla que almacena notificaciones para una clase de notificación, Notification Services crea una columna en la tabla para cada campo de notificación declarado y agrega otras cinco columnas que se utilizan para la aplicación de formato y entrega de la notificación:

[!NOTA] No defina los campos siguientes en el esquema de clase de notificación. Si lo hace, la creación de la aplicación da un error a causa de la duplicación de las definiciones de campos.

  • NotificationId es una columna bigint. Notification Services da un valor a este campo para cada notificación. El valor es único dentro de la clase de notificación.
  • NotificationBatchId es una columna bigint. Cada activación de reglas que genera notificaciones produce uno o más lotes de notificaciones. Notification Services inserta automáticamente el número de proceso por lotes en la tabla de notificaciones.
  • SubscriberId es una columna nvarchar(255) que contiene el identificador del suscriptor para la notificación generada. Notification Services utiliza el identificador del suscriptor para buscar información de entrega para la notificación. La regla de suscripción que genera notificaciones debe insertar este valor.
  • DeviceName es una columna nvarchar(255) que contiene el nombre del dispositivo de un suscriptor como se almacena en la tabla SubscriberDevices de la base de datos de la instancia. Notification Services utiliza el nombre del dispositivo para obtener la información de entrega y Notification Services puede proporcionar el nombre del dispositivo a un formateador de contenido para un formato personalizado. La regla de suscripción que genera notificaciones debe insertar este valor. Tenga en cuenta que el par SubscriberId y DeviceName debe coincidir con un registro de la tabla SubscriberDevices.
  • SubscriberLocale es una columna nvarchar(10) que contiene un código de configuración regional. Este código de configuración regional debe ser uno de los códigos de configuración regional admitidos y debe ser insertado por la regla de suscripción. Notification Services pasa esta información al formateador de contenido para que pueda aplicar el formato regional específico. Para obtener una lista de los códigos compatibles, vea Subscriber Locale Codes.

Las columnas posteriores de la tabla de notificaciones se definen mediante los campos de notificación en la clase de notificación. Detrás de sus campos personalizados, Notification Services agrega tres campos adicionales para hacer un seguimiento de entrega de notificaciones:

  • DeliveryStatusCode es una columna tinyint que contiene un código para el estado de entrega. Esta información no debe utilizarse para la generación de informes.
  • SentTime es una columna datetime que contiene la hora a la que el protocolo de entrega informó del estado de entrega de la notificación.
  • LinkNotificationId es una columna bigint que sólo es relevante cuando se utiliza la entrega de resumen. Si se incluyó la notificación en una síntesis y esta notificación no fue la primera de aquella síntesis, este campo contiene el identificador de la primera notificación. La primera notificación contiene la información de estado y hora.

Estos campos no están destinados a la depuración y creación de informes. En su lugar, utilice la NS<nombreDeClaseDeNotificación>NotificationDistribution (vista), que proporciona esta información en un formato más legible.

Campos de notificación personalizados

Los campos personalizados son los campos que almacenan los datos en los que están interesados los suscriptores o que se utilizan para generar la notificación final.

Definir los campos personalizados de una clase de notificación requiere saber qué datos se desea enviar, que deben coincidir con los datos producidos por la regla de suscripción que genera notificaciones.

Para cada campo personalizado debe definir el nombre del campo y el tipo de datos. Si desea enviar notificaciones que incluyan predicciones meteorológicas, podría definir los siguientes campos de notificación:

  • Nombre de campo: City; Tipo de campo: nvarchar(35)
  • Nombre de campo: State; Tipo de campo: nvarchar(35)
  • Nombre de campo: Forecast; Tipo de campo: nvarchar(3500)

Los tipos de datos para estos campos deben ser compatibles con los tipos de datos de origen utilizados al generar las notificaciones.

Si está utilizando la entrega de resumen y desea agrupar todas las notificaciones de un suscriptor para el mismo estado, defina agrupación implícita como true para dicho campo. La nueva definición para el campo State es la siguiente:

  • Nombre de campo: State; Tipo de campo: nvarchar(35); agrupación implícita: true

Para obtener más información acerca de la entrega de resumen, vea Especificar entrega de resumen o de multidifusión.

Para definir campos de una clase de notificación:

Campos calculados

Los campos calculados permiten calcular datos de notificaciones inmediatamente antes de que el contenido se pase al formateador de contenido.

Los campos calculados utilizan expresiones Transact-SQL para generar un valor para un campo de notificación inmediatamente antes que la notificación se pase al formateador de contenido. Puede utilizar cualquier expresión Transact-SQL que se pueda evaluar como parte de una consulta SELECT en la base de datos de aplicaciones. Esto incluye el uso arbitrario de constantes y la realización de llamadas a función.

[!NOTA] En la sintaxis de Transact-SQL, las constantes de cadena deben ir entre comillas. Por tanto, si utiliza una cadena en un campo calculado, debe escribirla en apóstrofos sencillos. Si la cadena es Unicode, coloque delante de la misma una N; por ejemplo, N'myString'.

Si desea agregar un campo calculado a la clase de notificación, defina un nombre de campo y la expresión Transact-SQL. Por ejemplo, si desea convertir un precio en una cadena con formato, podría especificar lo siguiente en la definición del campo calculado:

  • Nombre de campo: FormattedStockPrice;
  • Expresión de Transact-SQL: CONVERT(NVARCHAR(10), StockPrice, 1)

Cuando se envía una notificación al formateador de contenido, este campo calculado toma el valor en el campo StockPrice y lo convierte en una cadena con formato. Por ejemplo, si el campo StockPrice es un valor money de 1000,70, FormattedStockPrice será la cadena siguiente: 1,000.70.

También puede especificar que se utilice un campo calculado para determinar qué notificaciones se agrupan para la entrega de resumen. Para agrupar notificaciones con el mismo valor de campo calculado, defina la propiedad de agrupación implícita como true para el campo calculado.

Para definir campos calculados de una clase de notificación:

Vea también

Conceptos

Configurar formateadores de contenido
Especificar entrega de resumen o de multidifusión
Especificar el tamaño de lote de notificaciones
Especificar el tiempo de caducidad de una notificación
Especificar entrega de resumen o de multidifusión

Otros recursos

Definir clases de notificación
Configurar protocolos de entrega
Expresiones (Transact-SQL)
CREATE TABLE (Transact-SQL)
Definir clases de notificación
Definir aplicaciones de Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005