Definizione dello schema di sottoscrizione

Notification Services genera notifiche utilizzando query Transact-SQL che uniscono in join dati degli eventi e di sottoscrizione. Per la maggioranza delle applicazioni, è necessario specificare i campi sottoscrizione utilizzati nella generazione delle notifiche. Specificare questi campi nello schema della classe di sottoscrizione.

In questo argomento vengono descritti i campi predefiniti aggiunti da Notification Services, i campi standard che è possibile aggiungere allo schema e la procedura di creazione di campi personalizzati.

Campi di sottoscrizione predefiniti

Tutte le sottoscrizioni richiedono informazioni comuni. Notification Services deve essere in grado di identificare in modo univoco ogni sottoscrizione, di identificare il sottoscrittore per ogni sottoscrizione e di determinare se la sottoscrizione è attivata. Se la classe di sottoscrizione supporta le sottoscrizioni pianificate, la sottoscrizione deve essere associata a una pianificazione delle sottoscrizioni.

Per semplificare lo sviluppo delle applicazioni, Notification Services aggiunge automaticamente i campi della classe di sottoscrizione seguenti per queste informazioni comuni:

[!NOTA] Non definire i campi seguenti nello schema della classe di sottoscrizione. In caso contrario, la creazione dell'applicazione non riuscirà a causa delle definizioni di campo duplicate.

  • Notification Services include i campi SubscriptionId, SubscriberId e Enabled. Quando Notification Services crea l'applicazione, aggiunge le colonne seguenti alla definizione della tabella della sottoscrizione:
    • SubscriptionId è un colonna Identity bigint. Notification Services specifica un valore per la colonna per ogni nuova sottoscrizione.
    • SubscriberId è una colonna nvarchar(255). L'interfaccia di gestione delle sottoscrizioni deve specificare il valore dell'ID del sottoscrittore quando si aggiunge una sottoscrizione.
    • Enabled è un campo Booleano che è possibile impostare a livello di programmazione per ogni sottoscrizione. Impostando il valore Enabled per false si sospende la generazione di notifiche per la sottoscrizione. Il valore predefinito è true.
  • Se la classe di sottoscrizione include regole pianificate, Notification Services include un campo ScheduleId. Nella tabella delle sottoscrizioni questo diventa una chiave esterna a una tabella di pianificazione delle sottoscrizioni. Il valore della pianificazione è definito in un'interfaccia di gestione delle sottoscrizioni quando l'utente crea una sottoscrizione pianificata. ScheduleId è una colonna int che consente valori NULL, nel caso in cui la classe di sottoscrizione supporti sottoscrizioni basate sugli eventi e pianificate.

Campi standard: DeviceName e SubscriberLocale

In base all'applicazione, potrebbe essere necessario definire due campi in uno schema della classe di sottoscrizione: DeviceName e SubscriberLocale. Questi campi sono spesso definiti in ogni classe di sottoscrizione per consentire al sottoscrittore di selezionare dispositivo e impostazioni internazionali, ma non sono obbligatori. Se i campi sono definiti, il server di distribuzione può utilizzare le informazioni relative per la formattazione e il recapito delle notifiche.

Campo DeviceName

Un dispositivo del sottoscrittore è il dispositivo cui viene recapitata una notifica. Può essere un client di posta elettronica, Windows Messenger, un telefono cellulare oppure qualsiasi altro dispositivo supportato dall'applicazione.

Quando si generano le notifiche, i dati della notifica devono includere il nome del dispositivo per il recapito della notifica. Se si consente ai sottoscrittori di specificare un dispositivo alla creazione di una sottoscrizione, includere il campo DeviceName nello schema della classe di sottoscrizione.

Utilizzare le proprietà seguenti per il campo DeviceName:

  • Nome campo: DeviceName
  • Tipo campo: nvarchar(255)
  • Modificatore campo: NOT NULL

Le informazioni relative al dispositivo, ad esempio l'indirizzo del sottoscrittore, sono incluse nei dati del sottoscrittore nel database dell'istanza. Utilizzare la vista NSSubscriberDeviceView per esaminare le informazioni sui sottoscrittori e sui dispositivi dei sottoscrittori per l'istanza di Notification Services. Per ulteriori informazioni, vedere NSSubscriberDeviceView.

Se si esclude il campo DeviceName dallo schema, è necessario inoltre eseguire una delle seguenti operazioni:

  • Se l'applicazione supporta solo un dispositivo, specificare un nome del dispositivo statico nella regola Transact-SQL utilizzata per generare le notifiche.
  • Se l'applicazione supporta più dispositivi, selezionare un dispositivo in modo dinamico. Ad esempio, a un sottoscrittore potrebbero essere associati più dispositivi e l'applicazione potrebbe selezionare il dispositivo in base all'ora del giorno. Durante l'orario d'ufficio, è possibile fare in modo di inviare tutte le notifiche all'account di posta elettronica aziendale di un sottoscrittore. In altri orari, è possibile inviare le notifiche di importanza critica al telefono del sottoscrittore e tutte le altre al suo account di posta elettronica personale.

Campo SubscriberLocale

Le impostazioni internazionali includono lingua e paese/area per la notifica. Notification Services supporta numerose impostazioni internazionali. Per un elenco di impostazioni internazionali, vedere Subscriber Locale Codes.

Quando si generano le notifiche, i dati della notifica devono includere le impostazioni internazionali. Se si consente ai sottoscrittori di specificare le impostazioni internazionali, includere il campo SubscriberLocale nello schema della classe di sottoscrizione.

Utilizzare le proprietà seguenti per il campo SubscriberLocale:

  • Nome campo: SubscriberLocale
  • Tipo campo: nvarchar(10)
  • Modificatore campo: NOT NULL

Se si esclude il campo SubscriberLocale, è necessario inoltre eseguire una delle seguenti operazioni:

  • Se l'applicazione supporta solo un valore di impostazioni internazionali, specificare un valore statico nella regola Transact-SQL utilizzata per generare le notifiche.
  • Se l'applicazione supporta più impostazioni internazionali, selezionare le impostazioni internazionali del sottoscrittore da un'altra origine, ad esempio una tabella di profilo utente in un altro database.

Campi di sottoscrizione personalizzati

La maggioranza delle applicazioni dispone inoltre di campi di sottoscrizione personalizzati. Questi campi definiscono i valori che i sottoscrittori possono personalizzare nelle proprie sottoscrizioni e sono utilizzati per creare le colonne della tabella delle sottoscrizioni.

La creazione di campi personalizzati richiede la conoscenza delle informazioni che i sottoscrittori possono specificare per personalizzare le proprie sottoscrizioni. Ad esempio, un'applicazione per dati metereologici potrebbe consentire agli utenti di selezionare solo una città. In questo caso sarebbe necessario definire solo un campo personalizzato "city". Un'applicazione di gestione dei voli aerei potrebbe consentire agli utenti di selezionare località di partenza, destinazione, prezzo e vettore, In questo caso, sarebbe necessario creare campi come LeavingFrom, GoingTo, Price e Carrier.

Quando si definisce un campo personalizzato, è necessario inoltre definire il tipo di dati SQL Server del campo ed eventuali modificatori, ad esempio se il campo consente un valore NULL. Poiché questi campi definiscono le colonne delle tabelle, è necessario seguire le linee guida per la definizione delle colonne delle tabelle. Per ulteriori informazioni, vedere CREATE TABLE (Transact-SQL).

[!NOTA] Per un elenco di tipi supportati, vedere FieldType Element for SubscriptionClass/Schema/Field (ADF).

Definizione dello schema

In sintesi, quando si definisce lo schema per una classe di sottoscrizione, si definiscono i campi personalizzati e, se utilizzati, i campi standard DeviceName e SubscriberLocale. Non è necessario definire i campi predefiniti, ad esempio SubscriberId.

Per definire lo schema per una classe di sottoscrizione

Se si definisce un'applicazione tramite XML, definire lo schema per una classe di sottoscrizione nel file di definizione dell'applicazione (ADF). Se si definisce un'applicazione a livello di programmazione, utilizzare Notification Services Management Objects (NMO) per definire lo schema per una classe di sottoscrizione.

Esempi

Per esempi di schemi, vedere Esempi di schemi di sottoscrizioni.

Vedere anche

Concetti

Definizione della classe Core Subscription
Definizione delle regole di sottoscrizione
Definizione degli indici per una classe di sottoscrizione
Definizione di cronologie per una classe di sottoscrizione
Raccolta di informazioni correlate alle sottoscrizioni

Altre risorse

Definizione delle classi di sottoscrizione
Tipi di dati (Motore di database)
CREATE TABLE (Transact-SQL)
FieldType Element for SubscriptionClass/Schema/Field (ADF)
Sviluppo di interfacce di gestione delle sottoscrizioni

Guida in linea e informazioni

Assistenza su SQL Server 2005