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

Questo articolo illustra 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 usando 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à Invia posta elettronica, è 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'espressione MessageSource di proprietà per aggiornare dinamicamente le variabili nel messaggio di posta elettronica, ad esempio le variabili popolate da una trasformazione Conteggio righe.

Questo articolo illustra come creare un oggetto o un messaggio dinamico per l'attività Invia posta elettronica.

Ulteriori informazioni

Di seguito è riportata un'espressione di proprietà di esempio per la proprietà Subject in un'attività Invia posta elettronica.

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

Se si usa 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 include le informazioni di Package>>> testo.
  • Variabili di sistema
    Il messaggio di posta elettronica include le variabili di sistema seguenti:
    • PackageName
      Nome del pacchetto.
    • StartTime
      Ora di esecuzione del pacchetto.
    • UserName
      Utente che ha eseguito il pacchetto.
    • MachineName
      Nome del computer in cui è stato eseguito il pacchetto.

È anche possibile includere altre informazioni nell'espressione, ad esempio una variabile definita dall'utente. Ad esempio, un'attività Flusso di dati può includere una trasformazione Conteggio righe prima dell'attività Invia posta elettronica. La trasformazione Conteggio righe viene usata per contare le righe. La trasformazione Conteggio righe popola una variabile definita dall'utente denominata @myrowcount. Questa variabile archivia le informazioni sul 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 usando 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 Flusso di dati'attività e quindi scegliere Aggiungi vincolo di precedenza.

  2. Fare doppio clic sul vincolo di precedenza creato.

  3. Nella finestra di dialogo Editor Vincolo di precedenza fare clic su Espressione e vincolonell'operazione di valutazione.

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

  5. Nella finestra di dialogo Editor Vincolo 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 usare l'attività Invia posta elettronica come parte di un gestore degli errori. Ad esempio, è possibile inviare un messaggio di posta elettronica agli amministratori quando non viene eseguito un pacchetto SSIS. A tale scopo, creare un gestore eventi OnError per il pacchetto e quindi aggiungere un'attività Invia messaggio al gestore eventi. Creare un'espressione di proprietà del soggetto che acquisisce l'ora di esecuzione del pacchetto, l'ora di inizio del contenitore o l'ora di inizio del gestore eventi dalle variabili di sistema pertinenti. 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] + "."

Questa espressione di esempio usa le variabili di sistema seguenti:

  • StartTime: ora di esecuzione del pacchetto.
  • ContainerStartTime: ora di avvio del contenitore.
  • EventHandlerStartTime: ora di avvio del gestore eventi.

Riferimenti

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

  • Uso di espressioni di proprietà nei pacchetti
  • Procedura: Creare un'espressione di proprietà
  • Espressioni avanzate di Integration Services
  • Vincoli di precedenza
  • Impostazione dei vincoli di precedenza in attività e contenitori
  • Gestori eventi di Integration Services