Pregunta

Necesito ayuda con un paquete SSIS. Tengo un servidor que llena una tabla de base de datos como parte de un trabajo diario. Luego, el servidor escribe en una tabla de estado del proceso para avisarme que está hecho.

La tabla de estado del proceso se ve así:

Job   | Ready | Downloaded
myJob    True     False

Quiero crear un proceso que compruebe si el indicador de preparación en myJob es verdadero y continúa o si es falso se suspenderá durante 30 minutos antes de volver a intentarlo y repetirlo hasta 5 veces.

Encontré este artículo sobre cómo hacer la parte para dormir: http: // blogs.conchango.com/jamiethomson/archive/2006/10/23/SSIS_3A00_-Put-a-package-to-sleep.aspx

Estaba pensando en usar una tarea del sistema de archivos para acceder a la tabla de estado del proceso. A continuación, establezca una variable en el valor de la bandera Listo. Luego, tenga un contenedor de bucles For, si es verdadero rompa el bucle for y continúe, y si es falso, ejecute el modo de suspensión, ejecute otra tarea del sistema de archivos y establezca la variable al valor del indicador Listo. La pregunta principal que tengo es cómo puedo configurar una variable para el valor de la marca de listo.

¿Fue útil?

Solución 2

Pude resolverlo.

Utilicé una tarea de flujo de datos con una fuente OLE DB y un componente de script en su interior. El componente de script lee y maneja los datos de la base de datos, hace algo de lógica básica en caso contrario, y escribe en una variable del sistema.

Más tarde uso esa variable del sistema en un bucle for.

Otros consejos

Si tiene un contenedor de For Loop, puede colocar un " ExecuteSql " tarea para extraer su valor de estado (es decir, falso), luego use una " Tarea de script " Para almacenarlo o manipularlo según sea necesario. Luego puede continuar procesando el contenido de su contenedor de bucles for (esto puede ser una tarea de flujo de datos o cualquiera que sea su uso).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top