Выгрузка отчётов из базы Oracle на внутренний сайт

Несколько месяцев назад ко мне подошёл начальник и обмолвился о том, что большие боссы были бы не против видеть отчёты из 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-а:

Roles&features

Скорее всего, понадобится диск с ОС либо образ диска. Я делал установку командой: dism.exe /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

После этого можно устанавливать MS SQL Server. Заранее позаботьтесь о том, чтобы путь к файлу setup.exe не был слишком длинным, иначе инсталлятор выдаст ошибку.

Выбираем New SQL Server stand-alone installation:

sql1

 

Далее идут стандартные шаги про проверкам, вводу кода продукта.

Затем необходимо отметить компоненты, которые нам нужно установить. Вообще, для развёртывания сервера отчётов достаточно выбрать только Database Engine Services, Analysis Services и Reporting Services — Native:

sql2

Недостающие компоненты, если таковые будут, всегда можно установить потом.

Настройку экземпляра можно оставить по умолчанию, можно настроить свой:

sql3

 

Режим запуска служб я ставил на автоматический, чтобы потом не забыть про них:

sql4

 

На следующих двух шагах необходимо добавить учётку для управления устанавливаемыми службами. Я добавлял текущего пользователя:

sql6 sql5

После установки запускаем Reporting Services Configuration Manager и жмём Connect:

rscm

 

Заходим на вкладку Web Service URL:

rscm2

Для запуска сайта нажимаем кнопку Apply и ждём, когда службы отработают.

После этого заходим на вкладку Report Manager URL и делаем то же самое:

rscm3

 

Теперь нам нужно настроить подключение к базе данных. Вкладка Database:

db1

Выбираем создание новой базы данных.

Далее у меня всё было по умолчанию, можно изменить имя базы. В итоге, получается так:

db2

После этого, в закладке Report Manager URL кликаем на ссылку http://srv-reptest:80/Reports и попадаем на свежесозданный нами сайт:

site

 

Но сайт нам пока не понадобится, его можно закрыть. Потому что настало время устанавливать Oracle (база-то у меня Оракловая). Про установку Оракла я уже писал тут, так что не буду повторяться.

Единственный нюанс, если вы используете 64-битную ОС, придётся поставить ещё и 64-битную версию Оракла. На самом деле, самый трудный момент во всём этом — настроить подключение к базе. Я очень долго промучился именно с этим. Постоянно возникали разные ошибки. То версия Оракла не та, то MS SQL вообще не обнаруживал клиента Оракл, то возникали проблемы с TNS-listener. В итоге, каким-то счастливым образом мне удалось с этим справиться.

Я поставил две версии Оракла — 10 (x86) и 11 (x64). На обоих настроил подключение к базе (файл tnsnames.ora) и всё заработало.

Для работы с отчётами лучше использовать Report Builder. На главной странице сайта жмём соответствующую ссылку, приложение загрузится и откроется с уже установленным подключением к нашему серверу отчётов:

rb1

В нижней части экрана отображается текущее подключение к серверу.  В построитель отчётов можно загрузить уже имеющийся у вас отчёт или создать новый. После изменения отчёта его можно сразу же сохранить на сервер.

Настройка доступа к серверу других пользователей осуществляется через раздел Folder Settings — New Role Assignment:

site2

Новые учётки вносятся в формате: <домен>\<имя пользователя>. Здесь же выбирается необходимая роль. К примеру, если пользователю нужно только просматривать загруженные отчёты, выбираем роль Browser.

Работа с самим отчётом выглядит незамысловато. Кликаем загруженный отчёт — у меня это отчёт с задаваемой датой выгрузки, вводим параметры:

site3

Нажимаем enter или кнопку View Report, получаем результат:

site4

В принципе, это всё. Пользователи в интрасети могут входить на данный сайт по ссылке: http://srv-reptest/Reports/Pages/Folder.aspx, если, конечно, для их учётной записи настроен доступ.  Дизайн, название отчёта, и всё остальное редактируется через Report Builder.

That’s all, Folks!

 

Оставьте комментарий