Sorry, this entry is only available in European Spanish.

Recent Posts
Showing 5 comments
  • Lucía
    Reply

    Hola, muy bueno el post!
    Por alguna razón no me funciona y me sobreescribe el command cada vez que se ejecuta la suscripción.
    El ‘reportid’ no me coincide con el nombre del job, no tengo ningun job que coincida. Sé cuál es el job por el ‘subsriptionid’ y la hora de ejecución. Tenés idea por qué puede ser esto?
    En el path de la carpeta, va la carpeta donde están publicados los reportes?
    Saludos y gracias!

  • Xesco Abad
    Reply

    ¡Buenas tardes Lucia!

    Cada vez que modificamos algún parámetro de la suscripción del informe, se sobrescribe el job. Supongo que modificas la fecha de ejecución de la suscripción, para que se ejecute y así poder hacer pruebas (puedes ejecutar directamente el job).

    El reportid no tiene que coincidir con el nombre del job sino con ScheduleID de la tabla reportschedule.

    Te paso una sentencia por si te sirve de ayuda, en ella aparece también el path donde se encuentra el informe.

    SELECT c.Name AS NombreReport
    ,c.[path]
    ,rs.ScheduleID AS NombreJobSQL
    ,rs.subscriptionid
    ,rs.reportid
    ,s.Description
    ,s.LastRunTime
    ,s.LastStatus
    FROM
    reportschedule rs
    INNER JOIN subscriptions s ON rs.subscriptionid = s.subscriptionid
    INNER JOIN dbo.catalog c ON rs.reportid = c.itemid

    Cualquier duda, coméntenoslo

    ¡Un saludo!

  • Lucía
    Reply

    ¡Muchísimas gracias! El tema era ese: al editar la suscripción se sobreescribía el job.
    ¡Saludos!

  • Lucia
    Reply

    Hola Xesco, te hago una consulta para ver si me puedes orientar: Tengo que enviar un reporte mediante SSRS pero solo cuando la consulta recupere resultados (es un email de cumpleaños, solo quiero que se envíe cuando alguien cumple años). Tienes idea cómo puedo hacerlo? Ya que si genero una suscripción se envía todos los días que detallo en la misma. Muchas gracias por tu ayuda!!

  • Xesco Abad
    Reply

    Hola Lucia, intento darte una idea, espero te sirva de ayuda.
    Creas el informe con la felicitación en ssrs y haces que se ejecute una vez solo y de esta forma se te creará el job de la suscripción. Una vez tienes el job de la suscripción añades otro job en el que con T-SQL sript, creas una condición y dependiendo de esta condición ejecute el job. Ej:
    IF SELECT COUNT(*) FROM EMPLEADOS WHERE MONTH(fecha_nacimiento)=month(getdate()) and day(fecha_nacimiento)=day(getdate()) BEGIN
    USE msdb;
    GO
    EXEC dbo.sp_start_job N’92E2F35F-F4E6-450E-8E04-FF776B60B2BE’;–Reemplazalo por job de la suscripción
    GO
    END

    Si lo que necesitas es que envíe el correo específicamente cada vez a un destinatario distinto deberías hacerlo desde ssis.

    Espero nos comentes que tal ha ido.

    Saludos

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.