Объявление

Свернуть
Пока нет объявлений.

Рассылка отчетов по расписанию

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Рассылка отчетов по расписанию

    Часто возникает необходимость периодически рассылать отчеты. Если отчетов много, каналы связи медленные, а сами отчеты сделаны неоптимально (лишние поля, лишние вычисления, избыточный объем), то формирование отчетов может занимать десятки минут.
    Для автоматизации рассылки отчетов пишется простенький скрипт (пара часов с использованеим хелпа).

    Поделюсь своей наработкой.
    Во-первых, запуск скрипта делается через расписание (см. соседний топик).
    Скрипт нужно запускать не server-sided, а через OtAut, иначе из-за ошибке в скрипте может повиснуть сервер, а не только сессия.
    Скрипт ОТ выглядит так:
    Logmessage "Daily report"
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run("C:\Omnitracker\WeeklyReport.vbs")


    Пишем в лог информацию о вызове, вызываем внешний VB-скрипт.

    Сам внешний скрипт:
    Set app = CreateObject("OtAut.OtApplication")
    With app
    Set Sess = .MakeSessionEx(localhost, 5085, "superuser", "superuser", "en") 'Открываем сессию
    Set fld = sess.RequestFolders("Заявки")
    Set reqs = fld.Requests
    Set tsk = fld.Tasks("Вчерашние важные заявки") 'Формируем отчет,
    tsk.Execute reqs, "c:\Omnitracker\Reports\YesterdayImportant.pdf ", 1 'пишем на в файл

    Set objEmail = Sess.CreateEmail 'Задаем шаблон письма
    objEmail.Subject="Отчет за предыдущие сутки"
    objEmail.PlainTextBody="Отчет за предыдущие сутки"

    Set objRecipients = Sess.CreateEmailAddresses
    objRecipients.Add "superuser@mail.ru","Уберъюзер",1 'Задаем получателей
    Set objEmail.Recipients=objRecipients
    Set attachments = Sess.CreateEmailAttachments 'Добавляем файлик
    attachments.AddFile "c:\Omnitracker\Reports\YesterdayImportant.pdf ", "Вчерашние важные.pdf"
    objEmail.AddAttachments attachments
    objEmail.Send 'Шлем письмо
    End With



    Вот и все.
    На всякий случай, не помешает резервирование OtAut лицензии на юзера, от которого формируется отчет.
    При сложном отчете производительность сервера может снизиться.

  • #2
    Re: Рассылка отчетов по расписанию

    Прекрасное и полезное решение.

    А использовались ли отчеты с параметрами в таком решении?

    Комментарий


    • #3
      Re: Рассылка отчетов по расписанию

      Для всех отчетов были настроены фильтры без запроса параметров, в самих отчетах параметры не использовались.

      Боюсь, автоматизировать отчеты с запросом параметров (без значений по умолчанию) не получится.

      Комментарий


      • #4
        Re: Рассылка отчетов по расписанию

        Дело в том, что при разработке аналогичного механизма была разработана форма, где задается:
        Группа получателей рассылки
        Период формирования отчета( неделя, месяц, год)
        Задача (сам отчет)
        И прочие чудеса автоматизации.

        Периодом в моем случае было: От: Сейчас-Неделя(месяц, год) и ДО: Сейчас

        Так вот, при получении отчета было замечено, что я получал отчет не переформированный на момент формирования, а в разрезе данных предыдущего формирования. То есть было ощущение, что кристал при формировании отчета использовал старый/предыдущий источник данных.

        К сожалению, свою НИР я не закончил, ушел в иную работу. При прочтении Вашей темы появилась надежда, что, возможно, кроме меня еще кто то прошел этим путем. Возможно даже гладко, тогда проблемы стоило бы искать у себя локально.

        Комментарий


        • #5
          Re: Рассылка отчетов по расписанию

          Настраиваемая формочка - это будет следующий этап...

          У нас похожая ситуация с Omnitracker Dashboard.
          В ОТ версии 8.5.200 сам отчет обновляется, но выгрузка не повторяется.

          Повесили над диспетчером плазму для отображения отчета по текущей ситуации два графика - количество заявок на группах (выполнено сегодня, не выполнено, не выполнено и просрочено) и динамика поступления заявок по периодам (утро, день, вечер, ночь) с историей за пять дней. Сам отчет исправно обновляется (блок CurrentDateTime меняется корректно), а вот сами графики не меняются. Если отчет вручную перестроить, данные обновляются.
          OmniNet Ошибку признал, исправил в версии 8.5.300. Но пока не мигрировали на новую версию, диспетчеру приходится вручную переформировывать отчет.

          У меня параметры фильтра - начало текущей недели (месяца, дня) +/- величина. Отчет формируется корректно (не считая небольших рассинхронизаций из-за разницы часовых поясов, которая не отрабатывается Кристалом).
          Отчеты исправно перезаписываются и присылается корректная, последняя версия. Происходит это ежедневно, по всем позициям люди отчитываются, так что ошибка исключена.

          Может быть, проблема в том, что файл отчета прикладывался раньше, чем фактически создан (ошибка в скрипте, или файл был в каком-нибудь буфере)?

          Комментарий


          • #6
            Re: Рассылка отчетов по расписанию

            offtop: Саша, подскажи пожалуйста. А можно сфотографировать диспетчера с плазмой и отчётами OT над ним?
            С уважением,
            Жилинский Александр
            http://itsmnotes.blogspot.com

            Комментарий


            • #7
              Re: Рассылка отчетов по расписанию

              Саша, для чего нужно фото нашего диспетчера?

              Комментарий


              • #8
                Re: Рассылка отчетов по расписанию

                При использовании подобного внешнего скрипта не формируется Excel файл. Скрипт просто висит. Хотя если поставить в таске не xls а pdf, то файл формируется или запустить этот скрипт руками, то тоже работает. А вот если по расписанию, то никак.
                С чем это может быть связано?
                С уважением,
                Иванов Владислав

                Комментарий


                • #9
                  Re: Рассылка отчетов по расписанию

                  Параметр типа файла в скрипте изменен с PDF на XLS (3 вместо 1)?

                  Комментарий


                  • #10
                    Re: Рассылка отчетов по расписанию

                    естественно
                    С уважением,
                    Иванов Владислав

                    Комментарий


                    • #11
                      Re: Рассылка отчетов по расписанию

                      Тогда нет мыслей. Видимо, нужно запрос в техподдерку OmniNet делать.

                      Комментарий


                      • #12
                        Re: Рассылка отчетов по расписанию

                        Сообщение от Vladislav Ivanov
                        При использовании подобного внешнего скрипта не формируется Excel файл. Скрипт просто висит.
                        Excel на сервере корректно установлен и нормально работает в профиле учетной записи, от имени которой запускается сервис ОТ?
                        С уважением, Сергей Осадчий

                        Комментарий


                        • #13
                          Re: Рассылка отчетов по расписанию

                          Наверняка проблема именно в этом. Позор мне.

                          Комментарий


                          • #14
                            Re: Рассылка отчетов по расписанию

                            [quote=Sergey Osadchy]
                            Сообщение от "Vladislav Ivanov":3tcm0e8h
                            При использовании подобного внешнего скрипта не формируется Excel файл. Скрипт просто висит.
                            Excel на сервере корректно установлен и нормально работает в профиле учетной записи, от имени которой запускается сервис ОТ?[/quote:3tcm0e8h]
                            Я наверно вас разочарую, но это я проверил во вторую очередь. Проблема в том что с руки скрипт запускается и файл формируется, а вот по расписанию автоматически запускается процесс Wscript.exe и зависает. В чем дело не пойму.
                            С уважением,
                            Иванов Владислав

                            Комментарий


                            • #15
                              Re: Рассылка отчетов по расписанию

                              А если скрипт вызывать внутри ОТ?

                              Комментарий

                              Обработка...
                              X