Definieren des Abonnementschemas

Notification Services generiert Benachrichtigungen mithilfe von Transact-SQL-Abfragen, die Ereignis- und Abonnementdaten verknüpfen. Bei den meisten Anwendungen müssen Sie die Abonnementfelder angeben, die beim Generieren von Benachrichtigungen verwendet werden. Sie geben diese Felder im Schema der Abonnementklasse an.

In diesem Thema werden die von Notification Services hinzugefügten Standardfelder sowie weitere Felder für Standardwerte beschrieben, die Sie dem Schema hinzufügen können. Außerdem wird dargestellt, wie Sie benutzerdefinierte Felder erstellen.

Standardabonnementfelder

Für alle Abonnements sind allgemeine Informationen erforderlich. Notification Services muss in der Lage sein, jedes Abonnement eindeutig zu identifizieren, den Abonnenten für jedes Abonnement zu identifizieren und zu bestimmen, ob das Abonnement aktiviert ist. Wenn die Abonnementklasse geplante Abonnements unterstützt, muss dem Abonnement ein Abonnementzeitplan zugeordnet werden.

Um die Anwendungsentwicklung zu vereinfachen, fügt Notification Services automatisch die folgenden Abonnementklassenfelder für diese allgemeinen Informationen hinzu:

ms171409.note(de-de,SQL.90).gifHinweis:
Definieren Sie die folgenden Felder nicht in einem Abonnementklassenschema. Andernfalls schlägt das Erstellen der Anwendung aufgrund doppelter Felddefinitionen fehl.
  • Notification Services enthält die Felder SubscriptionId, SubscriberId und Enabled. Beim Erstellen der Anwendung werden der Abonnementtabellendefinition die folgenden Spalten von Notification Services hinzugefügt:
    • SubscriptionId ist eine Identitätsspalte vom Typ bigint. Notification Services stellt für jedes neue Abonnement einen Wert für diese Spalte bereit.
    • SubscriberId ist eine Spalte vom Typ nvarchar(255). Wenn Sie ein Abonnement hinzufügen, muss die Schnittstelle der Abonnementverwaltung den SubscriberId-Wert bereitstellen.
    • Enabled ist ein Feld vom Typ Boolean, das Sie programmgesteuert für jedes Abonnement festlegen können. Das Festlegen des Enabled-Wertes auf false hält die Benachrichtigungsgenerierung für das Abonnement an. Der Standardwert lautet true.
  • Wenn die Abonnementklasse über geplante Regeln verfügt, enthält Notification Services ein ScheduleId-Feld. Dieses wird in der Abonnementtabelle zu einem Fremdschlüssel für eine Abonnementzeitplan-Tabelle. Der Zeitplanwert wird in einer Schnittstelle der Abonnementverwaltung definiert, wenn der Benutzer ein geplantes Abonnement erstellt. ScheduleId ist eine Spalte vom Typ int, die NULL-Werte für den Fall zulässt, dass die Abonnementklasse sowohl ereignisgesteuerte als auch geplante Abonnements unterstützt.

Felder für Standardwerte: DeviceName und SubscriberLocale

Abhängig von der Anwendung möchten Sie möglicherweise zwei Felder in einem Abonnementklassenschema definieren: DeviceName und SubscriberLocale. Diese Felder werden häufig in jeder Abonnementklasse definiert, um dem Abonnenten die Auswahl eines Geräts und eines Gebietsschemas zu ermöglichen. Die Felder sind jedoch nicht erforderlich. Falls die Felder definiert sind, kann der Verteiler die Informationen zur Formatierung und Übermittlung von Benachrichtigungen verwenden.

DeviceName (Feld)

Ein Abonnentengerät gibt das Ziel an, an das eine Benachrichtigung übermittelt wird. Bei dem Gerät kann es sich um E-Mail, Windows Messenger, ein Mobiltelefon oder ein beliebiges anderes Gerät handeln, das von der Anwendung unterstützt wird.

Wenn Sie Benachrichtigungen generieren, müssen die Benachrichtigungsdaten den Gerätenamen für die Benachrichtigungsübermittlung enthalten. Schließen Sie das DeviceName-Feld in das Abonnementklassenschema ein, wenn Abonnenten beim Erstellen eines Abonnements ein Gerät angeben können.

Verwenden Sie für das DeviceName-Feld die folgenden Eigenschaften:

  • Feldname: DeviceName
  • Feldtyp: nvarchar(255)
  • Feldmodifizierer: NOT NULL

Informationen zum Gerät, wie z. B. die Adresse des Abonnenten, befinden sich in den Abonnentendaten in der Instanzdatenbank. Verwenden Sie die NSSubscriberDeviceView-Sicht, um Abonnenten- und Abonnentengeräteinformationen für eine Instanz von Notification Services zu überprüfen. Weitere Informationen finden Sie unter NSSubscriberDeviceView.

Wenn Sie das DeviceName-Feld aus dem Schema ausschließen, müssen Sie außerdem eine der folgenden Aktionen ausführen:

  • Falls die Anwendung nur ein Gerät unterstützt, geben Sie einen statischen Gerätenamen in der Transact-SQL-Regel an, mit der Benachrichtigungen generiert werden.
  • Falls die Anwendung mehrere Geräte unterstützt, wählen Sie dynamisch ein Gerät aus. Beispielsweise könnte ein Abonnent über mehrere Geräte verfügen und die Anwendung könnte das Gerät basierend auf der Uhrzeit auswählen. In Geschäftszeiten könnten Sie alle Benachrichtigungen an das geschäftliche E-Mail-Konto eines Abonnenten senden. Außerhalb der Geschäftszeit könnten Sie wichtige Benachrichtigungen an das Telefon des Abonnenten und alle anderen Benachrichtigungen an das private E-Mail-Konto des Abonnenten senden.

SubscriberLocale (Feld)

Ein Gebietsschema ist eine Sprache und ein Land/eine Region für die Benachrichtigung. Notification Services unterstützt viele Gebietsschemas. Eine Liste der Gebietsschemas finden Sie unter Subscriber Locale Codes.

Wenn Sie Benachrichtigungen generieren, müssen die Benachrichtigungsdaten das Gebietsschema enthalten. Schließen Sie das SubscriberLocale-Feld in das Abonnementklassenschema ein, wenn Sie es Abonnenten ermöglichen, ein Gebietsschema anzugeben.

Verwenden Sie für das SubscriberLocale-Feld die folgenden Eigenschaften:

  • Feldname: SubscriberLocale
  • Feldtyp: nvarchar(10)
  • Feldmodifizierer: NOT NULL

Wenn Sie das SubscriberLocale-Feld ausschließen, müssen Sie eine der folgenden Aktionen ausführen:

  • Falls die Anwendung nur ein einzelnes Gebietsschema unterstützt, stellen Sie in der Transact-SQL-Regel zum Generieren von Benachrichtigungen ein statisches Gebietsschema bereit.
  • Falls die Anwendung mehrere Gebietsschemas unterstützt, wählen Sie das Abonnentengebietsschema von einer anderen Quelle aus, z. B. aus einer Benutzerprofiltabelle in einer anderen Datenbank.

Benutzerdefinierte Abonnementfelder

Die meisten Anwendungen verfügen außerdem über benutzerdefinierte Abonnementfelder. Diese Felder definieren Werte, die die Abonnenten in ihren Abonnements anpassen können und mit denen Spalten in der Abonnementtabelle erstellt werden.

Zum Erstellen von benutzerdefinierten Feldern müssen Sie wissen, welche Informationen Abonnenten bereitstellen können, um ihre Abonnements anzupassen. Könnten Benutzer beispielsweise für eine Wetteranwendung nur eine Stadt auswählen, so würden Sie nur ein benutzerdefiniertes Feld 'city' definieren. In einer Fluganwendung können Benutzer möglicherweise einen Abflugort, ein Ziel, einen Preis und eine Fluglinie auswählen, sodass Sie Felder wie LeavingFrom, GoingTo, Price und Carrier erstellen würden.

Wenn Sie ein benutzerdefiniertes Feld definieren, müssen Sie darüber hinaus den SQL Server-Datentyp des Feldes definieren und alle Feldmodifizierer, z. B. ob das Feld einen NULL-Wert zulässt. Da diese Felder Tabellenspalten definieren, müssen Sie die Richtlinien für das Definieren von Tabellenspalten befolgen. Weitere Informationen finden Sie unter CREATE TABLE (Transact-SQL).

ms171409.note(de-de,SQL.90).gifHinweis:
Eine Liste unterstützter Typen finden Sie unter FieldType Element for SubscriptionClass/Schema/Field (ADF).

Definieren des Schemas

Wenn Sie das Schema für eine Abonnementklasse definieren, definieren Sie benutzerdefinierte Felder und ggf. die Felder für Standardwerte, DeviceName und SubscriberLocale. Sie definieren keine Standardfelder wie SubscriberId.

So definieren Sie das Schema für eine Abonnementklasse

Definieren Sie das Schema für eine Abonnementklasse in der Anwendungsdefinitionsdatei (ADF), wenn Sie eine Anwendung in XML definieren. Verwenden Sie Notification Services Management Objects (NMO), um das Schema für eine Abonnementklasse zu definieren, wenn Sie eine Anwendung programmgesteuert definieren.

Beispiele

Schemabeispiele finden Sie unter Abonnementschemabeispiele.

Siehe auch

Konzepte

Definieren der Kernabonnementklasse
Definieren von Abonnementregeln
Definieren von Indizes für eine Abonnementklasse
Definieren von Verläufen für eine Abonnementklasse
Auflisten von abonnementbezogenen Informationen

Andere Ressourcen

Definieren von Abonnementklassen
Datentypen (Datenbankmodul)
CREATE TABLE (Transact-SQL)
FieldType Element for SubscriptionClass/Schema/Field (ADF)
Entwickeln von Abonnementverwaltungsschnittstellen

Hilfe und Informationen

Informationsquellen für SQL Server 2005