По материалам компании "ПрограмБанк".

Задачи составления внутренней и внешней отчетности можно решать различными способами - в том числе используя только Excel, покупая дорогостоящие программные продукты западных производителей для построения хранилищ данных или разрабатывая "самописные" приложения. У каждого из этих способов свои недостатки: большой объем ручного труда пользователей, неудовлетворительное качество данных, высокая стоимость лицензий или длительная разработка. В этой статье описывается решение отечественных разработчиков - аналитический программный комплекс "Нострадамус" компании "ПрограмБанк" (http://www.prbank.ru), сочетающий умеренную стоимость с высокой автоматизацией разработки. "Нострадамус" позволяет разрабатывать приложения для сбора и выверки данных, анализа, получения отчетности, планирования и бюджетирования, предоставляя пользователям инструменты для самостоятельной настройки системы там, где это необходимо. Гибкость системы позволила внедрить ее в таких разных организациях, как, например, Московская железная дорога (сейчас филиал РАО "РЖД") и ООО "Дойче Банк" (Москва).

В состав комплекса входит инструментарий для разработки структур хранилища данных, загрузки информации, сбора данных от подразделений, построения пользовательского интерфейса, получения отчетов, OLAP-анализа с возможностью расчета по задаваемым пользователем формульным методикам. Среди особенностей комплекса - централизованное администрирование, система разграничения доступа на уровне СУБД, открытость для интеграции с другими приложениями. Хранилище данных комплекса использует СУБД Oracle. Имеется также lite-версия продукта, работающая на бесплатной и практически не требующей администрирования СУБД Firebird ("наследник" известной в России системы Interbase); ее можно использовать на небольших предприятиях, а также для установки в удаленные подразделения в качестве "умного" клиента для сбора данных. В этой статье речь пойдет о применении "Нострадамуса" для задач сбора данных и собственно построения отчетности.

Сбор данных

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

Загрузка из внешних систем

Процесс загрузки данных из внешних систем, или процесс ETL (extraction-transformation-load), организован в "Нострадамусе" в шесть стадий (рис. 1):

1. Извлечение данных из внешних СУБД или файлов и размещение их во временном хранилище. Для автоматизации этой стадии в комплексе предусмотрен инструмент источников данных, с помощью которых легко настраивать подсоединение к внешним СУБД, таким, как Oracle или Microsoft SQL Server, по протоколам OLE DB, ODBC и dbExpress, загружать файлы форматов Excel, CSV и DBF. Предусмотрен также инструмент разбора текстовых файлов на основе задаваемых разработчиком шаблонов.

2. Первичная автоматическая проверка данных. В рамках этой стадии контролируется классифицированность значений, т. е. наличие заданных во внешней системе кодов объектов (валюты, подразделения, счета и т. д.) в справочниках хранилища данных, заполнение необходимых полей, отсутствие дублирования уникальных ключей и другие ограничения. "Нострадамус" позволяет на основе настроек соответствия структур источников и приемников данных (т. е. рабочих таблиц хранилища данных) автоматически генерировать процедуру проверки для этой стадии, однако предусмотрена и возможность задать на этой стадии дополнительную программную процедуру контроля данных.

3. Визуальный контроль данных пользователем. На этой стадии пользователь или администратор системы просматривает загружаемые данные и результаты их проверки на предыдущей стадии. Здесь он может корректировать загружаемые данные, пополнять системные справочники, добавляя неклассифицированные значения, а также выборочно помечать строки для загрузки. Эта стадия (в зависимости от настроек приемника данных) может пропускаться либо присутствовать только при наличии ошибок на предыдущей стадии.

4. Загрузка данных в хранилище. На этой стадии - на основе настроек соответствия источников и приемников данных либо при помощи написанной вручную процедуры - происходит преобразование и перекладка данных из временного хранилища в постоянное или полупостоянное, в зависимости от характера данных, с замещением или синхронизацией уже существующих записей.

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

6. Утверждение информации. Эта стадия также необязательна, однако она чрезвычайно полезна в тех случаях, когда может произойти повторная загрузка одной и той же информации по мере ее изменения во внешнем источнике. Для обработки этой ситуации в финансовом хранилище комплекса организовано хранение данных в разрезе версий. При этом загрузка на четвертой стадии выполняется в "нулевую" версию - полупостоянное хранилище, для которого тем не менее можно построить все необходимые отчеты для максимально полной проверки данных. Перенос же данных в одну из утвержденных версий осуществляется только после того, как пользователь будет удовлетворен качеством данных.

Fig.1 Рис. 1. Схема загрузки данных из внешних систем.

Особенность "Нострадамуса" в том, что он обеспечивает высокую автоматизацию разработки на всех стадиях загрузки, причем инструменты для этого интегрированы в рамках одной программной системы. Хотя комплекс и допускает дописывание процедур вручную на каждой стадии загрузки, но благодаря постоянному развитию инструмента сейчас более чем в 70% случаев используется автоматическая генерация кода, за счет чего сокращается время на разработку процесса загрузки и упрощается администрирование. Например, в процессе разработки решения для получения финансовой отчетности по стандартам US GAAP для ООО "Дойче Банк" разработка и отладка интеграции данных из четырех различных информационных систем заняла всего около месяца.

Ручной и полуавтоматический ввод данных

Этот вид сбора данных до сих пор был плохо автоматизирован в западных инструментах, поскольку он считается нетехнологичным. Однако в российской практике такая функция совершенно необходима. Это диктуется отсутствием автоматизации части функций организации - необходимые данные часто учитываются средствами Microsoft Excel, и наиболее технологичным способом их сбора оказывается перенос через буфер обмена и ручной ввод. Кроме того, все более актуальным становится получение отчетности по международным стандартам, для чего необходима информация, отсутствующая в учетных системах, организованных по российским правилам бухучета.

Попытки собирать информацию непосредственно через Microsoft Excel обычно наталкиваются на ряд проблем, в числе которых предоставление данных в неверном формате; использование разных кодировок справочных данных и наименований контрагентов; неправильное понимание сотрудниками на местах того, какие данные от них требуются, и в результате несогласованность предоставляемых данных; наконец, полная неясность статуса процесса - кто из подразделений не предоставил данные, у кого какие ошибки и т. п. В результате сотрудники центрального подразделения, отвечающего за отчетность, тратят массу времени на проверку, запросы в подразделения и собственно интеграцию данных. Кроме того, отдел ИТ получает свою долю головной боли из-за нетехнологичного хранения данных.

Для решения этих проблем в состав "Нострадамуса" входит инструмент экспресс-таблиц. Они во многом аналогичны книгам Microsoft Excel, настройка их доступна не только программистам, но и непосредственно пользователям-"потребителям данных", однако при этом обеспечиваются возможности современной клиент-серверной системы (рис. 2). Прежде всего это механизмы проверки данных, позволяющие потребителям данных задавать контрольные соотношения, соблюдение которых будет проверяться при вводе данных пользователями-"поставщиками данных". Кроме того, экспресс-таблицы "навязывают" пользователю правильную классификацию данных согласно утвержденным справочникам. Имеются также средства импорта из Excel и текстовых файлов с возможностью автоматической перекодировки данных в случае, если во внешних источниках принята другая классификация, и последующего ручного обогащения данных. Как и при загрузке данных из внешних систем, при помощи экспресс-таблиц можно организовать версионное хранение собираемых данных с наличием "нулевой" и утвержденной версий; более того, здесь оно становится еще актуальнее. Важна также возможность построения отчетности о статусе процесса сбора данных - кто из подразделений предоставил информацию и какого качества.

Fig.2 Рис. 2. Схема ручного и полуавтоматического сбора данных. Серым цветом выделены элементы, возникающие при работе off-line.

Заметим, что все эти возможности позволяют в значительной степени снять контроль и ответственность за процесс с отдела ИТ и возложить его непосредственно на потребителей данных. Это означает, что работа отдела ИТ становится более прозрачной для пользователей и его сотрудники смогут сконцентрироваться на технических задачах, которые все равно будут ставиться пользователями.

Сбор данных с удаленных подразделений в режиме off-line

В крупных территориально распределенных организациях часто возникает необходимость сбора информации с удаленных подразделений в режиме off-line - как из-за недостаточного качества каналов связи, так и по соображениям удобства администрирования и обеспечения безопасности. Эту задачу часто усложняет "зоопарк" информационных систем, установленных в подразделениях, и необходимость ручного или полуавтоматического ввода данных. На этот случай в состав "Нострадамуса" входят такие средства, как сервер загрузки и lite-версия комплекса, которую можно использовать в качестве модуля сбора данных, устанавливаемого непосредственно в подразделениях.

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

Хотя сервер загрузки можно использовать и в случае обмена файлами Microsoft Excel, наибольшая эффективность процесса достигается установкой в подразделения lite-версии "Нострадамуса" в качестве модуля сбора данных. Это обеспечивает удобство загрузки информации из учетных систем подразделений, возможность просмотра и использования правильным образом классифицированных справочников, упрощает ручной ввод в экспресс-таблицы с моментальной проверкой информации непосредственно в процессе ее введения. Кроме того, подразделения могут использовать lite-версию для получения собственной отчетности и проведения анализа. Обмен данными между "Нострадамусами" в центре и на местах не требует сложной настройки и программирования при помощи стандартного формата XML. А использование бесплатной и не требующей администрирования СУБД Firebird в lite-версии позволяет сократить издержки.

Получение отчетности

Хотя сбор данных и составляет большую часть работы по созданию отчетной системы, пользователя - бухгалтера, экономиста или аналитика - больше интересует собственно построение отчетности. "Нострадамус" позволяет строить любые требуемые формы отчетности, а входящее в его состав финансовое хранилище содержит готовые настройки для получения финансовой отчетности по международным стандартам и внутренней управленческой отчетности. Бухгалтеры оценят такие возможности, как построение отчетности от уровня проводок и путем консолидации готовых отчетных форм, ведение нескольких планов счетов с возможностью преобразования отчетности между ними, ввод и автоматическая генерация корректирующих проводок, аллокация расходов на центры финансового учета, задание формульных показателей и т. д. Здесь важно подчеркнуть, что все эти возможности реализованы в инструментарии "Нострадамуса" и открыты для изучения, модификации и расширения в рамках конкретных внедрений как специалистам компании "ПрограмБанк", так и ИТ-специалистам заказчика. Кроме того, значительная часть настроек доступна и для пользователей.

Представление данных разработчики также постарались сделать открытым для пользователя. Многие отчеты реализованы на базе многомерного представления информации, и пользователи могут их модифицировать по технологии OLAP. Для удобства формирования финансовой отчетности по международным стандартам реализован инструмент экспресс-отчетов, которые позволяют просто и быстро формировать отчеты путем задания формул и указания признаков оформления.

"Нострадамус" реализован как открытая система и может как импортировать данные, так и экспортировать их в другие системы. Любые отчеты, разработанные при помощи "Нострадамуса", можно получить в формате HTML и экспортировать в Excel (без потери форматов) и Word; существует также возможность экспорта информации в форматах XML и в виде текстовых файлов. Кроме того, "Нострадамус" легко интегрируется с приложениями, поддерживающими технологию OLE Automation. К примеру, эта возможность позволяет принимать и отправлять сообщения электронной почты, а также объединять несколько отчетов в единый файл Microsoft Word или PDF с финальным оформлением, пригодным для предоставления клиентам.

Вместо заключения

В последние годы экономическая обстановка и стандарты получения отчетности динамично менялись, и есть все основания полагать, что темпы этих изменений сохранятся и в будущем. В такой ситуации для ИТ-специалистов важно иметь в своем распоряжении инструмент, который позволит легко адаптироваться к меняющимся условиям. "Нострадамус" вполне способен справиться с такой задачей. Опыт внедрений компании-разработчика показывает, что комплекс действительно экономит время разработки. Так, вполне возможно получить работающий прототип решения через месяц после подписания технического задания и промышленную систему - через три-четыре месяца. А тот факт, что пользователи реально вовлечены в процесс подготовки отчетности, минимизирует организационные проблемы и обеспечивает реальную отдачу от автоматизации.