Несколько месяцев назад ко мне подошёл начальник и обмолвился о том, что большие боссы были бы не против видеть отчёты из Service Desk на каком-нибудь веб-портале. Я сразу насторожился, так как всем известны причуды начальства — то, что сегодня всего лишь просьба, завтра уже распоряжение.
Передо мной встала задача: сделать веб-страницу, на которую мог бы заходить начальник, вводить желаемые параметры (дату, рабочую группу и т. д.) и получать наглядный отчёт о количестве и статусе заявок.
Когда-то давно мой друг, а тогда ещё и коллега, делал нечто подобное. Он создал сайт на IIS тогда, кажется, шестой версии и писал на VB asp-скрипты. Долгое время я пытался использовать его наработки, благо в нашем болоте ничего не удаляется, однако, современные версии IIS работают только с asp.net, а так как в программировании я вообще ничего не смыслю, оптимизировать его код я не мог.
Чтобы вообще что-то понимать в а работе с базами данных и в создании отчётов, я сходил на курсы MS по Transact-SQL. Там же я узнал о таком мультимедийном комбайне, как MS SQL Server 2012. и решил, что данный продукт, в принципе, может подойти для решения моей задачи. Да, конечно, есть некое извращение, чтобы работать с оракловой базой, писать запросы на PL/SQL, а потом перегонять их в MS SQL, но нет преград для долбоёбов!
После долгих мучений, которые я здесь описывать не буду, после того, как начальство действительно начало интересоваться, когда же я, наконец, осуществлю их мечты по формированию отчётов на веб-странице, у меня всё получилось. Естественно, после того, как у тебя уже всё настроено и работает, кажется, что и работы там было не так уж много. Но так покажется только тем, кто уже имеет опыт подобной работы. Мне же было совсем нелегко освоить всё с нуля и где-то с помощью technet-а, где msdn-а, где-то с помощью коллег прийти к успеху.
Ниже я приведу инструкцию по разворачиванию сервера отчётов на базе MS SQL 2012.
ОС MS Server 2012 R2, имя компьютера в домене: srv-reptest.
Первым делом, если этого нет, нужно добавить компонент net framework, который необходим для последующей установки MS SQL Server-а:
Скорее всего, понадобится диск с ОС либо образ диска. Я делал установку командой: dism.exe /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs
После этого можно устанавливать MS SQL Server. Заранее позаботьтесь о том, чтобы путь к файлу setup.exe не был слишком длинным, иначе инсталлятор выдаст ошибку.
Выбираем New SQL Server stand-alone installation:
Далее идут стандартные шаги про проверкам, вводу кода продукта.
Затем необходимо отметить компоненты, которые нам нужно установить. Вообще, для развёртывания сервера отчётов достаточно выбрать только Database Engine Services, Analysis Services и Reporting Services — Native:
Недостающие компоненты, если таковые будут, всегда можно установить потом.
Настройку экземпляра можно оставить по умолчанию, можно настроить свой:
Режим запуска служб я ставил на автоматический, чтобы потом не забыть про них:
На следующих двух шагах необходимо добавить учётку для управления устанавливаемыми службами. Я добавлял текущего пользователя:
После установки запускаем Reporting Services Configuration Manager и жмём Connect:
Заходим на вкладку Web Service URL:
Для запуска сайта нажимаем кнопку Apply и ждём, когда службы отработают.
После этого заходим на вкладку Report Manager URL и делаем то же самое:
Теперь нам нужно настроить подключение к базе данных. Вкладка Database:
Выбираем создание новой базы данных.
Далее у меня всё было по умолчанию, можно изменить имя базы. В итоге, получается так:
После этого, в закладке Report Manager URL кликаем на ссылку http://srv-reptest:80/Reports и попадаем на свежесозданный нами сайт:
Но сайт нам пока не понадобится, его можно закрыть. Потому что настало время устанавливать Oracle (база-то у меня Оракловая). Про установку Оракла я уже писал тут, так что не буду повторяться.
Единственный нюанс, если вы используете 64-битную ОС, придётся поставить ещё и 64-битную версию Оракла. На самом деле, самый трудный момент во всём этом — настроить подключение к базе. Я очень долго промучился именно с этим. Постоянно возникали разные ошибки. То версия Оракла не та, то MS SQL вообще не обнаруживал клиента Оракл, то возникали проблемы с TNS-listener. В итоге, каким-то счастливым образом мне удалось с этим справиться.
Я поставил две версии Оракла — 10 (x86) и 11 (x64). На обоих настроил подключение к базе (файл tnsnames.ora) и всё заработало.
Для работы с отчётами лучше использовать Report Builder. На главной странице сайта жмём соответствующую ссылку, приложение загрузится и откроется с уже установленным подключением к нашему серверу отчётов:
В нижней части экрана отображается текущее подключение к серверу. В построитель отчётов можно загрузить уже имеющийся у вас отчёт или создать новый. После изменения отчёта его можно сразу же сохранить на сервер.
Настройка доступа к серверу других пользователей осуществляется через раздел Folder Settings — New Role Assignment:
Новые учётки вносятся в формате: <домен>\<имя пользователя>. Здесь же выбирается необходимая роль. К примеру, если пользователю нужно только просматривать загруженные отчёты, выбираем роль Browser.
Работа с самим отчётом выглядит незамысловато. Кликаем загруженный отчёт — у меня это отчёт с задаваемой датой выгрузки, вводим параметры:
Нажимаем enter или кнопку View Report, получаем результат:
В принципе, это всё. Пользователи в интрасети могут входить на данный сайт по ссылке: http://srv-reptest/Reports/Pages/Folder.aspx, если, конечно, для их учётной записи настроен доступ. Дизайн, название отчёта, и всё остальное редактируется через Report Builder.
That’s all, Folks!