Condividi tramite


Lezione 5: Aggiunta di una classe di sottoscrizione

In questa lezione verranno illustrate le procedure per aggiungere una classe di sottoscrizione al file di definizione dell'applicazione (ADF) e per aggiornare quindi l'istanza di Notification Services in modo da applicare le modifiche al database dell'applicazione. Sarà quindi possibile esaminare le modifiche apportate al database dell'applicazione.

Informazioni generali sulla classe di sottoscrizione

La definizione di una classe di sottoscrizione implica la definizione di un archivio per i dati della sottoscrizione e di query per la generazione di notifiche da dati di evento e della sottoscrizione.

Quando si definisce un archivio per i dati della sottoscrizione, vengono definiti i campi per i dati della sottoscrizione raccolti. Se ad esempio una sezione di dati della sottoscrizione è rappresentata da una città di interesse, è possibile aggiungere un campo della sottoscrizione denominato City. Verrà quindi resa disponibile un'interfaccia per consentire ai sottoscrittori di creare sottoscrizioni in cui è possibile specificare una città.

Se la sottoscrizione supporta più impostazioni internazionali del sottoscrittore e più dispositivi, come ad esempio la posta elettronica e i telefoni cellulari, è inoltre possibile aggiungere i campi DeviceName e SubscriberLocale ai campi della sottoscrizione. Tali campi consentono di personalizzare le notifiche per dispositivi, lingue e fusi orari diversi.

Notification Services aggiunge un campo SubscriberId alla tabella sottostante per ogni classe di sottoscrizione.

Oltre a definire i campi delle sottoscrizioni è necessario specificare una regola di generazione delle notifiche. Tale regola è rappresentata da una query Transact-SQL che individua una corrispondenza tra i dati di evento e i dati della sottoscrizione inserendo i risultati nella vista della classe di notifica. Tali regole possono essere guidate dagli eventi o pianificate. Le regole guidate dagli eventi vengono eseguite quando si verificano gli eventi. Le regole pianificate consentono di valutare le singole sottoscrizioni in base a una pianificazione specificata nella sottoscrizione.

Una classe di sottoscrizione consente di definire altre informazioni, quali gli indici sui dati della sottoscrizione o sulle tabelle supplementari. Per ulteriori informazioni sulle classi di sottoscrizione, vedere Definizione delle classi di sottoscrizione.

Quando si crea l'applicazione, Notification Services utilizza la definizione della classe di sottoscrizione per creare tabelle, viste, indici e stored procedure per la classe stessa.

Classe di sottoscrizione WeatherCity

Per questa applicazione verrà aggiunta una classe di sottoscrizione WeatherCity al file ADF. La classe di sottoscrizione dispone di tre campi: DeviceName, SubscriberLocale e City. Il campo City rappresenta il campo principale di questa applicazione. Se i sottoscrittori intendono creare sottoscrizioni per le previsioni meteorologiche, è necessario specificare il nome di una città.

Vengono definiti i campi della sottoscrizione DeviceName e SubscriberLocale in modo da poter aggiungere il supporto per più dispositivi e impostazioni internazionali.

Questa classe della sottoscrizione consente inoltre di definire una query per la generazione delle notifiche. Per scrivere questa query, è necessario conoscere i dati di eventi e sottoscrizioni disponibili, nonché i dati di notifica che si desidera produrre.

  • Come illustrato nella lezione 3, la classe di evento WeatherData dispone di cinque campi, ovvero City, Date, Low, High e Forecast.
  • La classe di sottoscrizione dispone di un campo City.
  • Come illustrato nella lezione 4, la classe di notifica WeatherAlerts dispone degli stessi campi della classe di evento, ovvero City, Date, Low, High e Forecast.
  • È inoltre importante ricordare che la tabella delle notifiche sottostante dispone dei campi seguenti: SubscriberId, DeviceName e SubscriberLocale.

Questi campi vengono rappresentati come colonne nelle viste. Se si conoscono questi campi, è possibile unire in join le viste degli eventi e delle sottoscrizioni e inserire i dati nella vista delle notifiche:

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;

Quando la query viene eseguita in Notification Services, il set di eventi corrente della vista della classe di evento viene unito in join con le sottoscrizioni della vista della classe di sottoscrizione in base alle corrispondenze tra i valori City delle sottoscrizioni e degli eventi. Notification Services inserisce quindi i risultati nella vista delle notifiche.

Aggiunta della classe di sottoscrizione al file ADF

Il codice XML riportato in questa sezione consente di definire la classe di sottoscrizione. Esaminare il codice XML e quindi seguire le istruzioni per copiare il codice XML nel file ADF.

Per aggiungere la classe di sottoscrizione al file ADF

  1. Fare clic su Copia codice per copiare il codice XML negli Appunti di 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. In Esplora soluzioni aprire il file WeatherADF.xml.

  3. Sostituire il seguente codice XML con il codice appena copiato.

    <!-- Subscription Classes -->

    <SubscriptionClasses></SubscriptionClasses>

  4. Scegliere Salva WeatherADF.xml dal menu File.

Aggiornamento dell'istanza di Notification Services

Dopo aver modificato il file ADF, è possibile aggiornare l'istanza di Notification Services in modo da aggiungere gli oggetti della classe di sottoscrizione al database dell'applicazione.

Per aggiornare l'istanza di Notification Services

  1. In Esplora oggetti espandere Notification Services.

  2. Fare clic con il pulsante destro del mouse su Tutorial, scegliere Attività e quindi Aggiorna.

  3. Nella finestra di dialogo Aggiorna istanza fare clic su Sfoglia, individuare il file TutorialICF.xml e quindi fare clic su Apri.

  4. Nel riquadro Parametri, controllare i valori dei parametri.

  5. Fare clic su OK.

  6. Controllare le informazioni visualizzate nella finestra di dialogo Notification Services - Riepilogo aggiornamento e quindi fare clic su Aggiorna.

  7. Al termine delle azioni di aggiornamento, fare clic su Chiudi.

Esame delle modifiche nel database dell'applicazione

Quando si aggiorna l'istanza, Notification Services aggiunge tabelle, viste e stored procedure per la classe di sottoscrizione nel database dell'applicazione TutorialWeather:

  • Nella vista dbo.WeatherCityView vengono visualizzati i record della sottoscrizione relativi alla classe di sottoscrizione associata.
  • Nella vista dbo.WeatherCity è contenuto il set di sottoscrizioni corrente valutato dall'applicazione. Nella query di generazione delle notifiche i dati della sottoscrizione vengono selezionati da questa vista.
  • La tabella dbo.NSWeatherCitySubscriptions rappresenta la tabella sottostante contenente i dati della sottoscrizione per la classe di sottoscrizione.
    ms166580.Caution(it-it,SQL.90).gifAttenzione:
    Non è consigliabile modificare direttamente i dati nelle viste e nelle tabelle delle sottoscrizioni. Utilizzare gli oggetti per la gestione delle sottoscrizioni. Per ulteriori informazioni, vedere Sviluppo di interfacce di gestione delle sottoscrizioni.

È possibile utilizzare Esplora oggetti per esaminare gli oggetti contenuti nel database TutorialWeather. Le tabelle e le viste sono solo per uso interno e contengono i dati utilizzati per operazioni interne di registrazione e ricerca dei dati.

È possibile che sia necessario aggiornare Esplora oggetti per visualizzare i nuovi oggetti.

Lezione successiva

Lezione 6: Aggiunta di un provider di eventi

Vedere anche

Concetti

Esercitazione di Notification Services

Altre risorse

Visualizzazioni di Notification Services
Tabelle di Notification Services
Definizione delle classi di sottoscrizione
Creazione di soluzioni di notifica
Introduzione a SQL Server Notification Services

Guida in linea e informazioni

Assistenza su SQL Server 2005