Aggiunta di una sottoscrizione
L'oggetto Subscription espone proprietà che consentono di impostare le informazioni delle sottoscrizioni quali l'ID del sottoscrittore, un indicizzatore per i campi che definiscono i dati delle sottoscrizioni e se la sottoscrizione è attivata per la generazione di notifiche.
Il metodo Add di questo oggetto scrive tali dati nel database dell'applicazione e restituisce la proprietà SubscriptionId generata dal sistema per la sottoscrizione. La proprietà SubscriptionId viene archiviata come valore integer a 64 bit nel database, ma viene restituita nell'applicazione come stringa.
Aggiunta di una sottoscrizione di base
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo Item della classe Subscription per impostare il valore dei campi della sottoscrizione specifici dell'applicazione:
// Create the NSInstance object.
NSInstance testInstance = new NSInstance("Tutorial");
// Create the NSApplication object.
NSApplication testApplication =
new NSApplication(testInstance, "Weather");
// Create the Subscription object.
Subscription testSubscription =
new Subscription(testApplication, "WeatherCity");
// Set the properties that describe the subscription record.
testSubscription.Enabled = true;
testSubscription.SubscriberId = "TestUser1";
// Set the subscription data fields (as defined in the ADF),
// using the indexer to set fields by field name.
testSubscription["DeviceName"] = "Work e-mail";
testSubscription["SubscriberLocale"] = "en-US";
testSubscription["City"] = "Shoreline";
// Add the subscription to the database.
testSubscription.Add();
Codice aggiuntivo per una sottoscrizione pianificata
Alcune classi di sottoscrizione supportano le sottoscrizioni pianificate. Per tali sottoscrizioni è necessario fornire due proprietà aggiuntive per definire la frequenza e la data di inizio della pianificazione.
Aggiungere il codice seguente all'esempio sopra riportato, prima del metodo Add, per creare una sottoscrizione pianificata. La proprietà ScheduleRecurrence consente di configurare l'elaborazione giornaliera della sottoscrizione. La proprietà ScheduleStart consente di configurare l'elaborazione della sottoscrizione in corrispondenza dell'ora corrente con il fuso orario della costa del Pacifico (USA). Per un elenco dei codici di fuso orario supportati, vedere Time Zone Codes.
[!NOTA] I valori delle proprietà ScheduleStart e ScheduleRecurrence della classe Subscription devono essere conformi al subset di Notification Services della specifica dell'interfaccia ICalendar. Per ulteriori informazioni, vedere gli argomenti relativi alle proprietà.
// Set the recurrence of the subscription.
testSubscription.ScheduleRecurrence = "FREQ=DAILY";
// Set the start date and time of the subscription.
StringBuilder scheduleBuilder = new StringBuilder();
scheduleBuilder.AppendFormat("TZID={0}:{1}{2}{3}T{4}{5}{6}",
"4",
DateTime.Now.Year.ToString("D4"),
DateTime.Now.Month.ToString("D2"),
DateTime.Now.Day.ToString("D2"),
DateTime.Now.Hour.ToString("D2"),
DateTime.Now.Minute.ToString("D2"),
DateTime.Now.Second.ToString("D2"));
testSubscription.ScheduleStart = scheduleBuilder.ToString();
Aggiunta di una sottoscrizione basata su condizioni
Nel codice riportato di seguito viene illustrato come creare una sottoscrizione per una classe di sottoscrizione che utilizza le azioni condizionali. Le proprietà RuleName e Condition appartengono alla classe Subscription. Gli oggetti utilizzati per definire la condizione, ad esempio la classe OrCondition, appartengono alla spazio dei nomi Microsoft.SqlServer.NotificationServices.Rules.
In questo esempio viene illustrato come creare una sottoscrizione e una condizione tramite valori di testo specificati a livello di codice. L'interfaccia per la gestione delle sottoscrizioni può includere elenchi a discesa e caselle di testo che consentono la selezione e l'immissione di valori.
// Create the NSInstance object.
NSInstance testInstance =
new NSInstance("InventoryTrackerInstance");
// Create the NSApplication object.
NSApplication testApplication =
new NSApplication(testInstance, "InventoryTracker");
// Define subscription properties
Subscription s = new Subscription(testApplication, "InventoryTrackerSubscriptions");
s.SubscriberId = "TestUser1";
s.Enabled = true;
s.RuleName = "InventoryTrackerRule";
s["DeviceName"] = "Work e-mail";
s["SubscriberLocale"] = "en-US";
// Define OrCondition
s.Condition = new OrCondition(
new SimpleLeafCondition(new FieldValue("Quantity"),
SimpleOperator.GreaterThanOrEqualTo,
500),
new SimpleLeafCondition(new FieldValue("Quantity"),
SimpleOperator.LessThanOrEqualTo,
35)
);
// Add subscription
s.Add();
La condizione della sottoscrizione può essere una struttura ramificata complessa di un oggetto in cui vengono combinate molte condizioni AND, OR e NOT nonché vari tipi di argomento e persino altre regole, tramite gli oggetti LinkLeafCondition.
Esempio di interoperabilità COM
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo SetFieldValue della classe Subscription per impostare il valore dei campi della sottoscrizione specifici dell'applicazione:
[!NOTA] L'interoperabilità COM non è supportata per le sottoscrizioni basate su condizioni.
Dim testInstance, testApplication, testSubscription, subscriptionId
const instanceName = "Tutorial"
const applicationName = "Weather"
const subscriptionClassName = "WeatherCity"
' Create the NSInstance object.
set testInstance = WScript.CreateObject( _
"Microsoft.SqlServer.NotificationServices.NSInstance")
testInstance.Initialize instanceName
' Create the NSApplication object.
set testApplication = WScript.CreateObject( _
"Microsoft.SqlServer.NotificationServices.NSApplication")
testApplication.Initialize (testInstance), applicationName
' Create the Subscription object.
set testSubscription = WScript.CreateObject( _
"Microsoft.SqlServer.NotificationServices.Subscription")
testSubscription.Initialize (testApplication), subscriptionClassName
' Set the properties that describe the subscription record.
testSubscription.SubscriberId = "TestUser2"
testSubscription.Enabled = true
' Set the subscription data fields
testSubscription.SetFieldValue "DeviceName", "Work e-mail"
testSubscription.SetFieldValue "SubscriberLocale", "en-US"
testSubscription.SetFieldValue "City", "Anaheim"
' Add the subscription to the database.
subscriptionId = testSubscription.Add
wscript.echo "Subscription added."
Vedere anche
Concetti
Creazione di un oggetto di sottoscrizione
Aggiornamento di una sottoscrizione
Eliminazione di una sottoscrizione
Recupero di informazioni sul campo sottoscrizione
Popolamento di un elenco delle impostazioni internazionali dei sottoscrittori
Popolamento di elenco di fusi orari