Skapa ett dynamiskt ämne eller meddelande för uppgiften Skicka e-post i SQL Server Integration Services

Den här artikeln visar hur du uppdaterar egenskapen för ett SQL Server Integration Services-objekt (SSIS) vid körning genom att skapa ett egenskapsuttryck.

Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 906547

Inledning

Du kan skapa ett SSIS-paket med hjälp av SQL Server Business Intelligence Development Studio. När du skapar det här paketet kan du skapa ett uttryck för en egenskap för SSIS-paketet för att uppdatera eller fylla i egenskapen vid körning. Om SSIS-paketet till exempel innehåller en Skicka e-post-uppgift kan du skapa ett uttryck för egenskapen Ämne och för MessageSource egenskapen . Du kan använda egenskapsuttrycket Ämne för att dynamiskt uppdatera ämnet för ett e-postmeddelande. Du kan använda egenskapsuttrycket MessageSource för att dynamiskt uppdatera variabler i e-postmeddelandet, till exempel variabler som fylls i av en transformering av radantal.

Den här artikeln beskriver hur du skapar ett dynamiskt ämne eller meddelande för uppgiften Skicka e-post.

Mer information

Följande är ett exempel på ett egenskapsuttryck för egenskapen Ämne i en Skicka e-post-uppgift.

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

Om du använder det här exempelegenskapsuttrycket uppdateras ämnet för ett e-postmeddelande dynamiskt. Ämnet innehåller följande information:

  • Textinformation I det här exemplet innehåller Package>>> e-postmeddelandets ämne textinformation.
  • Systemvariabler
    E-postmeddelandet innehåller följande systemvariabler:
    • PackageName
      Paketnamnet.
    • StartTime
      Tiden då paketet kördes.
    • UserName
      Användaren som körde paketet.
    • MachineName
      Namnet på den dator där paketet kördes.

Du kan också inkludera mer information i uttrycket, till exempel en användardefinierad variabel. En Dataflöde uppgift kan till exempel innehålla en transformering av radantal före aktiviteten Skicka e-post. (Transformeringen radantal används för att räkna rader.) Transformeringen radantal fyller i en användardefinierad variabel med namnet @myrowcount. Den här variabeln lagrar antalsinformationen i dataflödet.

Om du bara vill ange att ett e-postmeddelande ska skickas om radantalet är mindre än ett visst värde ändrar du kontrollflödet med hjälp av prioritetsbegränsningar. Gör så här:

  1. I SQL Server Business Intelligence Development Studio högerklickar du på Dataflöde aktivitet och klickar sedan på Lägg till prioritetsbegränsning.

  2. Dubbelklicka på prioritetsbegränsningen som du skapade.

  3. I dialogrutan Prioritetsbegränsning Editor klickar du på Uttryck och villkor i utvärderingsåtgärden.

  4. I rutan Uttryck skriver du uttrycket: @myrowcount < 2

  5. I dialogrutan Prioritetsbegränsning Editor klickar du på OK.

Om färre än två rader bearbetas i dataflödet skickas ett e-postmeddelande.

Dessutom kan du använda uppgiften Skicka e-post som en del av en felhanterare. Du kanske till exempel vill skicka ett e-postmeddelande till administratörer när ett SSIS-paket inte körs. Det gör du genom att skapa en OnError-händelsehanterare för paketet och sedan lägga till en Skicka e-post-uppgift i händelsehanteraren. Skapa ett ämnesegenskapsuttryck som samlar in den tid då paketet körs, starttiden för containern eller starttiden för händelsehanteraren från de relevanta systemvariablerna. Skapa till exempel ett uttryck som liknar följande:

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

Det här exempeluttrycket använder följande systemvariabler:

  • StartTime: Tiden då paketet kördes.
  • ContainerStartTime: Tiden då containern startades.
  • EventHandlerStartTime: Tiden då händelsehanteraren startade.

Referenser

Mer information finns i följande avsnitt i SQL Server Books Online:

  • Använda egenskapsuttryck i paket
  • Anvisningar: Skapa ett egenskapsuttryck
  • Uttryck för Advanced Integration Services
  • Prioritetsbegränsningar
  • Ange prioritetsbegränsningar för aktiviteter och containrar
  • Händelsehanterare för Integration Services