Skip to Content

Перенос настроек между системами

Страница для печати

Введение в 2Pack

Идеальный инструментарий для настройки системы под конкретное решение: заключается в следующем

  • Разработка непосредственно в ADempiere
  • Создание пакета, который будет содержать в себе все необходимые настройки словаря данных для пользовательских изменений, которые можно воспроизвести на другом экземпляре системы.
  • Простые и легкие действия по созданию и установке пакета, а также откату изменений, внесенных пакетом, при наличии такой необходимости.

Создание, экспорт и импорт пакетов имеет следующие возможности и характеристики:

  • Простота создания пакета. Для создания пакета нужно выбрать пункта меню "Экспорт пакета"(PackOut). Выбрать из списка пакетов имя создаваемого пакета и нажатия на кнопку "Экспорт пакета".
  • Простота обновления пакета. Для обновления созданного пакета нужно повторно нажать кнопку "Экспорт пакета"
  • Простота переноса пакетов. Пакет состоит из одного файлового архива, в который в сжатом виде хранятся все необходимые файлы. Такой архив и есть пакет.
  • Большинство элементов ADempiere поддерживались в первоначальном выпуске  2Pack.Таблицы, столбцы, и поля базы данных создаются в соответствии с инструкциями, содержащимися в XML файле пакета, обрабатываемым с помощью команды "Импорт пакета" (PackIn)
  • Инструментарий управления пакетами поддерживает несколько версий системы ADempiere
  • Автоматически создает инструкции по инсталляции для пользователей.
  • Автоматически генерирует лог ошибок в файле XML в формата для конечных пользователей во время создания пакета. (Простой способ посмотреть, что было изменено или создано в ADempiere, а также какие были ошибки)
  • Возможность отката любого установленного пакета. Оригинальные настройки словаря  данных, сохраняются в в отдельную таблицу до установки пакета обновления. Эти параметры могут быть легко восстановлены в случае необходимости.
  • Можно включать в состав пакета обычный исходный код Java для любой функциональности,, таких как пользовательские функции и выноски. Эта возможность включает в себя замена или добавление новые. Java-файлы или фрагменты кода. Любой исходный код, который подвергается изменению, автоматически сохраняется перед заменой его на измененный код  Исходный код так же может быть возвращен в исходное состояние при откате изменений, внесенный установленным пакетом, при наличии такой необходимости, как это было описано выше.
  • Импорт пакетов выполняется непосредственно в самой системе ADempiere. Нет необходимости в использовании командой строки, кроме копирования самого пакета архива, содержащего в себе все необходимые данные.

Последовательность действия при переносе настроек в другие системы:

Шаги по созданию пакета:

Разработка пакета:

Разработка приложения или модуля в ADempiere. Создавайте необходимые изменения в системе так, как это Вам необходимо.Это может быть что-то простое, например отчет или же сложное, например производственный модуль.

Создание пакета

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

После того, как Вы детально опишите все, что должно входить в пакет, для его создания достаточно будет нажать кнопку "Создать пакет" в главном окне описания пакета.

Передача пакета в другие системы

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

Внутренняя структура пакета

Пакет это - автономный набор файлов, которые хранит настройки и другие данные, которые можно переносить между системами ADempiere. Далее описывается внутренняя структура каталогов пакета, создаваемого инструментом 2Pack.

1. (Каталог системы)/packages/(имя пакета) - Содержит исполняемые файлы, что для запуска процесса сборки с помощью Ant или для создания файлов моделей. Файл Build.xml содержит инструкции Ant для процесса сборки, и содержит необходимые настройки для базы данных ADempiere.

              • build.xml - Файл для управления и контроля процесса сборки пакета
              • RUN_build (.sh и .bat) файлы - Файлы для ручного запуска процесса сборки пакета.
              • GenerateModel (.sh и..bat) - Файлы для ручного запуска процесса создания файлов моделей.
              • OSLabs.gif - Логотип изготовителя пакета. (Замените на свой)

2. (Каталог системы)/packages/(имя пакета)/lib - Содержит jar файл пакета.

3. (Каталог системы)/packages/(имя пакета)/dict - В этом каталоге находится один файл AdempiereAD.xml. Этот файл содержит все необходимые настройки словаря данных что бы в сделать все необходимые настройки при установке пакета в новую систему.

4. (Каталог системы)/packages/(имя пакета)/dist/(ver) - Содержит все java файлы, распространяемые в пакете в качестве исходных кодов, а так же любые другие файлы (шаблоны, графические файлы или документация) с разделением на целевые версии системы, или без указания конкретной версии ADempiere.

5. (Каталог системы)/packages/(имя пакета)/doc - Этот каталог содержит инструкции для установки пакета с использованием инструмента "Импорт пакета" (PackIn). В этом же каталоге содержится лог файл создаваемый при инсталляции пакета в целевой системе.

6.{Adempieresource}/packages/{package name}/backup - Это каталог создается в процессе установки пакета и содержит резервные копии файлов, перезаписываемых при установке пакета. Если возникнет необходимость откатить изменения, сделанные установленным пакетом, исходные, не измененные, файлы будут взяты из этого каталога. Возможность отката изменений установленного пакета доступна только после выполнения его установки с использованием команды "Импорт пакета" (PackIn).

 

Типы данные, которые может содержать пакет:

Далее перечислены типы данных, которые можно экспортировать с помощью команды "Экспорт данных" (PackOut)

  1. Объекты приложения - Все объекты системы, связанные с экспортируемым приложением. Это могут быть окна, поля, группы полей, закладки, таблицы базы даных, отчеты, формы, меню и т.д. Другими словами, все, что необходимо для  изменений в словаре данных.
  2. Файлы, включая исходный код программы на java, необходимые для передачи в другие системы в составе пакета.
  3. Роли, включая все необходимые права доступа, которые определены для каждой конкретной роли.
  4. Фрагменты кода - эта возможность передавать только участки файлов, содержащие необходимых изменения в исходных файлах системы.
  5. Таблицу с данными. В словаре данных.содержится только описание структуры таблиц, но в пакет можно экспортировать и таблицу с  данными целиком.
  6. Данные - Допускается экспортировать в пакет данные, выбранные с помощью SQL инструкции SELECT.
  7. Окна - Позволяет пользователю включить в пакет окна системы целиком. Это возможность включает в пакет экспорта  все объект системы, ассоциированные с экспортируемым окном так, как это определено в  словаре данных.
  8. Форматы импорта - В состав пакета можно включить описания форматов данных, используемых при импорте/экспорте данных системы.
  9. Процессы и отчеты - Пакет может содержать процессы и отчеты, созданные пользователем.
  10. Формы - В пакет можно экспортировать формы, созданные пользователем.
  11. Просмотр отчетов - ?
  12. SQL запросы - В состав пакета допускается включать отдельные SQL запросы.
  13. Бизнес-процессы - Можно экспортировать в пакет бизнес-процессы (Появилось в Версии 320)
  14. Динамические правила проверки - (Появилось в Версии 320)
  15. Системные сообщения - (Появилось в Версии 330)
  16. Форматы печати - (Появилось в Версии 330)

Внимание! Поддержка экспорта рабочего стола (Workbench) была прекращена.

Ваша оценка: Нет Рейтинг: 3 (1 голос)

Комментарии

Передача сделанных настроек в другую систему действительно простое дело, а как передать не сам пакет, а настройки по его созданию? Это требуется при совместной работе, когда разные люди в разных базах разрабатывают один и тот же пакет.
Разрабатывать один и тот же пакет в разных системах? С трудом себе это представляю.
Перенос настрое для создания пакета в другую систему.

Создание временного пакета:

Например, нам нужно перенести описание пакета для экспорта Пакет_1 в другу систему. 1. Определяете его ID построения (Например 1000003). Посмотреть это можно в любом элементе пакета на закладке "Пакет детально". 2. Создаем пакет Временный_1, который будет включать в себя настройки, необходимы для созданию пакета Пакет_1: 3. В этом временном пакете прописываете 3 элемента для экспорта с типом Данные. - Из таблицы AD_Package_Exp: SELECT * FROM AD_Package_Exp WHERE AD_Package_Exp_ID=1000003; - Из таблицы AD_Package_Exp_Detail; SELECT * FROM AD_Package_Exp_Detail WHERE AD_Package_Exp_ID=1000003; - Из таблицы AD_Sequence: SELECT * FROM AD_Sequence WHERE Name='AD_Package_Exp_Detail'; 4. Делаете экспорт пакета Временный_1.

У нас готов пакет Временный_1 который включает в себя настройки, необходимы для созданию пакета Пакет_1.

Внимание, очень важно!!!!!
  1. Загружаемый пакет должен быть первым пакетом, создаваемым для экспорта данных
  2. Соответственно, подобным образом можно перенести правила создания только одного пакета
Это связно с тем, что во время процесса загрузки изменяется системная таблица последовательностей (AD_Sequence), и если не выполнить указанные условия, порядок нумерации элементов пакета экспорта будет нарушен.

Прежде, чем импортировать Временный пакет в новую систему, необходимо сделать следующее:

1. Создать описание пакета, настройки которого Вы будете импортировать (Например Пакет_2) 2. Определяете его ID построения (Например 1000099). Посмотреть это можно в любом элементе пакета на закладке "Пакет детально". 3. Заменить код ID пакета в импортируемом временном пакете. - Распаковать архив с временный пакетом. - В Файле dict\PackOut.xml заменить код пакета 1000003 на 1000099. - Упаковать архив. 4. Импортировать временный пакет в систему.

После этого у Пакета_2 в новой систему будут созданы элементы, аналогичные элементам Пакета_1 из первой системе.

Эти немного коряво, но работает. Может есть более простое решение?

Правильно ли я понял, что если адаптировать формы первичных документов (допустим релизовать торг-12 и другие документы) в adempiere, можно все эти наработки потом передать в виде пакетов сообществу, после чего загружается сборка, русифицируется, подгружаются пакеты с настройками форм и т.д?

Да. Этот функционал как раз для этого и предназначен.

Примеры будут? Хотя вроде многое понятно.
RSS-материал RSS-материал