You are on page 1of 25

Apache OFBiz: Real-World Open

Source Java Platform ERP


–Ean Schuessler

–Open for Business Project, Apache Foundation


http://ofbiz.apache.org

TS-7900

2007 JavaOneSM Conference | Session XXXX |


Apache OFBiz
Manage your business with Free Software

A quick tour of OFBiz and its features so


that you can try it in your own business.

2007 JavaOneSM Conference | Session XXXX | 2


Agenda

What is OFBiz?
Getting started.
Using the software.
Technical overview.
Its about Community.

2007 JavaOneSM Conference | Session XXXX | 3


Agenda

What is OFBiz?
Getting started.
Using the software.
Technical overview.
Its about Community.

2007 JavaOneSM Conference | Session XXXX | 4


What is OFBiz?
● OFBiz provides turn-key software for managing
the operation of a business.
● OFBiz is also a library of pre-made processes
and data structures that can be used as a kit
for building customer business software without
starting from scratch.
● OFBiz is Free Software written for the Java VM.

2007 JavaOneSM Conference | Session XXXX | 5


OFBiz Features
● Advanced e-commerce (integrated catalog, smart
pricing, order and sales management)
● Warehouse management and fulfillment (auto stock
moves, batched pick, pack & ship)
● Manufacturing (manufacturing, events, tasks, etc.)
● Accounting (invoice, payment & billing accounts, fixed
assets)
● Customer relationship management (Sales force
automation)
● Content management (product content and reviews,
documents, blogging, forums, etc)

2007 JavaOneSM Conference | Session XXXX | 6


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
● Apache Top Level Project in December 2006
● Recent Years: extensive improvement and
refactoring and improvement of base enterprise
application.

2007 JavaOneSM Conference | Session XXXX | 7


Agenda

What is OFBiz?
Getting started.
Using the software.
Technical overview.
Its about Community.

2007 JavaOneSM Conference | Session XXXX | 8


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 ...

$ ./start-ofbiz.sh
... startup messages ...

● This will give a base install running on an


embedded Derby database and web services
listening on port 8080.

2007 JavaOneSM Conference | Session XXXX | 9


Agenda

What is OFBiz?
Getting started.
Using the software.
Technical overview.
Its about Community.

2007 JavaOneSM Conference | Session XXXX | 10


http://localhost:8080/ecommerce
OFBiz provides all the
functionality you expect in a
shopping cart.
Customers can ship orders to
multiple destinations in one
shopping session, create or
use gift cards.
Products and prices can be
configured to appear on
specific dates.
Many, many other features.

2007 JavaOneSM Conference | Session XXXX | 11


Configurable products

This sample product is a


configurable PC. The user can
specify a variety of options on
the product.
Configuration of the options
impacts the final sale price
based on the components
included.
Configurable products can
drive complex pricing schemes
that even include labor costs.
2007 JavaOneSM Conference | Session XXXX | 12
Demo

2007 JavaOneSM Conference | Session XXXX | 13


Agenda

What is OFBiz?
Getting started.
Using the software.
Technical overview.
Its about Community.

2007 JavaOneSM Conference | Session XXXX | 14


Technical Overview
● The Entity Engine
● OFBiz apps work with relational data.
● The Entity Engine interface is similar to JDBC result
sets but is more powerful.
● Entity Engine queries are database independent. The
application is completely portable.
● A caching infrastructure accelerates lookups. Caching
behavior can be tuned for each individual data
structure.

2007 JavaOneSM Conference | Session XXXX | 15


Entity Engine
OrderHeader OrderRole
orderId orderId
orderTypeId roleTypeId
orderDate partyId
entryDate etc...
statusId
etc...
In Java:

GenericValue order =
delegator.findByPrimaryKey(“OrderHeader”,
UtilMisc.toMap(“orderId”, myOrderId));

List billingCustomers =
order.getRelatedByAnd(“OrderRole”,
UtilMisc.toMap(“roleTypeId”, “SHIP_TO_CUSTOMER”));

2007 JavaOneSM Conference | Session XXXX | 16


Technical Overview
● The Service Engine
● All OFBiz functions are accessed through a single
library of named services, as opposed to classes.
● Services can be written in any BSF (Bean Scripting
Framework) language, even procedural languages.
● Services can be delegated to other machines via
SOAP or even message passing (ie. JMS).

2007 JavaOneSM Conference | Session XXXX | 17


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 XXXX | 18


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-field-
name="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 XXXX | 19


Agenda

What is OFBiz?
A quick start.
Technical overview.
Community is critical.

2007 JavaOneSM Conference | Session XXXX | 20


Agenda

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

2007 JavaOneSM Conference | Session XXXX | 21


Community is Critical
● Software is a unique way to share successful
business practices.
● Management through the Apache Foundation
ensures that there are not conflicting business
interests.
● Apache is a stable and proven organization that
businesses can safely trust in the long term.

2007 JavaOneSM Conference | Session XXXX | 22


Community is Critical
● Most programmers work for companies that do
not produce commercial software.
● If business programmers share common
infrastructures (ie. accounting) then more energy
can be devoted to writing code that improves their
specific business.
● By sharing code, small to medium size
businesses can afford the kinds of custom
software that is usually for large companies.

2007 JavaOneSM Conference | Session XXXX | 23


Q&A

2007 JavaOneSM Conference | Session XXXX | 24


For More Information

● http://ofbiz.apache.org
● ean@brainfood.com

2007 JavaOneSM Conference | Session XXXX | 25

You might also like