Cómo crear un asunto o un mensaje dinámico para la tarea enviar correo en SQL Server 2005 Integration Services


INTRODUCCIÓN


Puede crear un paquete de Microsoft SQL Server 2005 Integration Services (SSIS) con SQL Server Business Intelligence Development Studio. Al crear este paquete, puede crear una expresión para una propiedad del paquete de SSIS para actualizar o rellenar la propiedad en tiempo de ejecución. Por ejemplo, si el paquete SSIS contiene una tarea enviar correo, puede crear una expresión para la propiedad asunto y para la propiedad MessageSource . Puede usar la expresión de propiedad de asunto para actualizar dinámicamente el asunto de un mensaje de correo electrónico. Puede usar la expresión de propiedad MessageSource para actualizar dinámicamente las variables del mensaje de correo electrónico, como las variables que se rellenan con una transformación de recuento de filas. En este artículo se explica cómo crear un asunto o un mensaje dinámico para la tarea enviar correo.

Más información


La siguiente es una expresión de propiedad de ejemplo para la propiedad asunto de una tarea enviar correo.
"Package>>> " + @[System::PackageName] +" was executed at>>> " + (DT_WSTR, 40) @[System::StartTime] + " by user>>> " + @[System::UserName] + " on Machine>>> " + @[System::MachineName]
Si usa esta expresión de propiedad de ejemplo, el asunto de un mensaje de correo electrónico se actualiza dinámicamente. El asunto incluirá la siguiente información:
  • Información de textoEn este ejemplo, el asunto del mensaje de correo electrónico incluye la información de texto del "paquete>>> ".
  • Variables del sistemaEl mensaje de correo electrónico incluye las siguientes variables del sistema:
    • PackageName El nombre del paquete.
    • StartTime El momento en que se ejecutó el paquete.
    • UserName El usuario que ejecutó el paquete.
    • MachineName El nombre del equipo en el que se ejecutó el paquete.
También puede incluir más información en la expresión, como una variable definida por el usuario. Por ejemplo, una tarea flujo de datos puede incluir una transformación recuento de filas antes de la tarea enviar correo. (La transformación recuento de filas se usa para contar filas). La transformación recuento de filas rellena una variable definida por el usuario que se denomina @myrowcount. Esta variable almacena la información del recuento en el flujo de datos. Para especificar que un mensaje de correo electrónico se envíe solo si el recuento de filas es menor que un valor determinado, modifique el flujo de control con restricciones de precedencia. Para ello, siga estos pasos:
  1. En SQL Server Business Intelligence Development Studio, haga clic con el botón secundario en tarea flujo de datosy luego haga clic en Agregar restricción de precedencia.
  2. Haga doble clic en la restricción de precedencia que acaba de crear.
  3. En el cuadro de diálogo Editor de restricciones de precedencia , haga clic en expresión y restricción en operación de evaluación.
  4. En el cuadro expresión , escriba la siguiente expresión:
    @myrowcount < 2
  5. En el cuadro de diálogo Editor de restricciones de precedencia , haga clic en Aceptar.
Si se procesan menos de dos filas en el flujo de datos, se envía un mensaje de correo electrónico. Además, puede usar la tarea enviar correo como parte de un controlador de errores. Por ejemplo, es posible que desee enviar un mensaje de correo electrónico a los administradores cuando no se ejecute un paquete de SSIS. Para ello, cree un controlador de eventos OnError para el paquete y, a continuación, agregue una tarea enviar correo al controlador de eventos. Cree una expresión de propiedad de asunto que capture la hora en la que se ejecuta el paquete, la hora de inicio del contenedor o la hora de inicio del controlador de eventos de las variables del sistema pertinentes. Por ejemplo, cree una expresión similar a la siguiente.
"Error in the task: " +  @[System::SourceName] + "with the ID: " +  @[System::SourceID] + " has failed at: " + (DT_WSTR, 20) @[System::ContainerStartTime] + "."
Esta expresión de ejemplo usa las siguientes variables del sistema:
  • StartTimeLa hora en la que se ejecutó el paquete.
  • ContainerStartTimeEl momento en que se inició el contenedor.
  • EventHandlerStartTimeLa hora en que se inició el controlador de eventos.

Referencias


Para obtener más información, consulte los siguientes temas en los libros en línea de SQL Server 2005:
  • "Uso de expresiones de propiedad en paquetes"
  • "Cómo: crear una expresión de propiedad"
  • "Expresiones de los servicios de integración avanzada"
  • "Restricciones de precedencia"
  • "Establecer restricciones de precedencia en tareas y contenedores"
  • "Controladores de eventos de Integration Services"