SlideShare a Scribd company logo
Introduction to
            Open Source ERP
           for Java Developers
     (Compiere, ADempiere and Openbravo)

Presented by:
Chuck Boecking from Trek Global
512.850.6068
Note: If you find this presentation helpful or if you have recommendations, please
reach out and let me know. Thanks!
Why a Java Developer Should Care
● Open Source ERP is approaching the tipping
  point of business acceptance.
● This tipping point gives the Java developers
  more freedom and flexibility when adopting
  platforms to solve wide-scale business
  problems.
● A single company-wide open source system
  gives developers more resources to drive
  and change business.
Interesting Points
● Compiere, ADempiere and OpenBravo are
  mature and stable solutions for managing
  goods and services in enterprises from
  $50M to $500M in gross revenue.
● Discussion topics will include architecture,
  application, performance tuning and war
  stories.
What is ERP?
ERP or Enterprise Resource Planning is a
single application that brings many common
organizational features into a single package.

Features include:
Accounting (GL, AP, AR)   Inventory Management       CRM (Customer Management


Receiving                 Purchasing (Order)         Fulfillment and Shipping
                          Management

Product Management        Sales (Order) Management   Manufacturing


Customer Management       Vendor Management          Service Management
Case Studies Worth Reading
Complex inspection and wholesale distribution
● 120 users across many countries and
  multiple financial entities
● Why notable: extensive customization

High volume wholesale and retail distribution
● 300 concurrent users shipping 10M units per
  month across 140K order lines
● Why notable: high volume
Technology Stack
● Java SE
● Tomcat and JBoss
● Model Driven Architecture - application
  dictionary
● zk WebUI and Java Swing
● PostgreSQL DB and Oracle DB
● 2Pack Release Management

Notable: supports end-to-end license-free
usage for companies with up to 500 concurrent
users.
ADempiere Statistics
● Just under 3000 classes w/o including auto-
  generated model classes
● About 800 tables
● Created in sf.net in 2006 as a fork from
  Compiere
● Historically one of sf.net's most active
  projects
Common Developer Entry Points
Developer hooks for implementing logic and
automation:
● Callout - based on user interactions with UI.
● Model - based on interaction with
  persistence layer.
● Processes - based on users deliberately
  pressing a button or invoking a menu action.

Other: Context - helps control visibility and
default values and is also accessible from code
almost anywhere.
Callout
package org.adempiere.callout;

import java.util.Properties;

import org.compiere.model.CalloutEngine;
import org.compiere.model.GridField;
import org.compiere.model.GridTab;
import org.compiere.util.AdempiereSystemError;
import org.compiere.util.Env;

public class SimpleCallout extends CalloutEngine {

public String test(Properties ctx, int windowNo, GridTab mTab, GridField mField,
Object value) throws AdempiereSystemError {

 // First get value
 Price = ((BigDecimal)mTab.getValue("Price"));

 // do some calculations
  BigDecimal Total = Qty.multiply(Price);

 // Set value back to column field
 mTab.setValue("Total", Total);

  return "this is a return string";
 }
}
Source: http://www.adempiere.com/Callout
Model
package adempiere.model;
import org.compiere.model.X_XX_Material;
public class MMaterial extends X_XX_Material {
        /** Create & Load existing Persistent Object */
        public MMaterial(Properties ctx, int XX_Material_ID, String trxName) {
               super(ctx, XX_Material_ID, trxName);
               // other initializations here
        }

       /** Create & Load existing Persistent Object.         */
       public MMaterial(Properties ctx, ResultSet rs, String trxName) {
              super(ctx, rs, trxName);
              // other initializations here
       }

       /** [OPTIONAL] Called before Save for Pre-Save Operation.           */
       protected boolean beforeSave(boolean newRecord)
       {
              return true;
       }
       /** ... afterSave(), getters, setters, convenience methods */
}


Example: http://www.adempiere.com/NewWindow
Process
package org.compiere.process;
public class TemplateProcess extends SvrProcess {
        private PO record;

      @Override
      protected void prepare() {
             for ( ProcessInfoParameter para : getParameter())
             { ...handle parameters...
             }
             // you can also retrieve the id of the current record for processes called from a window
             int recordId = getRecord_ID();
      }

      @Override
      protected String doIt() throws Exception {

             /* Commonly the doIt method firstly do some validations on the parameters
                and throws AdempiereUserException or AdempiereSystemException if errors found */

             return "A message to the user (indicating success - failures must throw Exceptions)";
      }

      /** Post process actions (outside trx). */
      @Override
      protected void postProcess(boolean success) {
              if (success) {} else { }
      }

}
http://www.adempiere.com/Process
Context
int currole_id = Env.getContextAsInt(ctx, "#AD_Role_ID");
2Pack Environment Migration
http://www.adempiere.com/2Pack
                                                                 Simple
                                                               Environment
                                                               Management
                                 Prod
 Complex
Environment                                                       Prod
Management
                     Stage 1            Stage 2

                                                                  Dev

              QA1                QA2              QA3




   Dev1               Dev2              Dev3            Dev4
Resources
Development introduction
http://www.adempiere.com/Development




End-to-end development example http://www.adempiere.
com/How_to_create_a_complete_new_module_in_ADempiere




Creating a customization environment
http://www.adempiere.com/Create_your_ADempiere_customization_environment
War Stories
Complex: CSI inspection

Volume: 10M units from worldwide distribution

eCommerce: 3 webstores => 1K shipments/day

Project Management: Time tracking
Chuck Boecking
●   Started with Compiere in 2003
●   Open Source ERP 70 to 90% since 2006
●   Professional educator and integrator
●   Wholesale distribution and assembly
    specialty

Chuck Boecking
512.850.6068
cboecking@trekglobal.com
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers
Open Source ERP Technologies for Java Developers

More Related Content

What's hot

Note assurance-fevrier-2016
Note assurance-fevrier-2016Note assurance-fevrier-2016
Note assurance-fevrier-2016
Groupe SFC, cabinet d'expertise comptable
 
(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive
Amazon Web Services
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS
Amazon Web Services
 
ClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release NotesClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release Notes
Aruba, a Hewlett Packard Enterprise company
 
Prometheus course
Prometheus coursePrometheus course
Prometheus course
Jorn Jambers
 
CRM [ODOO]
CRM [ODOO]CRM [ODOO]
CRM [ODOO]
KARIZMA CONSEIL
 
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Amazon Web Services
 
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
Amazon Web Services Korea
 
ISA-NORME ISO 9001 VERSION 2015.pptx
ISA-NORME ISO 9001 VERSION 2015.pptxISA-NORME ISO 9001 VERSION 2015.pptx
ISA-NORME ISO 9001 VERSION 2015.pptx
HamadiDiallo1
 
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deploymentsEMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
Aruba, a Hewlett Packard Enterprise company
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
LinuxCon ContainerCon CloudOpen China
 
Maarch RM @Documation 2016
Maarch RM @Documation 2016Maarch RM @Documation 2016
Maarch RM @Documation 2016
Cyril VAZQUEZ
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
NAVER D2
 
Intro to Knative
Intro to KnativeIntro to Knative
Intro to Knative
Christian Posta
 
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
BeeX.inc
 
Load Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXLoad Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINX
NGINX, Inc.
 
Cognitoハンズオン
CognitoハンズオンCognitoハンズオン
Cognitoハンズオン
Shinji Miyazato
 
EMEA Airheads - AP Discovery Logic and AP Deployment
EMEA Airheads - AP Discovery Logic and AP DeploymentEMEA Airheads - AP Discovery Logic and AP Deployment
EMEA Airheads - AP Discovery Logic and AP Deployment
Aruba, a Hewlett Packard Enterprise company
 
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
Amazon Web Services Korea
 
Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...
Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...
Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...
Amazon Web Services
 

What's hot (20)

Note assurance-fevrier-2016
Note assurance-fevrier-2016Note assurance-fevrier-2016
Note assurance-fevrier-2016
 
(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive(CMP402) Amazon EC2 Instances Deep Dive
(CMP402) Amazon EC2 Instances Deep Dive
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS
 
ClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release NotesClearPass 6.3.6 Release Notes
ClearPass 6.3.6 Release Notes
 
Prometheus course
Prometheus coursePrometheus course
Prometheus course
 
CRM [ODOO]
CRM [ODOO]CRM [ODOO]
CRM [ODOO]
 
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
 
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
보안 사고 예방을 위한 주요 AWS 모범 사례 – 신은수, AWS 보안 담당 솔루션즈 아키텍트:: AWS 온라인 이벤트 – 클라우드 보안 특집
 
ISA-NORME ISO 9001 VERSION 2015.pptx
ISA-NORME ISO 9001 VERSION 2015.pptxISA-NORME ISO 9001 VERSION 2015.pptx
ISA-NORME ISO 9001 VERSION 2015.pptx
 
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deploymentsEMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
EMEA Airheads- Instant AP- APP REF and Mixed IAP Cluster deployments
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Maarch RM @Documation 2016
Maarch RM @Documation 2016Maarch RM @Documation 2016
Maarch RM @Documation 2016
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Intro to Knative
Intro to KnativeIntro to Knative
Intro to Knative
 
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
 
Load Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXLoad Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINX
 
Cognitoハンズオン
CognitoハンズオンCognitoハンズオン
Cognitoハンズオン
 
EMEA Airheads - AP Discovery Logic and AP Deployment
EMEA Airheads - AP Discovery Logic and AP DeploymentEMEA Airheads - AP Discovery Logic and AP Deployment
EMEA Airheads - AP Discovery Logic and AP Deployment
 
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
 
Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...
Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...
Best Practices for CI/CD with AWS Lambda and Amazon API Gateway (SRV355-R1) -...
 

Viewers also liked

ERP System Development Plan
ERP System Development PlanERP System Development Plan
ERP System Development Plan
Sri Jayasinghe
 
ERP PROJECT
ERP PROJECTERP PROJECT
ERP PROJECT
Arun Kumar
 
Open Source Solution
Open Source SolutionOpen Source Solution
Open Source Solution
ittishait
 
Smart pos stepbystep-v2-0
Smart pos stepbystep-v2-0Smart pos stepbystep-v2-0
Smart pos stepbystep-v2-0
Rawntech Mak
 
Ad basic tech_workshop
Ad basic tech_workshopAd basic tech_workshop
Ad basic tech_workshop
manisherp084
 
Your Guide to be a Software Engineer
Your Guide to be a Software EngineerYour Guide to be a Software Engineer
Your Guide to be a Software Engineer
Ahmed Mater
 
Moneran Kingdom
Moneran KingdomMoneran Kingdom
Moneran Kingdom
iiiapdst
 
Group3
Group3Group3
Nyc 7 qualities_of_the_leader_as_coach_
Nyc 7 qualities_of_the_leader_as_coach_Nyc 7 qualities_of_the_leader_as_coach_
Nyc 7 qualities_of_the_leader_as_coach_
tomheck
 
Business Process Reengineering Presentation
Business Process Reengineering PresentationBusiness Process Reengineering Presentation
Business Process Reengineering Presentation
Hira Anwer Khan
 
Unit 06: The Web Application Extension for UML
Unit 06: The Web Application Extension for UMLUnit 06: The Web Application Extension for UML
Unit 06: The Web Application Extension for UML
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
Krefeld iDempiere 05/17/2013
Krefeld iDempiere 05/17/2013Krefeld iDempiere 05/17/2013
Krefeld iDempiere 05/17/2013
MULTIMAGE CONSULTANCY
 
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Paris Open Source Summit
 
Unit 05: Physical Architecture Design
Unit 05: Physical Architecture DesignUnit 05: Physical Architecture Design
Unit 05: Physical Architecture Design
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
3 Jsf
3 Jsf3 Jsf
Training & development dhanu
Training & development dhanuTraining & development dhanu
Training & development dhanu
Dhanu P G Naik
 
Unit 09: Web Application Testing
Unit 09: Web Application TestingUnit 09: Web Application Testing
Unit 09: Web Application Testing
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
Final Report Business Process Reengineering
Final Report Business Process ReengineeringFinal Report Business Process Reengineering
Final Report Business Process Reengineering
Hira Anwer Khan
 
1 Introduction
1 Introduction1 Introduction
Tips on how to improve the performance of your custom modules for high volume...
Tips on how to improve the performance of your custom modules for high volume...Tips on how to improve the performance of your custom modules for high volume...
Tips on how to improve the performance of your custom modules for high volume...
Odoo
 

Viewers also liked (20)

ERP System Development Plan
ERP System Development PlanERP System Development Plan
ERP System Development Plan
 
ERP PROJECT
ERP PROJECTERP PROJECT
ERP PROJECT
 
Open Source Solution
Open Source SolutionOpen Source Solution
Open Source Solution
 
Smart pos stepbystep-v2-0
Smart pos stepbystep-v2-0Smart pos stepbystep-v2-0
Smart pos stepbystep-v2-0
 
Ad basic tech_workshop
Ad basic tech_workshopAd basic tech_workshop
Ad basic tech_workshop
 
Your Guide to be a Software Engineer
Your Guide to be a Software EngineerYour Guide to be a Software Engineer
Your Guide to be a Software Engineer
 
Moneran Kingdom
Moneran KingdomMoneran Kingdom
Moneran Kingdom
 
Group3
Group3Group3
Group3
 
Nyc 7 qualities_of_the_leader_as_coach_
Nyc 7 qualities_of_the_leader_as_coach_Nyc 7 qualities_of_the_leader_as_coach_
Nyc 7 qualities_of_the_leader_as_coach_
 
Business Process Reengineering Presentation
Business Process Reengineering PresentationBusiness Process Reengineering Presentation
Business Process Reengineering Presentation
 
Unit 06: The Web Application Extension for UML
Unit 06: The Web Application Extension for UMLUnit 06: The Web Application Extension for UML
Unit 06: The Web Application Extension for UML
 
Krefeld iDempiere 05/17/2013
Krefeld iDempiere 05/17/2013Krefeld iDempiere 05/17/2013
Krefeld iDempiere 05/17/2013
 
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
 
Unit 05: Physical Architecture Design
Unit 05: Physical Architecture DesignUnit 05: Physical Architecture Design
Unit 05: Physical Architecture Design
 
3 Jsf
3 Jsf3 Jsf
3 Jsf
 
Training & development dhanu
Training & development dhanuTraining & development dhanu
Training & development dhanu
 
Unit 09: Web Application Testing
Unit 09: Web Application TestingUnit 09: Web Application Testing
Unit 09: Web Application Testing
 
Final Report Business Process Reengineering
Final Report Business Process ReengineeringFinal Report Business Process Reengineering
Final Report Business Process Reengineering
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
Tips on how to improve the performance of your custom modules for high volume...
Tips on how to improve the performance of your custom modules for high volume...Tips on how to improve the performance of your custom modules for high volume...
Tips on how to improve the performance of your custom modules for high volume...
 

Similar to Open Source ERP Technologies for Java Developers

Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019
Mike Villiger
 
Guide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in KotlinGuide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in Kotlin
RapidValue
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
Samuel Brown
 
Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)
Peter Bittner
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
CIVEL Benoit
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 
Simplifying RCP Update and Install
Simplifying RCP Update and InstallSimplifying RCP Update and Install
Simplifying RCP Update and Install
susanfmccourt
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
Pascal Rapicault
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecture
Piotr Pelczar
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
IndicThreads
 
Testing your application on Google App Engine
Testing your application on Google App EngineTesting your application on Google App Engine
Testing your application on Google App Engine
Inphina Technologies
 
Regain Control Thanks To Prometheus
Regain Control Thanks To PrometheusRegain Control Thanks To Prometheus
Regain Control Thanks To Prometheus
Etienne Coutaud
 
Hot sos em12c_metric_extensions
Hot sos em12c_metric_extensionsHot sos em12c_metric_extensions
Hot sos em12c_metric_extensions
Kellyn Pot'Vin-Gorman
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
Jérôme Kehrli
 
Idempotency of commands in distributed systems
Idempotency of commands in distributed systemsIdempotency of commands in distributed systems
Idempotency of commands in distributed systems
Max Małecki
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Java programming concept
Java programming conceptJava programming concept
Java programming concept
Sanjay Gunjal
 
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-NapocaCMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
Nuvole
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Andreas Grabner
 
Tdd,Ioc
Tdd,IocTdd,Ioc

Similar to Open Source ERP Technologies for Java Developers (20)

Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019
 
Guide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in KotlinGuide to Generate Extent Report in Kotlin
Guide to Generate Extent Report in Kotlin
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
 
Simplifying RCP Update and Install
Simplifying RCP Update and InstallSimplifying RCP Update and Install
Simplifying RCP Update and Install
 
What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecture
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
 
Testing your application on Google App Engine
Testing your application on Google App EngineTesting your application on Google App Engine
Testing your application on Google App Engine
 
Regain Control Thanks To Prometheus
Regain Control Thanks To PrometheusRegain Control Thanks To Prometheus
Regain Control Thanks To Prometheus
 
Hot sos em12c_metric_extensions
Hot sos em12c_metric_extensionsHot sos em12c_metric_extensions
Hot sos em12c_metric_extensions
 
DevOps explained
DevOps explainedDevOps explained
DevOps explained
 
Idempotency of commands in distributed systems
Idempotency of commands in distributed systemsIdempotency of commands in distributed systems
Idempotency of commands in distributed systems
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Java programming concept
Java programming conceptJava programming concept
Java programming concept
 
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-NapocaCMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
 
Tdd,Ioc
Tdd,IocTdd,Ioc
Tdd,Ioc
 

Recently uploaded

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 

Recently uploaded (20)

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 

Open Source ERP Technologies for Java Developers

  • 1. Introduction to Open Source ERP for Java Developers (Compiere, ADempiere and Openbravo) Presented by: Chuck Boecking from Trek Global 512.850.6068 Note: If you find this presentation helpful or if you have recommendations, please reach out and let me know. Thanks!
  • 2. Why a Java Developer Should Care ● Open Source ERP is approaching the tipping point of business acceptance. ● This tipping point gives the Java developers more freedom and flexibility when adopting platforms to solve wide-scale business problems. ● A single company-wide open source system gives developers more resources to drive and change business.
  • 3. Interesting Points ● Compiere, ADempiere and OpenBravo are mature and stable solutions for managing goods and services in enterprises from $50M to $500M in gross revenue. ● Discussion topics will include architecture, application, performance tuning and war stories.
  • 4. What is ERP? ERP or Enterprise Resource Planning is a single application that brings many common organizational features into a single package. Features include: Accounting (GL, AP, AR) Inventory Management CRM (Customer Management Receiving Purchasing (Order) Fulfillment and Shipping Management Product Management Sales (Order) Management Manufacturing Customer Management Vendor Management Service Management
  • 5. Case Studies Worth Reading Complex inspection and wholesale distribution ● 120 users across many countries and multiple financial entities ● Why notable: extensive customization High volume wholesale and retail distribution ● 300 concurrent users shipping 10M units per month across 140K order lines ● Why notable: high volume
  • 6. Technology Stack ● Java SE ● Tomcat and JBoss ● Model Driven Architecture - application dictionary ● zk WebUI and Java Swing ● PostgreSQL DB and Oracle DB ● 2Pack Release Management Notable: supports end-to-end license-free usage for companies with up to 500 concurrent users.
  • 7. ADempiere Statistics ● Just under 3000 classes w/o including auto- generated model classes ● About 800 tables ● Created in sf.net in 2006 as a fork from Compiere ● Historically one of sf.net's most active projects
  • 8.
  • 9. Common Developer Entry Points Developer hooks for implementing logic and automation: ● Callout - based on user interactions with UI. ● Model - based on interaction with persistence layer. ● Processes - based on users deliberately pressing a button or invoking a menu action. Other: Context - helps control visibility and default values and is also accessible from code almost anywhere.
  • 10. Callout package org.adempiere.callout; import java.util.Properties; import org.compiere.model.CalloutEngine; import org.compiere.model.GridField; import org.compiere.model.GridTab; import org.compiere.util.AdempiereSystemError; import org.compiere.util.Env; public class SimpleCallout extends CalloutEngine { public String test(Properties ctx, int windowNo, GridTab mTab, GridField mField, Object value) throws AdempiereSystemError { // First get value Price = ((BigDecimal)mTab.getValue("Price")); // do some calculations BigDecimal Total = Qty.multiply(Price); // Set value back to column field mTab.setValue("Total", Total); return "this is a return string"; } } Source: http://www.adempiere.com/Callout
  • 11. Model package adempiere.model; import org.compiere.model.X_XX_Material; public class MMaterial extends X_XX_Material { /** Create & Load existing Persistent Object */ public MMaterial(Properties ctx, int XX_Material_ID, String trxName) { super(ctx, XX_Material_ID, trxName); // other initializations here } /** Create & Load existing Persistent Object. */ public MMaterial(Properties ctx, ResultSet rs, String trxName) { super(ctx, rs, trxName); // other initializations here } /** [OPTIONAL] Called before Save for Pre-Save Operation. */ protected boolean beforeSave(boolean newRecord) { return true; } /** ... afterSave(), getters, setters, convenience methods */ } Example: http://www.adempiere.com/NewWindow
  • 12. Process package org.compiere.process; public class TemplateProcess extends SvrProcess { private PO record; @Override protected void prepare() { for ( ProcessInfoParameter para : getParameter()) { ...handle parameters... } // you can also retrieve the id of the current record for processes called from a window int recordId = getRecord_ID(); } @Override protected String doIt() throws Exception { /* Commonly the doIt method firstly do some validations on the parameters and throws AdempiereUserException or AdempiereSystemException if errors found */ return "A message to the user (indicating success - failures must throw Exceptions)"; } /** Post process actions (outside trx). */ @Override protected void postProcess(boolean success) { if (success) {} else { } } } http://www.adempiere.com/Process
  • 13. Context int currole_id = Env.getContextAsInt(ctx, "#AD_Role_ID");
  • 14. 2Pack Environment Migration http://www.adempiere.com/2Pack Simple Environment Management Prod Complex Environment Prod Management Stage 1 Stage 2 Dev QA1 QA2 QA3 Dev1 Dev2 Dev3 Dev4
  • 15. Resources Development introduction http://www.adempiere.com/Development End-to-end development example http://www.adempiere. com/How_to_create_a_complete_new_module_in_ADempiere Creating a customization environment http://www.adempiere.com/Create_your_ADempiere_customization_environment
  • 16. War Stories Complex: CSI inspection Volume: 10M units from worldwide distribution eCommerce: 3 webstores => 1K shipments/day Project Management: Time tracking
  • 17. Chuck Boecking ● Started with Compiere in 2003 ● Open Source ERP 70 to 90% since 2006 ● Professional educator and integrator ● Wholesale distribution and assembly specialty Chuck Boecking 512.850.6068 cboecking@trekglobal.com