Software Developer's Guide
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
- Configurable Login Window information: system details in Login Window can be configured by adding keys to the System Configurator
- Customizable and themeable iDempiere homepage
- System Configurator settings: define global parameters in the database to control the system
Themes
These themes can be installed as plug-ins. Use them as a base for developing your own custom theme.
- Business Team Theme: lightweight theme using CSS3
- KYSYS theme: uses Google's material design principles
- Atlantic theme: uses Flat Design principles based on ZK Atlantic theme
- Ferry theme: theme with a different colour palette
Dashboard configuration
- User Configurable Dashboards: add/remove dashboard elements on the Home page
WorkFlows
Custom fields
iDempiere can be configured with new database fields to provide added business functionality. These fields are marked 'User maintained' so they will be preserved through any database upgrade process.
- Adding a Field to an existing Window: add fields to existing windows without writing code or connecting to the database
- NF2.1 Create Fields Improvement: create the fields only for a specific entity type and/or create fields which were added to the columns since a specific date
Report Writer
- Create reports using the built-in JasperReports engine
- Create complex reports and print-outs using JasperSoft Studio
- Plug-in for JasperReports: includes a video about the Niemcor plug-in the sample set of reports for Customer and Supplier Financial Statements
- Some links to historical documentation: for background reading
Localization
Language Packs
- Localization: use of language packs
- Example of German localization: example of changing country settings and installing a language pack for Germany
- JPiere set of iDempiere Plugins for Japan: still work in progress so documentation is incomplete
- Original Adempiere Localization Guide for reference
Change field labels
Localize reports
Integration
SOAP Web Services
- Web Services First Steps: introduction to SOAP Web Services
- Web Services Clients: example code for Java/Android and .NET clients to access the SOAP Web Services
- Web services: describes the Web Service interface and its methods
- Web Services improvements: improvement to the web services to support composite services
- Web Services Security: the security model
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.
- Category: Available Plugins: list of Plugins from the wiki
- Set of plug-ins from Red1: rich set of plug-ins from one of the founder members of iDempiere
Deploying plug-ins
Plug-ins can be deployed and managed dynamically, using the Apache Felix Web Console:
- Load your new plug-in into a running instance of iDempiere: including deployment using Apache Felix
- Here is an explanation about OSGi plug-ins
Customised plug-ins
Development environment
You must set up the Eclipse development environment in order to develop plug-ins, as follows:
- Prerequisites for the development environment
- Download the iDempiere source code: follow these Download Tips if you have a slow line
- Set up Eclipse: there also is a more detailed guide with videos here
- Install the seed database
- Running iDempiere within Eclipse
Developing custom plug-ins
Once the development environment has been set up, you can follow these guides to develop various types of plug-ins:
- How to create a plug-in: a basic overview of creating a plug-in
- Develop a plug-in to change the look-and-feel of the WebUI theme: includes a video
- Another guide to WebUI theme plug-ins
- Develop a plug-in for a new process: includes process parameters, logs, and error handling
- Dashboard Panel Fragments: dashboards to display relevant information and quick access to important functions from the main page
- Create a new class model with window and tabs: requires an understanding of database schemas
- Create a custom document class: documents are useful because they have a status and can be controlled in a workflow
- Hackers Guide to Documents: more about documents
- Group plug-ins and fragments into a feature: for deploying pieces of custom functionality in a single group
Install and run iDempiere
Pre-built installers
- Installing from Installers: installing iDempiere from a zipped installer
- Running iDempiere from Installers: running iDempiere after installation and configuration
- Post Installation: some security measures
Build a customised instance of iDempiere
- 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 continuous integration
Modification
Modification involves making changes to the iDempiere source code and schema, so don't do it. You will not be able to upgrade. Create a plug-in instead.
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
- Category:Development: all Wiki pages regarding Development
- Category:Developer documentation: more specific Development topics
- 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