Отчеты MSSQL->XML->XSLT->CSV/HTML альтернативы?
От: diez_p  
Дата: 01.06.11 11:29
Оценка:
Описание бизнес процесса.
Периодически ежедневно, еженедельно, ежемесячно надо отправлять отчетные данные поставщикам, за какой-то период день, неделя, месяц соотвественно. Содержание отчета как правило представляет собой шапку, таблицу и итоги (агрегаты).
Обычно формат отправки CSV.

Как сделано сейчас:
В коде вызывается хранимая процедура, построчно данные форматируются в StringBuilder, считаются агрегаты, и отчет отправляется.
На каждого поставщика существует свой кусок кода и как правило своя хранимка.

Есть мысли перепилить так:
Вызываем хранимую процедуру, она формирует xml-документ, и далее я делаю XSL трасформацию и шлю.

Какие вижу плюсы:
При внесении нового отчета/расширении существующего, код не трогается, обновляется только ХП и если надо шаблон.
Гибкость конфигурирования: для нового поставщика можно использовать общую хранимку и общий шаблон, если надо можно написать спец. хранимку и спец шаблон.

В итоге получается так:
имеем конфигурационный файл для отчетов. В описателе каждого отчета содержится: хранимка, шаблон, реквизиты кому и куда слать, периодичность.

Вот какие есть еще варианты преобразования данных из БД в текстовый или HTML формат. Ну или какие могут быть подводные камни такой архитектуры?
Re: Отчеты MSSQL->XML->XSLT->CSV/HTML альтернативы?
От: Lloyd Россия  
Дата: 01.06.11 11:36
Оценка: 1 (1) +3
Здравствуйте, diez_p, Вы писали:

_>Вот какие есть еще варианты преобразования данных из БД в текстовый или HTML формат.


Reporting services
Re: Отчеты MSSQL->XML->XSLT->CSV/HTML альтернативы?
От: akasoft Россия  
Дата: 01.06.11 14:29
Оценка:
Здравствуйте, diez_p, Вы писали:

_>Как сделано сейчас:


А собственно, что не нравится?
... << RSDN@Home 1.2.0 alpha 4 rev. 1492>> SQL Express 2008 R2
Re[2]: Отчеты MSSQL->XML->XSLT->CSV/HTML альтернативы?
От: diez_p  
Дата: 02.06.11 09:08
Оценка:
2Lloyd: спасибо, посмотрю, чет сам недодумался посмотреть какие либо отчетные вещи у MSSQL

Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, diez_p, Вы писали:


_>>Как сделано сейчас:


A>А собственно, что не нравится?


То что при добавлении нового клиента, добавляется: код (форматирование), хранимка. Но если еще хранимки как-то можно параметризовать, то от кода форматирования никуда не деться. Отсюда имеем, что при изменении форматирования, необходимо перевыложить весь сервис, доп. затраты на время.
Сейчас реализация примерно такая
case "ident1": 
  // составляем письмо
  // шлем
break;
case "ident2": 
  // составляем письмо
  // шлем
break;
Также получить всех клиентов, для которых доступны отчеты невозможно без вывертов.

Мне кажется должно быть так.
Единый конфиг файл на всех клиентов, запись на клиента содержит: имя хранимки, имя шаблона, периодичность, получателей отчета.

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

При добавлении нестандартного нового отчета добавляется хранимка и шаблона отчета, но такое редко.
Общее число кода будет меньше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.