Difference between revisions of "Software Developer's Guide"

From iDempiere en
m
Line 3: Line 3:
 
'''Status:''' This is Work in Progress, but it may be useful as it is.
 
'''Status:''' This is Work in Progress, but it may be useful as it is.
  
−
== Introduction ==
+
= Introduction =
 
The core iDempiere system supplies a range business functionality straight out of the box, such as role-based access, organisational structure, accounting, procurement, warehousing, and so on, but it is also flexible enough to be adapted to meet new requirements as they arise, using these mechanisms:
 
The core iDempiere system supplies a range business functionality straight out of the box, such as role-based access, organisational structure, accounting, procurement, warehousing, and so on, but it is also flexible enough to be adapted to meet new requirements as they arise, using these mechanisms:
 
* [http://www.chuckboecking.com/erp-customization-know/ Configuration]: changing the system using built-in facilities such as modifying field labels, setting parameters, modifying workflows, and using report-writers;
 
* [http://www.chuckboecking.com/erp-customization-know/ Configuration]: changing the system using built-in facilities such as modifying field labels, setting parameters, modifying workflows, and using report-writers;
Line 13: Line 13:
 
This guide explains how iDempiere can be adapted to meet new business requirements, without changing the codebase.
 
This guide explains how iDempiere can be adapted to meet new business requirements, without changing the codebase.
  
−
== Configuration ==
+
= Configuration =
−
=== Login window ===
+
== Login window ==
 
* [[NF2.1 Configurable Info Login|Configurable Login Window information]]: system details in Login Window can be configured by adding keys to the System Configurator
 
* [[NF2.1 Configurable Info Login|Configurable Login Window information]]: system details in Login Window can be configured by adding keys to the System Configurator
 
* [[NF2.1 Custom Homepage|Customizable and themeable iDempiere homepage]]
 
* [[NF2.1 Custom Homepage|Customizable and themeable iDempiere homepage]]
 
* [[System Configurator (Window ID-50006)|System Configurator settings]]: define global parameters in the database to control the system
 
* [[System Configurator (Window ID-50006)|System Configurator settings]]: define global parameters in the database to control the system
  
−
=== Themes ===
+
== Themes ==
 
These themes can be installed as plug-ins. Use them as a base for developing your own custom theme.
 
These themes can be installed as plug-ins. Use them as a base for developing your own custom theme.
 
* [[Plugin:_Theme_Business_Team|Business Team Theme]]: lightweight theme using CSS3
 
* [[Plugin:_Theme_Business_Team|Business Team Theme]]: lightweight theme using CSS3
Line 26: Line 26:
 
* [[Plugin: Theme ferrytheme|Ferry theme]]: theme with a different colour palette
 
* [[Plugin: Theme ferrytheme|Ferry theme]]: theme with a different colour palette
  
−
=== Dashboard configuration ===
+
== Dashboard configuration ==
 
* [[NF2.0_User_Configurable_Dashboard|User Configurable Dashboards]]: add/remove dashboard elements on the Home page
 
* [[NF2.0_User_Configurable_Dashboard|User Configurable Dashboards]]: add/remove dashboard elements on the Home page
  
−
=== WorkFlows ===
+
== WorkFlows ==
 
* [http://www.adempiere.com/Workflows_Explained Workflows explained]
 
* [http://www.adempiere.com/Workflows_Explained Workflows explained]
  
−
=== Report Writer ===
+
== Report Writer ==
 
* [[Creating reports using JasperReports]]
 
* [[Creating reports using JasperReports]]
 
* [[Plugin:_JasperReports|Plug-in for JasperReports]]: includes a video and a sample set of reports for Customer and Supplier Financial Statements
 
* [[Plugin:_JasperReports|Plug-in for JasperReports]]: includes a video and a sample set of reports for Customer and Supplier Financial Statements
 
* [[JasperReports_redesign|Some links to historical documentation]]: for background reading
 
* [[JasperReports_redesign|Some links to historical documentation]]: for background reading
  
−
== Localization ==
+
= Localization =
−
===Language Packs===
+
==Language Packs==
 
* [[Localization]]: use of language packs
 
* [[Localization]]: use of language packs
 
* [[Install german language Pack|Example of German localization]]: example of changing country settings and installing a language pack for Germany
 
* [[Install german language Pack|Example of German localization]]: example of changing country settings and installing a language pack for Germany
Line 44: Line 44:
 
* [http://www.adempiere.com/Localization_Guide Original Adempiere Localization Guide for reference]
 
* [http://www.adempiere.com/Localization_Guide Original Adempiere Localization Guide for reference]
  
−
===Change field labels===
+
==Change field labels==
 
* [[Localization#Use_translations_to_quickly_change_labels| Use translations to quickly change labels]]
 
* [[Localization#Use_translations_to_quickly_change_labels| Use translations to quickly change labels]]
−
===Localize reports===
+
==Localize reports==
 
* [[Multi-Lingual_Jasper|Multilingual reports in Jasper]]
 
* [[Multi-Lingual_Jasper|Multilingual reports in Jasper]]
  
−
== Integration ==
+
= Integration =
 
* [[Web Services First Steps|Introduction to Web Services]]
 
* [[Web Services First Steps|Introduction to Web Services]]
 
* [[Web services|Describes the Web Service interface and its methods]]
 
* [[Web services|Describes the Web Service interface and its methods]]
Line 55: Line 55:
 
* [[Web Services Security]]
 
* [[Web Services Security]]
  
−
== Extension ==
+
= Extension =
−
=== Deploying externally developed plug-ins ===
+
== Externally developed plug-ins ==
 +
=== Plug-in collections ===
 
The iDempiere community has developed a large collection of plug-ins and and made them available for download and deployment. These can deployed directly into the running application using the Apache Felix interface. The Eclipse development environment is not needed.
 
The iDempiere community has developed a large collection of plug-ins and and made them available for download and deployment. These can deployed directly into the running application using the Apache Felix interface. The Eclipse development environment is not needed.
  
Line 62: Line 63:
 
* [https://sourceforge.net/projects/red1/files/ Set of plug-ins from Red1]: rich set of plug-ins from one of the founder members of iDempiere
 
* [https://sourceforge.net/projects/red1/files/ Set of plug-ins from Red1]: rich set of plug-ins from one of the founder members of iDempiere
  
−
=== Development environment for customising plug-ins ===
+
=== Deploying plug-ins ===
 +
Plug-ins can be deployed and managed dynamically, using the Apache Felix Web Console:
 +
* [[Developing Plug-Ins - Get your Plug-In running|Load your new plug-in into a running instance of iDempiere]]: including deployment using Apache Felix
 +
* [[Developing Plug-Ins - Get your Plug-In running.Explanations|Here]] is an explanation about OSGi plug-ins
 +
 
 +
== Customised plug-ins ==
 +
=== Development environment ===
 
You will need to set up the Eclipse  development environment in order to develop plug-ins, as follows:
 
You will need to set up the Eclipse  development environment in order to develop plug-ins, as follows:
 
* [[Install Development Prerequisites|Prerequisites for the development environment]]
 
* [[Install Development Prerequisites|Prerequisites for the development environment]]
Line 82: Line 89:
 
* [[Developing Plug-Ins - Create a Feature-Project to export Plug-Ins and Fragments|Group plug-ins and fragments into a feature]]: for deploying pieces of custom functionality in a single group
 
* [[Developing Plug-Ins - Create a Feature-Project to export Plug-Ins and Fragments|Group plug-ins and fragments into a feature]]: for deploying pieces of custom functionality in a single group
  
−
=== Deploying plug-ins ===
+
== Install and run iDempiere ==
−
Plug-ins can be deployed and managed dynamically, using the Apache Felix Web Console:
+
=== Pre-built installers ===
−
* [[Developing Plug-Ins - Get your Plug-In running|Load your new plug-in into a running instance of iDempiere]]: including deployment using Apache Felix
+
* [[Installing from Installers]]: installing iDempiere from a zipped installer
−
* [[Developing Plug-Ins - Get your Plug-In running.Explanations|Here]] is an explanation about OSGi plug-ins
+
* [[Running iDempiere from Installers]]: running iDempiere after installation and configuration
−
 
+
* [[Post Installation]]: some security measures
 
=== Build a customised instance of iDempiere ===
 
=== Build a customised instance of iDempiere ===
 
* [[Creating Installers from Eclipse]]: build your own custom installer using the Eclipse IDE
 
* [[Creating Installers from Eclipse]]: build your own custom installer using the Eclipse IDE
 
* [[Building iDempiere without Eclipse]]: build iDempiere directly from the command line, useful for [http://jenkins.idempiere.com continuous integration]
 
* [[Building iDempiere without Eclipse]]: build iDempiere directly from the command line, useful for [http://jenkins.idempiere.com continuous integration]
  
−
== Install and run iDempiere ==
+
= Structure of iDempiere =
−
* [[Installing from Installers]]: installing iDempiere from a zipped installer
 
−
* [[Running iDempiere from Installers]]: running iDempiere after installation and configuration
 
−
* [[Post Installation]]: some security meaures
 
−
 
 
−
== Structure of iDempiere ==
 
 
* [[Equinox OSGi framework]]: describes OSGi and the technology stack that was used to build iDempiere so you can see how the system hangs together
 
* [[Equinox OSGi framework]]: describes OSGi and the technology stack that was used to build iDempiere so you can see how the system hangs together
 
* [[Eclipse Buckminster Component Assembly]]: looks at the use of Buckminster in the iDempiere project so that you can get a better understanding of the build process, and how Buckminster manages the components
 
* [[Eclipse Buckminster Component Assembly]]: looks at the use of Buckminster in the iDempiere project so that you can get a better understanding of the build process, and how Buckminster manages the components
  
−
== References ==
+
= References =
 
* [[:Category:Development]]: all Wiki pages regarding Development
 
* [[:Category:Development]]: all Wiki pages regarding Development
 
* [[:Category:Developer documentation]]: more specific Development topics
 
* [[:Category:Developer documentation]]: more specific Development topics
 
* [http://www.adempiere.com/ADempiere_ERP Read-only wiki of the predecessor Adempiere project]: the project has moved on in the form of Idempiere but the archive remains for reference purposes
 
* [http://www.adempiere.com/ADempiere_ERP Read-only wiki of the predecessor Adempiere project]: the project has moved on in the form of Idempiere but the archive remains for reference purposes

Revision as of 10:13, 27 August 2017

This guide explains to Software Developers and System Administrators how to configure and customise iDempiere. Solid technical experience is required.

Status: This is Work in Progress, but it may be useful as it is.

Introduction

The core iDempiere system supplies a range business functionality straight out of the box, such as role-based access, organisational structure, accounting, procurement, warehousing, and so on, but it is also flexible enough to be adapted to meet new requirements as they arise, using these mechanisms:

  • Configuration: changing the system using built-in facilities such as modifying field labels, setting parameters, modifying workflows, and using report-writers;
  • Localization: adapting the system for a specific country, region or language by adding locale-specific components and translating the terminology;
  • Integration: linking disparate software applications and platforms using predefined interfaces so that the subsystems function together as one system to support the enterprise objectives;
  • Extension: creating new functionality by adding database attributes and plugins which do not affect the core system;
  • Modification: you have access to the source code so you can turn your system into a tar pit, or big ball of mud, so don't modify the code or database schema by hand unless you intend to push the code into the trunk.

This guide explains how iDempiere can be adapted to meet new business requirements, without changing the codebase.

Configuration

Login window

Themes

These themes can be installed as plug-ins. Use them as a base for developing your own custom theme.

Dashboard configuration

WorkFlows

Report Writer

Localization

Language Packs

Change field labels

Localize reports

Integration

Extension

Externally developed plug-ins

Plug-in collections

The iDempiere community has developed a large collection of plug-ins and and made them available for download and deployment. These can deployed directly into the running application using the Apache Felix interface. The Eclipse development environment is not needed.

Deploying plug-ins

Plug-ins can be deployed and managed dynamically, using the Apache Felix Web Console:

Customised plug-ins

Development environment

You will need to set up the Eclipse development environment in order to develop plug-ins, as follows:

Developing custom plug-ins

Once the development environment has been set up, you can follow these guides to develop various types of plug-ins:

Install and run iDempiere

Pre-built installers

Build a customised instance of iDempiere

Structure of iDempiere

  • Equinox OSGi framework: describes OSGi and the technology stack that was used to build iDempiere so you can see how the system hangs together
  • Eclipse Buckminster Component Assembly: looks at the use of Buckminster in the iDempiere project so that you can get a better understanding of the build process, and how Buckminster manages the components

References

Cookies help us deliver our services. By using our services, you agree to our use of cookies.