CRM ЕШКО (Россия)
|
[+]
|
Более подробно о моем участии в проекте для российских работодателей … |
Проект по доработке CRM-системы компании.
В базе данных было около 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, которые могли использовать эти данные. Отчеты запускались через планировщик, их можно было запустить через интерфейс отчетов, либо из определенных мест проекта для экономии времени (батчинг), в результате получались наборы данных. Каждый отчет имел основной экземпляр и несколько дочерних в зависимости от шаблона, который применялся. |