Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (2 votes)
182 views

Apache OFBiz Real World Open Source Java Platform ERP

OFBiz is a general purpose framework for building software that controls common business processes. It is based on a survey of industry data modeling practices and provides more than 700 data classes representing common business structures. Ofbiz is available as a free download from the Open Source project's github page.

Uploaded by

Akash Gandhare
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
182 views

Apache OFBiz Real World Open Source Java Platform ERP

OFBiz is a general purpose framework for building software that controls common business processes. It is based on a survey of industry data modeling practices and provides more than 700 data classes representing common business structures. Ofbiz is available as a free download from the Open Source project's github page.

Uploaded by

Akash Gandhare
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Apache OFBiz: Real-World Open Source Java Platform ERP

Supreme JUG Commander Juggy the Java Finch General David Jones Admiral Ean Schuessler Open for Business Project, Apache Foundation http://ofbiz.apache.org
TS-7900
2007 JavaOneSM Conference | Session TS-7900 |

Apache OFBiz

Free Software Enterprise Business Logic for Java Technology

A demonstration on setting up, followed by a brief tour of the platform and its features; the intention being that you may return home and experiment with OFBiz out in your own business

2007 JavaOneSM Conference | Session TS-7900 |

Agenda
What is OFBiz? A quick start Technical overview Customized applications Community is critical

2007 JavaOneSM Conference | Session TS-7900 |

Agenda
What is OFBiz? A quick start Technical overview Customized applications Community is critical

2007 JavaOneSM Conference | Session TS-7900 |

What Is OFBiz?

OFBiz is a general purpose framework for building software that controls common business processes Unlike many systems which provide abstract software structures, OFBiz attempts to supply a set of data structures and software libraries for managing more concrete business elements such as orders, employees, contracts, and manufacturing processes

2007 JavaOneSM Conference | Session TS-7900 |

OFBiz Features

Advanced e-commerce (integrated catalog, pricing, order and sales management) Customer relationship management Warehouse management and fulfillment (auto stock moves, batched pick, pack and ship) Accounting (invoice, payment and billing accounts, fixed assets) Work efforts (manufacturing, events, tasks, etc.) Content management (product content, web sites, documents, blogging, forums, etc)

2007 JavaOneSM Conference | Session TS-7900 |

What Is OFBiz?

Save effort by customizing existing business logic rather than reinventing the application from low level storage and messaging primitives The OFBiz data schema is based on Len Silverstons comprehensive survey of industry data modeling practices OFBiz provides more than 700 data classes representing common business structures

2007 JavaOneSM Conference | Session TS-7900 |

A Short History of OFBiz


Conceived May 13th, 2001 First 6 Months: identified universal data model and basic platform objectives Next 3 Years: community building, iterative development and refinement of framework Last 2.5 Years: extensive refactoring and improvement of base enterprise application artifacts Apache Top Level Project in December, 2006
2007 JavaOneSM Conference | Session TS-7900 | 8

Agenda
What is OFBiz? A quick start Technical overview Customized applications Community is critical

2007 JavaOneSM Conference | Session TS-7900 |

A Quick Start

Pull down the latest from SVN, build and run

$ svn co http://svn.apache.org/repos/asf/ofbiz/trunk ofbiz ... checkout messages ... $ ./ant run-install ... build messages ... $ java -jar ofbiz.jar ... startup messages ...

This will give a base install running on an embedded Derby database and web services listening on port 8080 and 8443
2007 JavaOneSM Conference | Session TS-7900 | 10

http://localhost:8080/ecommerce
OFBiz provides webbased ecommerce with pricing rules, customer reviews and ratings, promotional codes that track sell through and configurable products that can drive manufacturing processes.

2007 JavaOneSM Conference | Session TS-7900 |

11

Configurable Products
For instance, this sample configurable PC allows the user to specify a variety of options on the product. The configuration of the options impacts the final ticket price. The sub-assemblies of a product can drive sophisticated Bill Of Materials decisions in the OFBiz manufacturing application.
2007 JavaOneSM Conference | Session TS-7900 | 12

http://localhost:8080/manufacturing
Purchasing a configurable PC generates a series of manufacturing tasks that must be executed to complete the order.
z

2007 JavaOneSM Conference | Session TS-7900 |

13

Agenda
What is OFBiz? A quick start Technical overview Customized applications Community is critical

2007 JavaOneSM Conference | Session TS-7900 |

14

Technical Overview

The Entity Engine


OFBiz apps work with relational stores directly Entity Engine provides a ResultSet on steroids interface to relational data called a GenericEntity Schemas and queries are database agnostic A caching infrastructure is provided to accelerate common lookups. Cache sizes can be adjusted on an Entity by Entity basis

2007 JavaOneSM Conference | Session TS-7900 |

15

Entity Engine
GenericValue order = delegator.findByPrimaryKey( OrderHeader, UtilMisc.toMap( orderId, myOrderId)); List shippingCustomers = order.getRelatedByAnd(OrderRole, UtilMisc.toMap( roleTypeId, SHIP_TO_CUSTOMER));
OrderHeader orderId orderTypeId orderDate entryDate statusId etc... OrderRole orderId roleTypeId partyId etc...

2007 JavaOneSM Conference | Session TS-7900 |

16

Entity Engine
GenericValue order = delegator.findByPrimaryKey( OrderHeader, UtilMisc.toMap( orderId, myOrderId)); List shippingCustomers = order.getRelatedByAnd(OrderRole, UtilMisc.toMap( roleTypeId, SHIP_TO_CUSTOMER));
OrderHeader orderId orderTypeId orderDate entryDate statusId etc... OrderRole orderId roleTypeId partyId etc...

2007 JavaOneSM Conference | Session TS-7900 |

17

Technical Overview

The Service Engine

Services are exposed as stateless units of functionality with named parameters and can be called synchronous, asynchronous or scheduled Services can be implemented in a variety of languages; The calling interface shields any calling code from the implementation details Services can be delegated to remote machines via SOAP, XML-RPC and other messaging services; OFBiz services can also be externally exposed via the same protocols

2007 JavaOneSM Conference | Session TS-7900 |

18

Service Engine: An Example Service


<service name="quickShipEntireOrder" engine="simple" auth="true" location="org/ofbiz/shipment/shipment/ShipmentServices.xml" invoke="quickShipEntireOrder"> <description>Quick Ships An Entire Order Creating One Shipment Per Facility and Ship Group. All approved order items are automatically issued in full and put into one package. The shipment is created in the INPUT status and then updated to PACKED and SHIPPED. </description> <attribute name="orderId" type="String" mode="IN" optional="false"/> <attribute name="originFacilityId" type="String" mode="IN" optional="true"/> <attribute name="setPackedOnly" type="String" mode="IN" optional="true"/> <attribute name="shipmentShipGroupFacilityList" type="List" mode="OUT" optional="false"/> </service>

2007 JavaOneSM Conference | Session TS-7900 |

19

Service Entity Condition Actions

Service entity condition actions allow AOP-like triggering of other orthogonal services when some system service is called

<!-- if new statusId of a SALES_SHIPMENT is SHIPMENT_PACKED, create invoice --> <eca service="updateShipment" event="commit"> <condition-field field-name="statusId" operator="not-equals" to-fieldname="oldStatusId"/> <condition field-name="statusId" operator="equals" value="SHIPMENT_PACKED"/> <condition field-name="shipmentTypeId" operator="equals" value="SALES_SHIPMENT"/> <action service="createInvoicesFromShipment" mode="sync"/> </eca>

2007 JavaOneSM Conference | Session TS-7900 |

20

Service Engine: MiniLang


<simple-method method-name="quickShipEntireOrder"> <entity-one entity-name="OrderHeader" value-name="orderHeader"/> <iterate list-name="orderItemShipGroupList" entryname="orderItemShipGroup"> <set value="SHIPMENT_INPUT" field="shipmentContext.statusId"/> <call-service service-name="createShipment" in-mapname="shipmentContext"/> <iterate list-name="perShipGroupItemList" entry-name="..."> <call-service service-name="issueOrderItemShipGrpInvResToShipment" inmap-name="issueContext"/> </iterate> <iterate list-name="itemIssuances" entry-name="itemIssuance"> <call-service service-name="addShipmentContentToPackage" in-mapname="shipItemContext"/> </iterate> <set value="SHIPMENT_PACKED" field="packedContext.statusId"/> <call-service service-name="updateShipment" in-map-name="packedContext"/> <set value="SHIPMENT_SHIPPED" field="packedContext.statusId"/> <call-service service-name="updateShipment" in-map-name="packedContext"/> </iterate> </simple-method>

2007 JavaOneSM Conference | Session TS-7900 |

21

Agenda
What is OFBiz? A quick start Technical overview Customized applications Community is critical

2007 JavaOneSM Conference | Session TS-7900 |

22

Customized Applications

The vocabulary of business entities in the OFBiz framework can be used to implement business processes other than its default e-commerce application Common business objects such as parties (individuals, groups and companies), physical assets (tools, buildings) and more are available in the baseline toolkit Building on these primitives can provide a big boost once you are familiar with them
2007 JavaOneSM Conference | Session TS-7900 | 23

Customized Applications

Automated legal contract management

2007 JavaOneSM Conference | Session TS-7900 |

24

Customized Applications

Automated legal contract management

2007 JavaOneSM Conference | Session TS-7900 |

25

Customized Applications

Automated legal contract management

The web framework is flexible enough that you can build applications with very different lookand-feel that leverage the large selection For this legal contract management application, no new data classes were required; All of the business elements mapped cleanly to existing OFBiz primitives The OFBiz web framework is an area where a lot of innovation is being incorporated

2007 JavaOneSM Conference | Session TS-7900 |

26

Customized Applications
Customer Agreement
FixedAsset Assignment workEffortId fromDate thruDate fixedAssetId etc...

Automated legal contract management


Market

Party orderId orderTypeId orderDate entryDate statusId etc...

WorkEffort workEffortId roleTypeId partyId etc...

FixedAsset fixedAssetId fixedAssetType dateAcquired endOfLife etc...

2007 JavaOneSM Conference | Session TS-7900 |

27

Demo

2007 JavaOneSM Conference | Session TS-7900 |

28

Agenda
What is OFBiz? A quick start Technical overview Customized applications Community is critical

2007 JavaOneSM Conference | Session TS-7900 |

29

Community Is Critical

Software implementation is a unique way to share business practices and verify execution An open organization that is not a for-profit company helps insure that the platform is not dominated by one particular commercial interest The Apache Foundation is a reliable organization for businesses to invest effort in; Many organizations probably already use Apache software

2007 JavaOneSM Conference | Session TS-7900 |

30

Community Is Critical

Most business programmers work for organizations that are not primarily in the software business Customizing business logic is more common than customizing low level code like operating systems or webservers If sharing code for low level system services can succeed then sharing high level business logic should be an even larger win We just have to work together
2007 JavaOneSM Conference | Session TS-7900 | 31

Q&A

2007 JavaOneSM Conference | Session TS-7900 |

32

For More Information


http://ofbiz.apache.org The Data Model Resource Book http://www.universaldatamodels.com

2007 JavaOneSM Conference | Session TS-7900 |

33

Apache OFBiz: Real-World Open Source Java Platform ERP


Supreme JUG Commander Juggy the Java Finch General David Jones Admiral Ean Schuessler Open for Business Project, Apache Foundation http://ofbiz.apache.org
TS-7900
2007 JavaOneSM Conference | Session TS-7900 |

You might also like