Compiere ERP implementation
Compiere ERP implementation
Dec 1, 2015
You may think that evaluating an ERP and CRM software solution will be complex. Relax. The following ERP implementation principles are your roadmap to successful installation, customization and deployment of Compiere.
Get an Overview of Compiere ERP and CRM Software
This web site offers many resources for giving you a broad overview of Compiere capabilities, its model-driven platform and user experience. The following sections will enhance your product knowledge:
Capabilities – Details the business processes Compiere ERP and CRM automates
Platform – Describes the technical features and advantages of the Compiere ERP and CRM platform
Product Tours – Demonstrates Compiere ERP and CRM in action through a series of Adobe Flash movies.
Learn More about Compiere ERP and CRM Software
Compiere Documentation is available to purchase as a single copy or as an annual subscription. The documentation contains more than 900 pages and covers the range of Compiere features and customization techniques. A documentation subscription entitles you to a full year of documentation upgrades. Please contact us in order to purchase.
Training Classes provide an intensive study of Compiere functional capabilities and customization techniques.
Customize the Garden World Demo
Experience Compiere's flexibility for yourself by installing Compiere ERP and CRM software and working with the "Garden World" demo environment and data. The Garden World demo gives you experience with ERP implementation, navigating in the Compiere application, and working within the user interface. It also provides a simple environment to tryout customizations to Compiere. By customizing the Garden World demo, you'll learn that any decision made during Compiere ERP implementations can be changed later. This includes accounting periods, approval workflows, product and organizational hierarchies and more.
Compiere ERP Implementation for Your Business
Preparation If you have an established business, you may want to prepare your current chart of accounts, business partners and products for import into Compiere to begin your ERP implementation. Although you can import all these entities later, it saves time if you import your chart of accounts first.
Initial ERP Implementation Start the initial ERP implementation by logging in as "System Administrator" and by running the "Initial Client Setup" program. This program creates Users, Roles and "Standard" entities for Document Types, Business Partners, Products, and more. The program creates two users: the user with the 'Client level' role has all the rights to maintain the rules and to enter transactions. The user with the 'Organization level' role has all the rights to enter transactions. After running the Initial Client Setup, you may optionally log in as the Client level role to import your customer and vendor contact information (known in compiere as "Business partners") and product information. Once you've completed the Initial Client Setup, you may log in as the Organization-level role and print your first invoice.
Refining your Compiere ERP Implementations After completing an initial ERP implementation, you have everything to get started using default settings. Review the initial settings using the "Initial Client Setup Review" Workflow to begin the process of customizing your Compiere ERP implementation for your enterprise.
Chart of Account
Compiere ERP needs a set of accounts for system operations, even though some may never be posted to (example: if you don't have foreign currency transactions, accounts like realized gains will never be used). When creating a client, Compiere ERP needs to create a set of default accounts.
AccountingXX.xls / AccountingXX.csv
The file AccountingXX.xls is the basis for importing and maintaining your chart of accounts. The XX in the file name represent the country code - so the file AccountingUS.xls is a good basis for a US style chart of accounts.
Note that the file name is just a suggestion. An early version of the structure was the NaturalAccount.xls/csv file. The AccountingXX.xls/csv file structure is a super set.
The file is required with unmodified structure when you initially create a new Client (Initial Client Setup). In this phase, only the mandatory accounts are imported/created (indicated by having a value in the Account_Default - column H).
After the initial setup, you use it for importing your account hierarchy or reports. For that you can change the import format to adjust for your needs.
If you modify the file, you must export your .xls file to .csv (comma separated values) format as Compiere ERP only reads the .csv file. The resulting file should be in the "data/import" sub-directory of %COMPIERE_HOME%.
Account or Combination or Valid Combination = value of accounting segment combination; the segments are defined per accounting schema e.g.: 01-1600 - HQ-Accounts Payables (here Company and Natural Account)
Natural Account = The account segment - an element in your account structure; this is what you import in the AccountingXX file e.g.: 1600 - Accounts Payables
Chart Of Accounts (CoA) = List of Natural Accounts - this is what you provide with the Accounting*.xls/csv file
In the following, the columns of the spreadsheet are explained in more detail. Please note that the column names are for documentation purposes only and can be modified/translated.
A - Account_Value The mandatory key for your natural account - completely user defined - numeric or alpha-numeric up to 20 characters. Please note that every line HAS to be unique! B - Account_Name The mandatory name of the natural account - completely user defined - up to 60 characters. C - Account_Description The optional description of the natural account - completely user defined - up to 255 characters.
D - Account_Type The mandatory Account Type (e.g. Asset - Liability - Owner's Equity - Expense - Revenue - Memo). Please note that the first letter has to be A, L, O, E, R or M. So, if you translate it, the first letter MUST be one of the above. Example: "L - Verbindlichkeiten" as Verbindlichkeiten is the German translation of Liabilities.
E - Account_Sign The optional Account Sign Flag (currently not implemented - planned to be used in financial reports). The options are Natural (default), Debit, Credit. Please note that the first letter has to be N, D, C or Empty. So, if you translate it, the first letter MUST be one of the above. Example: "D - Soll" as Soll is the German translation of Debit.
F - Account_Document The optional Account Document Flag (i.e. this account can only be posted by the sub-ledger - no manual journal entry - this is recommended for easier reconciliation of accounts). Please note that the first letter has to be Y, N or Empty. So, if you translate it, the first letter MUST be one of the above. Example: "Y - Ja" as Ja is the German translation of Yes.
G - Account_Summary The mandatory Summary Account Flag (i.e. you cannot post to summary accounts, they are used for reporting only). Please note that the first letter has to be Y, N or Empty. So, if you translate it, the first letter MUST be one of the above. Example: "Y - Ja" as Ja is the German translation of Yes.
H - Account_Default The optional default Account Assignment; This is the column name of the default assignment for the account - this is the natural account for this account combination for default accounts. As this is an actual column name DO NOT MODIFY the content. You need to have a separate line for all default accounts and you need to have all default accounts listed. Example: B_INTRANSIT_ACCT indicates that this account is the default bank In-Transit account. You may not use the feature or want to have a different In-Transit account for every bank - you still need one (and only one) line in the file with this value.
I - Account_Parent The optional parent account value (column A). It needs to be an exact match. It is used to build the account hierarchy when you import your chart of accounts. Note that this column is ignored during the Initial Client Setup.
J/K - Balance_Sheet, Balance_Sheet_Name Optional Balance Sheet Line Value/Key and Name. Used for creating Financial Reporting Line Sets. The import format is pre-defined.
L/M - US 1120 Balance_Sheet, US 1120 Balance_Sheet_Name Optional secondary Balance Sheet Line Value/Key and Name. Used for creating Financial Reporting Line Sets. The import format is pre-defined. In this case, it is based on Form 1120 of the US tax code, which is different than the standard US Balance Sheet structure.
N/O - Profit & Loss, Profit & Loss_Name Optional Profit & Loss Statement Line Value/Key and Name. Used for creating Financial Reporting Line Sets. The import format is pre-defined.
P/Q - US 1120 Income Statement, US 1120 Income Statement_Name Optional secondary Profit & Loss Statement Sheet Line Value/Key and Name. Used for creating Financial Reporting Line Sets. The import format is pre-defined. In this case, it is based on Form 1120 of the US tax code, which is different than the standard US Profit & Loss Statement structure.
R/S - Cash Flow, Cash Flow_Name Optional Cash Flow Statement Line Value/Key and Name. Used for creating Financial Reporting Line Sets. The import format is pre-defined.
Creating your own Chart of Accounts
Compiere needs a minimum set of accounts. These accounts are identified by the internal column name in the "Default Account" column - example: B_ASSET_ACCT
You need to have a different account for each of the default accounts. For example, if you don't want/need to differentiate between currency gain and currency loss, Compiere ERP still requires two accounts. You can consolidate the accounts, e.g. via GL Journal entries.
You can change, add or delete the lines as long as you have one line per default account.
If you don't like the example account structure (CoA), here are the steps:
Delete all lines with exception of the ones, which have Default Accounts.
Change the lines (value/key, name, description) to fit your Chart of Accounts
Add the other accounts in your Chart of Accounts.
Learn how to install an existing Compiere Language Pack or even create your own. A Language Pack is a collection of XML files containing the translations for a given language. Many of our Language Packs are available through the Compiere Exchange .
Note: Language Packs are version independent. If you apply an older language pack to a newer release of Compiere some of the newer items may remain untranslated.
Installing a Language Pack
Prepare for Installation Log in to Compiere with the System Administrator Role. In the "Language" Window search for your language then enable "System Language" and start Language Maintenance. Select "Add missing Translations". This copies the English words into the translation areas.
Import the Translation The Language Pack distribution is usually a zip file. Extract it to any directory - the default directory is COMPIERE_HOME/data (e.g.: C:\Compiere2\data) , but it can be anywhere. The files have the format of <table name>_Trl_<language>.xml. Note that the language should be the same as activated in the preparation step (fr_FR is not the same as fr_CA). Example file name: AD_Element_Trl_fr_FR.xml
Log into Compiere with the System Administrator Role. In the "Translation Import/Export" Window leave the "Tenant" and "Table" selections empty and select your language. Click on "Import" and select the directory where the XML files reside. The translation is now applied to your system.
Language Pack Terminology Responsibility Please note that we as the Compiere team only provide the translation technology. If you are not happy with the terminology, please contact the vendor/creator of the Language Pack directly.
Creating a new Language Pack
Preparation Compiere's base language is US English (en_US). The naming conventions are based Java locale identifiers. The "language" English UK uses the base English language, but uses the UK date format dd/MM/yy. The example used here is Français in France (fr_FR).
With the System Administrator role start the Workflow "Language Setup" or start the "Language" Window and add the new language as a System Language (example: Language=fr_FR, Name=Français).
Start the "Verify Translation" process in the "Language" Window to create entries for the new language. Missing translations are copied from the base language (en_US). Code Modification As the next step, you need to modify the class org.compiere.util.Language. This is required since when you first start the client the database and available languages are unknown.
Locate the Languages static array and add the line: new Language ("Français", "fr_FR", Locale.FRANCE, null, null); If you set the last two parameters to null, the default for the decimal point and date format are derived from the locale. If the Java Runtime system does not have a predefined locale (LocaleFRANCE in the example), you need to define the two parameters.
In the "tenant", "dbPort" and "install" modules - copy and translate the files:
org.compiere.apps.ALoginRes.java ==> ALoginRes_fr.java (login screen)
org.compiere.db.DBRes.java ==> DBRes_fr.java (connection screen)
org.compiere.install.SetupRes ==> SetupRes_fr.java (server setup)
org.compiere.plaf.PlafRes.java ==> PlafRes_fr.java (user interface option screen)
org.compiere.util.IniRes.java ==> IniRes_fr.java (license dialog)
These screens are displayed before connecting to the database to get the translation.
Recompile the "tenant", "dbPort" and "install" projects. If your language is not using the Latin-1 character set, you need to explicitly convert your local character set to ASCII; Examples for Cyrillic and Thai: native2ascii -encoding Cp1251 ALoginRes_bg.local ALoginRes_bg.java native2ascii -encoding MS874 ALoginRes_th.local ALoginRes_th.java For details see the documentation for Java internationalization and native2ascii.
Database Translation Start the Compiere application. In Preferences (e.g. in the "Menu" window via File > Preferences) select "Show Translation".
In the System Administrator Role in the "Language" Window, add your language as System Language and select "Verify Languages".
Follow the Workflow "Language Setup" to translate the different elements. Please note that if you translate a term in the "Element" Window, all Fields and Parameters are translated as well, if they are centrally maintained. After translating the "Window," "Process," "Tasks" and "Workflow" Windows, run the process "Synchronize Terminology" to indirectly translate the Menu.
Suggested translation sequence of main components (follow "Translation" Workflow):
File Translation As an alternative to a translation in the database, you can export the translation into an XML file and then translate it with professional translation tools (translation tools allow tag protection, so that you only modify the translation).
Procedure To export the files, run RUN_TrlExport in the "utils" directory. The file exports the German (de_DE) translation in the standard directory data/de_DE. Just modify the AD_LANGUAGE variable. Only records not centrally maintained are exported. If the language and translation does not exist in the database, it is created.
To import the translated files, execute RUN_TrlImport (after changing the AD_LANGUAGE variable). If the language and translation does not exist in the database, it is created.
As an alternative to this Batch procedure, you can start the "Translation Import/Export" Window in the System Administrator role.
Translation is an ongoing project as new or changed elements need to be translated. Consequently, you ideally need to be able to automatically translate the material. There are translation tools available from IBM or Trados, which decrease the effort tremendously and also ensure consistent translation.
Your general procedure looks like this:
Create your Glossary - here you define the terminology and their translation, e.g. "Account = Konto". The more time you spend here, the better your translation quality. There are tools to extract the terminology and the AD_Element is the ideal basis for this.
Translate the files - based on the suggested initial (raw) automatic translation. While you are translating, it builds your "translation memory", so that the same and similar phrases are translated automatically.
Updates are now easy - you run the new/changed file against your translation memory and you are only prompted for new constructs.
Create a zip file with your translations and the modified RUN_TrlImport for your language. You can add the translations in CVS and publicly share it, or sell it to recover the cost of your translation effort.