Een dynamisch onderwerp of bericht maken voor de taak mail verzenden in SQL Server 2005 Integration Services


Inleiding


U kunt een servicepakket voor Microsoft SQL Server 2005 Integration Services (SSIS) maken met SQL Server Business Intelligence Development Studio. Wanneer u dit pakket maakt, kunt u een expressie maken voor een eigenschap van het SSIS-pakket om de eigenschap bij te werken of te vullen bij runtime. Als het SSIS-pakket bijvoorbeeld een taak voor het verzenden van E-mail bevat, kunt u een expressie maken voor de onderwerp -eigenschap en voor de eigenschap MessageSource . U kunt de expressie van de onderwerp -eigenschap gebruiken om de toepassing van een e-mailbericht dynamisch bij te werken. Met de eigenschaps expressie MessageSource kunt u variabelen dynamisch bijwerken in het e-mailbericht, zoals variabelen die door een transformatie voor het aantal rijen zijn ingevuld. In dit artikel wordt beschreven hoe u een dynamisch onderwerp of bericht maakt voor de taak mail verzenden.

Meer informatie


Hieronder ziet u een voorbeeld van een eigenschaps expressie voor de eigenschap subject in de taak een e-mail verzenden.
"Package>>> " + @[System::PackageName] +" was executed at>>> " + (DT_WSTR, 40) @[System::StartTime] + " by user>>> " + @[System::UserName] + " on Machine>>> " + @[System::MachineName]
Als u deze expressie voor Voorbeeldeigenschappen gebruikt, wordt het onderwerp van een e-mailbericht dynamisch bijgewerkt. Het onderwerp bevat de volgende informatie:
  • TekstgegevensIn dit voorbeeld bevat het onderwerp e-mailbericht de tekstgegevens pakket>>> .
  • SysteemvariabelenHet e-mailbericht bevat de volgende systeemvariabelen:
    • PackageName De naam van het pakket.
    • StartTime De tijd waarop het pakket is uitgevoerd.
    • UserName De gebruiker die het pakket heeft uitgevoerd.
    • MachineName De naam van de computer waarop het pakket is uitgevoerd.
U kunt ook meer informatie opnemen in de expressie, zoals een door een gebruiker gedefinieerde variabele. Een gegevensstroom taak kan bijvoorbeeld een aantal werkstromen voor het tellen van rijen bevatten voor de taak mail verzenden. (De transformatie van het aantal rijen wordt gebruikt om rijen te tellen.) Met de transformatie aantal rijen wordt een door de gebruiker gedefinieerde variabele met de naam @myrowcountgevuld. Deze variabele slaat de informatie over het aantal in de gegevensstroom op. Als u wilt opgeven dat een e-mailbericht alleen moet worden verzonden als het aantal rijen kleiner is dan een bepaalde waarde, kunt u de Controlestroom wijzigen door prioriteits beperkingen te gebruiken. Ga hiervoor als volgt te werk:
  1. Klik in SQL Server Business Intelligence Development Studio met de rechtermuisknop op taak van gegevensstroomen klik op prioriteitsbeperking toevoegen.
  2. Dubbelklik op de prioriteitsbeperking die u zojuist hebt gemaakt.
  3. Klik in het dialoogvenster voorrangs editor-editor op expressie en restrictie bij evaluatie bewerking.
  4. Typ de volgende expressie in het vak expressie :
    @myrowcount < 2
  5. Klik op OKin het dialoogvenster voorrangs beperking-editor .
Als er minder dan twee rijen in de gegevensstroom zijn verwerkt, wordt een e-mailbericht verzonden. Daarnaast kunt u de taak E-mail verzenden gebruiken als onderdeel van een foutafhandelingsroutine. U kunt bijvoorbeeld een e-mailbericht verzenden naar beheerders wanneer een SSIS-pakket niet wordt uitgevoerd. U doet dit door een gebeurtenis-handler met fout fout voor het pakket te maken en vervolgens een e-mail bericht verzenden naar de gebeurtenis-handler toe te voegen. Maak een expressie voor de onderwerp-eigenschap waarmee de tijd wordt vastgelegd waarop het pakket wordt uitgevoerd, de begintijd van de container of de begintijd van de gebeurtenis-handler uit de betreffende systeemvariabelen. U kunt bijvoorbeeld een expressie maken die er ongeveer als volgt uitziet.
"Error in the task: " +  @[System::SourceName] + "with the ID: " +  @[System::SourceID] + " has failed at: " + (DT_WSTR, 20) @[System::ContainerStartTime] + "."
In deze voorbeeldexpressie worden de volgende systeemvariabelen gebruikt:
  • StartTimeDe tijd waarop het pakket is uitgevoerd.
  • ContainerStartTimeDe tijd waarop de container begint.
  • EventHandlerStartTimeDe tijd waarop de gebeurtenis-handler is gestart.

Verwijzingen


Voor meer informatie raadpleegt u de volgende onderwerpen in SQL Server 2005-boeken online:
  • ' Eigenschaps expressies in pakketten gebruiken '
  • Procedure: een eigenschaps expressie maken
  • "Advanced Integration Services-expressies"
  • ' Voorrang beperkingen '
  • "Prioriteits beperkingen voor taken en containers instellen"
  • "Integratie Services gebeurtenis-handlers"