youssefabohaty / openbravoposru

Automatically exported from code.google.com/p/openbravoposru
0 stars 0 forks source link

Интегрировать PDI:Kettle для запуска синхронизации из приложения #219

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
В версии 2.30 синхронизация с Openbravo ERP была 
сделана с помощью PDI:Kettle, для запуска 
заданий и преобразований необходимо было 
запускать скрипты из операционной системы. 
Но более интересным вариантом является 
интеграция API PDI:Kettle непосредственно в код 
приложения. Вот пример: 
http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+-+Java+API+Examples
#PentahoDataIntegration-JavaAPIExamples-Runninganexistingtransformation

Часть работы по интеграции PDI:Kettle в Openbravo POS 
уже была сделана, но не доведена до конца. 
Также с выходом PDI:Kettle ветке 4.x структура 
вызова заданий и преобразований, а также 
процедура обработки сообщений лога. 
Предлагаю продолжить и развить это 
направление.

Original issue reported on code.google.com by svinin...@gmail.com on 9 Aug 2012 at 12:28

GoogleCodeExporter commented 9 years ago
Опубликовал изменения 
https://bitbucket.org/svininykh/openbravoposru/changeset/b19950171e75d76782cfa33
412481f8e12aef6a9

Пока не в родном репозитарии, но пробовать 
уже можно.

Original comment by svinin...@gmail.com on 21 Aug 2012 at 4:10

GoogleCodeExporter commented 9 years ago

Original comment by svinin...@gmail.com on 21 Aug 2012 at 4:11

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Необходимые папки:

/src-sync, классы загружающие преобразования;
/transformations, XML-схемы заданий(.kjb) и 
преобразований(.ktr) сгруппированные по 
типам.

Типы(предварительно):
csv, загрузка/выгрузка справочников из/в 
текстовые файлы формата Comma-Separated Values;
generaterows, загрузка в БД строк генерируемых 
внутри схемы на шаге DataGrid;
openbravoerp, загрузка/выгрузка данных из/в Openbravo 
ERP через веб-сервис XML REST;
shtrihm, загрузка/выгрузка данных в формате 
текстовых файлов Штрих-М кассира.

Для вызова из интерфейса необходимо 
добавить в Menu.Root:

        submenu.addTitle("Menu.Maintenance.Sync");
        submenu.addPanel("/com/openbravo/images/list.png", "Menu.PreviewSync", "com.openbravo.sync.panel.Preview");
        submenu.addExecution("/com/openbravo/images/database_imp.png", "Menu.SyncImpProducts", "com.openbravo.sync.process.ProductsSyncCreate");
        submenu.addExecution("/com/openbravo/images/database_exp.png", "Menu.SyncExpOrders", "com.openbravo.sync.process.OrdersSyncCreate");
        submenu.addPanel("/com/openbravo/images/package_settings.png", "Menu.ConfigureSync", "com.openbravo.sync.panel.JPanelConfigSync");

Задать права на выполнение в профилях 
пользователей:

    <class name="com.openbravo.sync.panel.Preview"/>
    <class name="com.openbravo.sync.process.ProductsSyncCreate"/>
    <class name="com.openbravo.sync.process.OrdersSyncCreate"/>
    <class name="com.openbravo.sync.panel.JPanelConfigSync"/>

Original comment by svinin...@gmail.com on 21 Aug 2012 at 5:11

GoogleCodeExporter commented 9 years ago
Все схемы находятся в папках с 
соответствующими названиями по типам в 
/transformations/com/openbravo/transformations

/transformations, по аналогии с /reports и /locales, может 
не включатся в скомпилированный .jar, что 
даёт возможность изменять схемы без 
повторной сборки исходников.

Если развивать тему аналогий, то также как 
для отчётов JasperReports, для преобразований 
PDI:Kettle необходимо добавить BeanShell скрипты 
для задания параметров и вызова 
конкретного преобразования 
непосредственно из Menu.Root. 

Original comment by svinin...@gmail.com on 21 Aug 2012 at 5:13