Overview of the Compiere Application Dictionary and its Components

Exclusive offer: get 50% off this eBook here
Compiere 3

Compiere 3 — Save 50%

An essential and concise guide to understanding and implementing Compiere.

$26.99    $13.50
by Andries L Pretorius | June 2010 | Open Source

In this three-part article series on advanced aspects of Compiere by Andries L Pretorius, author of Compiere 3 Implementation Guide, we will cover:

  1. Overview of the Compiere Application Dictionary and its components
  2. Adding a custom field in Compiere
  3. Setting up a basic document process approval workflow in Compiere

In this article we will cover the first part—overview of the Application Dictionary (AD)

(For more resources on Compiere 3, see here.)

The Compiere Application Dictionary (AD)

The Application Dictionary makes Compiere a truly unique and flexible business framework. Compiere was originally designed from the ground up on a model driven architecture (MDA), as defined by the Object Management Group (OMG). The system design conforms to an open standard in its layered architecture between business, application, and platform logic. MDA separates the business logic modeling, from technology modeling so as to ensure that both can evolve within their own domains, but still keeping within a framework of an open standard (and platform independent) that interconnects the two.

The benefit in the Compiere environment is that through modeling, design, and build the actual deployment time is greatly reduced. The AD also ensures a seamless upgrade of the platform while having little impact on the environment-specific business objects and processes.

The Application Dictionary of Compiere is meta data driven, meaning that contextual data defines the experience. This also means that the end user presentation layer and thus, the Graphical User Interface (GUI) platform have been defined in different technologies (i.e. Java Swing, HTML, and Ajax) and offers endless possibilities.

The Application Dictionaries can be illustrated as shown in:

Compiere 3 Implementation Guide

To access the Application Dictionary you need to log in as a System Administrator and refer to the sub menu shown in:

We will use the Java Swing (Compiere Standard Edition) user interface for illustration purposes in this section.

Compiere 3 Implementation Guide

Table and columns

This refers to the fundamental building blocks of the system, and links Compiere data to the underlying Table and Column structures in the database. Illustrated below is the Period table in the AD that links to the underlying table name of C_Period, which you will find in the database:

Compiere 3 Implementation Guide

If the underlying database already contains the required fields, then by pressing the Create Columns from DB button and having the correct DB Table Name, Compiere will create the columns from the database in the AD.

Within a table, a key column must be created for use as the table identifier:

Compiere 3 Implementation Guide

Illustrated the key column C_Period_ID. A column links to a System Element, as explained below, and is linked to the underlying table through the Synchronize Column button. In effect, synchronization creates or updates a column to the underlying database.

System elements

System elements are the common data elements and are used for central terminology references. These system elements link the underlying database columns to business-speak, for instance, in the screenshot in Image 5, C_Period_ID would be translated into the actual period.

Compiere 3 Implementation Guide

System elements are also used for setting up translations, as well as help comments on column fields.

Validation rules

Field validation rules that are defined in the context of a column field are dynamically verified based on the predefined rules or user context, at time of rendering the data. For instance, when a Business Partner field is displayed for selecting, the Business Partner account must be active and not be a Summary Account as shown in Image 6.

Compiere 3 Implementation Guide

Based on the example shown in Image 6, a dynamic validation will be set up for the C_BPartner_ID column field (the Business Partner table key identifier) on the Order table, shown in Image 7.

Compiere 3 Implementation Guide

Reference

A Reference refers to database column field types that are either Data Types (i.e. an Amount, Integer, Date, Time, image, hyperlink, etc.) or a List validation (i.e. user pre-defined dropdowns) or Table validation (i.e. drop-downs for table key columns). An example of a Data Type column would be a period start date. The Column field StartDate in the Period table in the database is defined as reference Date

Compiere 3 Implementation Guide

An example of a list validation on a Period Control Action (the actions that you can perform on a period) set-up is as shown in Image 9.

The list defined through a Search Key and a Name.

Compiere 3 Implementation Guide

The list defined through a Search Key and a Name.

Compiere 3 Implementation Guide

Search keys are saved in the database.

Table Validations are data-defined based on existing referenced key columns and SQL selection. An example of a table reference would be a Document type based on a table validation SQL query. Herewith, a Document type (C_DocType) is defined, but it refers to the appropriate Tenant/client so as to ensure that only the document types for a Tenant are displayed, shown in Image 11.

Compiere 3 Implementation Guide

Compiere 3 An essential and concise guide to understanding and implementing Compiere.
Published: June 2010
eBook Price: $26.99
Book Price: $44.99
See more
Select your format and quantity:

(For more resources on Compiere 3, see here.)

Windows, Tabs, and Fields

Compiere generates all of its windows in a standard dynamic way by reference to the defined AD. This AD window thus relates to setting up the Windows, and the Tabs(sub-linked windows) and Fields that are displayed on those Windows. Illustrated here is an example of the Calendar and Period window that defines the structure of the periods within Compiere.

Compiere 3 Implementation Guide

Windows may be of the following Window Types:

  1. Maintain: Usually used in the context of master data, such as Business Partner or Products.
  2. Query Only: A window type that is used for displaying results in a grid, and is not editable.
  3. Transaction: A window type used for transaction processing , such as an order or an invoice.

The Window Tabs refer to the sub-linked windows of the main window header, or the preceding tab. In the example below, the Calendar window is built by defining the Calendar, applicable Year, Period and Period control, and Non Business Day.

Compiere 3 Implementation Guide

The window's Fields are populated from the Table and Columns associated with the window.

Compiere 3 Implementation Guide

Forms

Forms are windows that are not automatically generated through the AD but are static and are usually for custom purposes, based on specific Java code classes.Below is a Form that defines the File Import Loader process.

Compiere 3 Implementation Guide

Once a Form has been defined, it is linked to the Java classes through the Classname(Swing) and Java Classname for Web UI fields. These classes will contain the source code to build these custom Forms.

Info windows

These are windows that are used for quick searches and information views. Here, is the Info window for viewing invoices. It is defined through an SQL query on a table and then defining the columns within the Info Window.

Compiere 3 Implementation Guide

Report Views

Where database views may exist within the underlying database, the AD requires the Database views to be defined in the system in order to be accessible. Here, is an example of the Invoice database view for a week:

Compiere 3 Implementation Guide

To distinguish them from normal tables, Compiere uses the RV_ prefix convention to name a Report View within the underlying database.

Reports and processes

These are used to set up reports (link to a Report view) or a process that can link to a Java code class. Reports and processes may have parameters that define a selection process. Examples of a report would be an invoice enquiry, and an example of a process would be to generate invoices from orders.Here is the actual Report that defines the Invoices per week report.

Compiere 3 Implementation Guide

Reports may have access restrictions and selection parameters.

If a report is also displayed as a Dashboard (Compiere Enterprise version 3.5 onwards) then an underlying dashboard widget needs to be defined. An example of the Invoice Generate Process, that links to the underlying Java class:

Compiere 3 Implementation Guide

In windows, Buttons may be linked to processes (i.e. C_Invoice Copy From which copies lines from other invoices on the Invoice windows) and Processes need not all be manually run as such. Processes can be defined as server processes, and can also be scheduled through the Compiere scheduler.

Summary

Having seen the Compiere Application Dictionary and its components, in the next article we will cover Adding a custom field in Compiere.


Further resources on this subject:


Compiere 3 An essential and concise guide to understanding and implementing Compiere.
Published: June 2010
eBook Price: $26.99
Book Price: $44.99
See more
Select your format and quantity:

About the Author :


Andries L Pretorius

Andries L Pretorius, CA(SA) ACMA(UK), an accountant by training who understands programming, is founder of Astidian Systems a leading Compiere and professional open source applications development and consulting house, which is a pioneer in deploying Compiere within its market for more than the last seven years.

He has led many Compiere implementations as well as SAP R/3 and Great Plains (now MS Dynamics) implementations both from a consulting and business owner perspective. He has been the lead architect in many custom Compiere enhancements and has over 15 years of experience in ERP and CRM applications.

His experience includes CFO and COO of leading South African retail, wholesale, and distribution enterprises, financial manager at a telecoms provider in Singapore as well as being articled at Deloitte Johannesburg and New York offices.

You can reach him on his blog on www.astidian.com/blog.

Books From Packt


ADempiere 3.4 ERP Solutions
ADempiere 3.4 ERP Solutions

Microsoft Silverlight 4 Business Application Development: Beginner’s Guide
Microsoft Silverlight 4 Business Application Development: Beginner’s Guide

Mastering phpMyAdmin 3.1 for Effective MySQL Management
Mastering phpMyAdmin 3.1 for Effective MySQL Management

Application Development for IBM WebSphere Process Server 7 and Enterprise Service Bus 7
Application Development for IBM WebSphere Process Server 7 and Enterprise Service Bus 7

Microsoft Dynamics NAV 2009 Application Design
Microsoft Dynamics NAV 2009 Application Design

SAP Business ONE Implementation
SAP Business ONE Implementation

Oracle Database 11g – Underground Advice for Database Administrators
Oracle Database 11g – Underground Advice for Database Administrators

Maximize Your Investment: 10 Key Strategies for Effective Packaged Software Implementations
Maximize Your Investment: 10 Key Strategies for Effective Packaged Software Implementations


Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software