Creare un oggetto dinamico o un messaggio per l'attività di invio di posta elettronica in SQL Server Integration Services

In questo articolo viene illustrato come aggiornare la proprietà di un oggetto SQL Server Integration Services (SSIS) in fase di esecuzione creando un'espressione di proprietà.

Versione originale del prodotto:   SQL Server
Numero KB originale:   906547

Introduzione

È possibile creare un pacchetto SSIS mediante SQL Server Business Intelligence Development Studio. Quando si crea questo pacchetto, è possibile creare un'espressione per una proprietà del pacchetto SSIS per aggiornare o popolare la proprietà in fase di esecuzione. Ad esempio, se il pacchetto SSIS contiene un'attività di invio di posta, è possibile creare un'espressione per la proprietà Subject e per la MessageSource Proprietà. È possibile utilizzare l'espressione della proprietà Subject per aggiornare dinamicamente l'oggetto di un messaggio di posta elettronica. È possibile utilizzare l' MessageSource espressione Property per aggiornare dinamicamente le variabili nel messaggio di posta elettronica, ad esempio le variabili popolate da una trasformazione del numero di riga.

In questo articolo viene illustrato come creare un oggetto dinamico o un messaggio per l'attività di invio della posta.

Altre informazioni

Di seguito è riportata un'espressione di proprietà di esempio per la proprietà Subject in un'attività Send mail.

"Package>>> " + @[System::PackageName] +" was executed at>>> " + (DT_WSTR, 40) @[System::StartTime] + " by user>>> "
+ @[System::UserName] + " on Machine>>> " + @[System::MachineName]

Se si utilizza questa espressione di proprietà di esempio, l'oggetto di un messaggio di posta elettronica viene aggiornato dinamicamente. L'oggetto includerà le informazioni seguenti:

  • Informazioni di testo in questo esempio, l'oggetto del messaggio di posta elettronica contiene le Package>>> informazioni di testo.
  • Variabili di sistema
    Il messaggio di posta elettronica include le seguenti variabili di sistema:
    • PackageName
      Nome del pacchetto.
    • StartTime
      L'ora in cui è stato eseguito il pacchetto.
    • UserName
      L'utente che ha eseguito il pacchetto.
    • MachineName
      Nome del computer in cui è stato eseguito il pacchetto.

È inoltre possibile includere ulteriori informazioni nell'espressione, ad esempio una variabile definita dall'utente. Ad esempio, un'attività del flusso di dati può includere una trasformazione del numero di riga prima dell'attività di invio della posta. La trasformazione del numero di riga viene utilizzata per contare le righe. La trasformazione Conteggio righe popola una variabile definita dall'utente denominata @myrowcount . Questa variabile archivia le informazioni di conteggio nel flusso di dati.

Per specificare che un messaggio di posta elettronica deve essere inviato solo se il numero di righe è inferiore a un determinato valore, modificare il flusso di controllo utilizzando i vincoli di precedenza. A tal fine, attenersi alla seguente procedura:

  1. In SQL Server Business Intelligence Development Studio fare clic con il pulsante destro del mouse su attività flusso di dati e quindi scegliere Aggiungi vincolo di precedenza.

  2. Fare doppio clic sul vincolo di precedenza creato.

  3. Nella finestra di dialogo Editor vincoli di precedenza fare clic su espressione e vincolo nell' operazione di valutazione.

  4. Nella casella espressione Digitare l'espressione: @myrowcount < 2

  5. Nella finestra di dialogo Editor vincoli di precedenza fare clic su OK.

Se nel flusso di dati vengono elaborate meno di due righe, viene inviato un messaggio di posta elettronica.

È inoltre possibile utilizzare l'attività Invia posta come parte di un gestore errori. Ad esempio, potrebbe essere necessario inviare un messaggio di posta elettronica agli amministratori quando un pacchetto SSIS non viene eseguito. A tale scopo, creare un gestore eventi OnError per il pacchetto e quindi aggiungere un'attività di invio alla posta elettronica al gestore eventi. Creare un'espressione di proprietà Subject che acquisisce il tempo di esecuzione del pacchetto, l'ora di inizio del contenitore o l'ora di inizio del gestore eventi dalle variabili di sistema rilevanti. Ad esempio, creare un'espressione simile alla seguente:

"Error in the task: " + @[System::SourceName] + "with the ID: " + @[System::SourceID]
+ " has failed at: " + (DT_WSTR, 20) @[System::ContainerStartTime] + "."

In questa espressione di esempio vengono utilizzate le seguenti variabili di sistema:

  • StartTime: L'ora in cui è stato eseguito il pacchetto.
  • ContainerStartTime: L'ora in cui il contenitore è stato avviato.
  • EventHandlerStartTime: L'ora di inizio del gestore eventi.

Riferimenti

Per ulteriori informazioni, vedere gli argomenti seguenti nella documentazione online di SQL Server:

  • Utilizzo di espressioni di proprietà nei pacchetti
  • Procedura: creazione di un'espressione di proprietà
  • Espressioni avanzate di Integration Services
  • Vincoli di precedenza
  • Impostazione di vincoli di precedenza su attività e contenitori
  • Gestori eventi di Integration Services