Criar um assunto ou mensagem dinâmico para a tarefa Enviar Email no SQL Server Integration Services

Este artigo mostra como atualizar a propriedade de um objeto SSIS (SQL Server Integration Services) em runtime criando uma expressão de propriedade.

Versão original do produto: SQL Server
Número de KB original: 906547

Introdução

Você pode criar um pacote SSIS usando SQL Server Business Intelligence Development Studio. Ao criar esse pacote, você pode criar uma expressão para uma propriedade do pacote SSIS para atualizar ou preencher a propriedade em runtime. Por exemplo, se o pacote SSIS contiver uma tarefa Enviar Email, você poderá criar uma expressão para a propriedade Subject e para a MessageSource propriedade. Você pode usar a expressão de propriedade Subject para atualizar dinamicamente o assunto de uma mensagem de email. Você pode usar a expressão de MessageSource propriedade para atualizar dinamicamente variáveis na mensagem de email, como variáveis que são preenchidas por uma transformação contagem de linhas.

Este artigo discute como criar um assunto dinâmico ou uma mensagem para a tarefa Enviar Email.

Mais informações

A seguir está uma expressão de propriedade de exemplo para a propriedade Subject em uma tarefa Enviar Email.

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

Se você usar essa expressão de propriedade de exemplo, o assunto de uma mensagem de email será atualizado dinamicamente. O assunto incluirá as seguintes informações:

  • Informações de texto Neste exemplo, o assunto da mensagem de email inclui as informações de Package>>> texto.
  • Variáveis do sistema
    A mensagem de email inclui as seguintes variáveis do sistema:
    • PackageName
      O nome do pacote.
    • StartTime
      A hora em que o pacote foi executado.
    • UserName
      O usuário que executou o pacote.
    • MachineName
      O nome do computador no qual o pacote foi executado.

Você também pode incluir mais informações na expressão, como uma variável definida pelo usuário. Por exemplo, uma tarefa Fluxo de Dados pode incluir uma transformação de Contagem de Linhas antes da tarefa Enviar Email. (A transformação contagem de linhas é usada para contar linhas.) A transformação Contagem de Linhas preenche uma variável definida pelo usuário chamada @myrowcount. Essa variável armazena as informações de contagem no fluxo de dados.

Para especificar se uma mensagem de email será enviada somente se a contagem de linhas for menor que um determinado valor, modifique o fluxo de controle usando restrições de precedência. Para fazer isso, siga estas etapas:

  1. Em SQL Server Business Intelligence Development Studio, clique com o botão direito do mouse em Fluxo de Dados Tarefa e clique em Adicionar Restrição de Precedência.

  2. Clique duas vezes na restrição de precedência que você criou.

  3. Na caixa de diálogo Restrição de Precedência Editor, clique em Expressão e Restrição na operação Avaliação.

  4. Na caixa Expressão , digite a expressão: @myrowcount < 2

  5. Na caixa de diálogo Restrição de Precedência Editor, clique em OK.

Se menos de duas linhas forem processadas no fluxo de dados, uma mensagem de email será enviada.

Além disso, você pode usar a tarefa Enviar Email como parte de um manipulador de erros. Por exemplo, talvez você queira enviar uma mensagem de email aos administradores quando um pacote SSIS não for executado. Para fazer isso, crie um manipulador de eventos OnError para o pacote e adicione uma tarefa Enviar Email ao manipulador de eventos. Crie uma expressão de propriedade do assunto que captura a hora em que o pacote é executado, a hora de início do contêiner ou a hora de início do manipulador de eventos das variáveis de sistema relevantes. Por exemplo, crie uma expressão semelhante à seguinte:

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

Esta expressão de exemplo usa as seguintes variáveis do sistema:

  • StartTime: a hora em que o pacote foi executado.
  • ContainerStartTime: a hora em que o contêiner começou.
  • EventHandlerStartTime: a hora em que o manipulador de eventos começou.

Referências

Para obter mais informações, confira os seguintes tópicos em SQL Server Livros Online:

  • Usando expressões de propriedade em pacotes
  • Como criar uma expressão de propriedade
  • Expressões avançadas do Integration Services
  • Restrições de precedência
  • Definir restrições de precedência em tarefas e contêineres
  • Manipuladores de Eventos do Integration Services