На главную
Обо мне
Меня зовут: Николай Воронков
Я живу в: Твери, Россия
Email: job@voronkov.org
Skype: nik-voronkov
Мое резюме:в формате RTF
Работаю: Freelancer
Мое портфолио (по категориям)
MS SQL / Oracle / mySQL
ASP.NET / Silverlight
C# / PHP
Adobe InDesign (client/server)
SSRS / SSAS
Wordpress

CRM ЕШКО (Россия)

Заказчик: Компания ЕШКО – Россия
Тип проекта: Доработка CRM-системы
Моя позиция в проекте:
  • Архитектор баз данных
  • DBA
  • Программист
  • Операционные системы: Windows 2008 Server
    Базы данных: Oracle 11G
    Языки: PL/SQL, Oracle SQL, HTML, JavaScript
    Технологии: Oracle database, Oracle heterogeneous services (gateways), Oracle Apache Server, jQuery
    Язык интерфейса: Английский

    [+]
    Более подробно о моем участии в проекте для российских работодателей …

    Проект по доработке CRM-системы компании.

  • Размер базы данных: 70Gb
  • Количество клиентов: более 6 миллионов
  • Сфера деятельности: Российская Федерация
  • Представлена на рынке: с 1996 года
  • Штаб квартира: в Голландии
  • Филиалы: 8 филиалов в Европе и странах СНГ

    В базе данных было около 250 таблиц, планирование базы осуществлялось с помощью Oracle SQL Developer Data Modeler. Интерфейс работал под управлением Oracle Apache Server через модуль mod_plsql. Использовалась CUSTOM-авторизация. Основной язык программирования на серверной части – PL/SQL, небольшое количество HTML-кода использовалось для формирования контейнеров для загрузки динамического контента. В проекте активно использовались объекты Oracle (types).
    Почти все компоненты клиентской части проекта были разработаны мной еще в 2003-2005 годах для украинского филиала. На момент выполнения проекта они устарели, но задачи заменить их не стояло. Я лишь привел в соответствие логику программного обеспечения с бизнесом российского филиала ЕШКО. Там где это было возможно, я использовал jQuery, в новых модулях от компонентов старого интерфейса я отказался.

    В проекте использовалась старая 32-битная DLL, написанная мной на Delphi также в 2004-2005 годах, которая создавала отчеты в форматах RTF и MS Excel. Для создания отчетов в RTF я использовал вот эту библиотеку, предварительно ее немного доработав. На первом скриншоте показан шаблон отчета для работы с этой DLL.
    При переносе проекта на 64-битную платформу DLL перестала работать. Я провел некоторые исследования и эксперименты и мне удалось решить эту проблему. Помогла установка на сервер 32-битного клиента Oracle и небольшие манипуляции с конфигурацией LISTENER. Более подробно решение проблемы описано мной здесь. На втором скриншоте показан фрагмент файла LISTENER.ORA, где производится подключение 32-битного приложения ORACLE для работы с внешними DLL.

    Для этого проекта мной была написана тарификация отправлений для Почты России и альтернативных доставщиков. За свою карьеру я написал несколько тарификаций, в том числе и для России, но, следуя своему принципу: никогда не использовать то, что сделано мной ранее, а делать что-то новое, я реализовал подход на основе XML. Все константы я положил в XML, оформленный, как HTML. Для каждого доставщика загружался базовый шаблон на основе которого формировались версии тарифов. Обработка XML производилась с помощью инструментов Oracle XML DB.
    Кроме этого Заказчик затребовал механизм с помощью которого он мог применять различные тарифы на стыках их изменения, поэтому добавился интерфейс управления версиями тарифов.
    В этом проекте (REVELATION) мной впервые была применена технология бизнес-скриптов. Идея заключалась в том, чтобы вынести часть кода наружу, поместить его в таблицы базы данных и использовать как Dynamic SQL. Oracle имеет в составе PL/SQL объекты (types), они могут обладать свойствами и иметь методы. Мне удалось перед вызовом бизнес-скрипта инициализировать несколько объектов и передавать их внутрь блока Dynamic SQL. Таким образом появилась возможность оперативно менять логику не трогая основной код проекта.
    В составе проекта имелся генератор отчетов с планировщиком заданий. Имелось несколько десятков RECORDSETS (программы на PL/SQL), которые позволяли сформировать наборы данных в определенном формате, отдельно хранились шаблоны в форматах RTF и MS Excel, которые могли использовать эти данные. Отчеты запускались через планировщик, их можно было запустить через интерфейс отчетов, либо из определенных мест проекта для экономии времени (батчинг), в результате получались наборы данных. Каждый отчет имел основной экземпляр и несколько дочерних в зависимости от шаблона, который применялся.