| //// |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| //// |
| = Apache OFBiz User Manual |
| The Apache OFBiz Project |
| :doctype: book |
| :imagesdir: ./images |
| ifdef::backend-pdf[] |
| :title-logo-image: image::OFBiz-Logo.svg[Apache OFBiz Logo, pdfwidth=4.25in, align=center] |
| :source-highlighter: rouge |
| endif::[] |
| |
| image::https://img.shields.io/badge/License-Apache%202.0-blue.svg[link="http://www.apache.org/licenses/LICENSE-2.0"] |
| |
| == Introduction to OFBiz |
| |
| Welcome to _Apache OFBiz_! A powerful top level Apache software project. |
| OFBiz is an Enterprise Resource Planning (ERP) System written in Java and |
| houses a large set of libraries, entities, services and features to run |
| all aspects of your business. |
| |
| This manual will describe all aspects of this powerful ERP system. The manual |
| starts with the basics of what OFBiz is and how it works, and describes high |
| level concepts like the entity engine, service engine, widget system and so on. |
| In addition the manual explains the core application of this framework like the |
| Party Manager, Order Manager, Accounting system, and others. |
| |
| If you wish to contribute to OFBiz and help make it better, you may wish to read |
| the "Apache OFBiz Developer Manual" for a deeper understanding of the |
| architectural concepts of the framework. |
| |
| === What is Apache OFBiz |
| |
| It is hard to define OFBiz because it offers many different solutions targeted |
| at different levels of interests (users, developers, business owners). At a low |
| level it may considered a web framework, at another level, it may |
| considered a full fledged ERP system, and yet it can also be considered a |
| business automation suite. |
| |
| === The main parts of Apache OFBiz |
| |
| Perhaps to better understand what OFBiz is, it may be necessary to understand |
| its main parts and the purpose that each part plays. Thus the main parts or |
| sub-systems are summarized below. |
| |
| ==== Web MVC Framework |
| |
| The lowest or most foundational part of Apache OFBiz is a classical web MVC |
| (Model View Controller) framework. This part of the system is designed for basic |
| routing of web requests and may be considered as the infrastructure or plumbing |
| where everything is wired together. |
| |
| ==== Entity Engine |
| |
| The entity engine allows OFBiz users to define entities, data, and queries in a |
| database-independent domain specific language (DSL) based on XML. Thus, without |
| learning any SQL users can create and interact with databases in a |
| platform-independent manner and Apache OFBiz would make the translations under |
| the hood to each database system. |
| |
| ==== Service Engine |
| |
| Apache OFBiz is designed specifically around a Service Oriented Architecture |
| (SOA). Services are units of business logic that take a set of input values and |
| produces a set of output values. |
| |
| Services are programming-language-independent. It does not matter whether a |
| service is implemented using Java, Groovy, Jython, or something else because |
| services are an abstraction away from the underlying technology. This provides |
| maximum flexibility for designing business logic without worrying about |
| interoperability between different languages. |
| |
| ==== Widget System |
| |
| Whether the output is HTML, CSV, PDF, or something else, Apache OFBiz provides a |
| system for creating user interface that is independent of the actual |
| implementation. This makes it possible to publish the same widget to HTML, PDF, |
| CSV or some other output format. |
| |
| However, the widget system allows users, if needed, to drop down to any |
| platform-specific code and mix it with widget designs, thus providing a mix |
| between ease of use, platform independence and customizability. |
| |
| ==== Data Model Library |
| |
| Apache OFBiz is heavily inspired by a book called the "The Data Model Resource |
| Book". This book provides a "A Library of Universal Data Models for All |
| Enterprises". These models cover things like parties, orders, invoices, |
| payments, general ledgers, quotes and much more. |
| |
| By using OFBiz, adopters start with a full pre-designed data model that covers |
| common and universal business requirements. Hundreds of entities are defined |
| which save many hours of thinking, designing, and testing such models. |
| |
| It is important to note that the data model library does not only cover |
| entities, but also the data that comes with these entities. Data is further |
| categorized by function (seed, demo, etc ...) |
| |
| ==== Service Library |
| |
| Having a rich and powerful data model is not very useful on its own without |
| services that apply business logic on this data model. That is where the |
| services defined in Apache OFBiz come into play. |
| |
| OFBiz provides, out-of-the-box, thousands of services to create, retrieve, |
| update, delete, search, and do many other operations on the data model. |
| |
| ==== Core Applications |
| |
| The <<CORE_APPLICATION_COMPONENTS,core applications>> in Apache OFBiz are web applications that serve common |
| business needs found in most enterprises such as accounting, order management, |
| party management and so on. |
| |
| These core applications are built on top of the data model and service library |
| earlier described. The <<CORE_APPLICATION_COMPONENTS,core applications>> are further described in the relevant |
| section. |
| |
| ==== Plugins |
| |
| OFBiz extends any basic functionality through plugins. Plugins are very similar |
| to the core applications in design and structure, but are not shipped with |
| OFBiz by default. Thus to install a plugin a user must add it to the framework |
| first. |
| |
| include::docs/asciidoc/_include/OFBizDocumentationSystem.adoc[leveloffset=+2] |
| |
| include::README.adoc[tags=quickstart] |
| |
| include::applications/commonext/src/docs/asciidoc/ofbiz-setup.adoc[leveloffset=+1] |
| |
| = Core Business Applications |
| |
| Most businesses share universal needs. They require accounting functionality, |
| managing customers, placing orders, book-keeping, invoicing and so on. |
| |
| OFBiz is designed so that such basic universal business needs are available |
| through a set of core business applications. These applications all share a |
| unified data-model with a set of unified services to implement this |
| functionality. |
| |
| This section of the manual will describe each core business application |
| starting with a high level overview of design and purpose down to the details |
| of how to achieve common tasks. |
| |
| include::applications/party/src/docs/asciidoc/party.adoc[leveloffset=+1] |
| |
| include::applications/product/src/docs/asciidoc/product.adoc[leveloffset=+1] |
| |
| include::applications/product/src/docs/asciidoc/facility.adoc[leveloffset=+1] |
| |
| include::applications/order/src/docs/asciidoc/order.adoc[leveloffset=+1] |
| |
| include::applications/accounting/src/docs/asciidoc/accounting.adoc[leveloffset=+1] |
| |
| include::applications/content/src/docs/asciidoc/content.adoc[leveloffset=+1] |
| |
| include::applications/manufacturing/src/docs/asciidoc/manufacturing.adoc[leveloffset=+1] |
| |
| include::applications/marketing/src/docs/asciidoc/sfa.adoc[leveloffset=+1] |
| |
| include::applications/humanres/src/docs/asciidoc/humanres.adoc[leveloffset=+1] |
| |
| include::applications/marketing/src/docs/asciidoc/marketing.adoc[leveloffset=+1] |
| |
| //// |
| webtools help should be remove when global glossary exist, and contain a link to developer-manual#webtools |
| //// |
| === Web tools |
| The Webtools application is the UI-gateway to all the framework functions. |
| |
| include::framework/webtools/src/docs/asciidoc/_include/webtools-main.adoc[leveloffset=+3] |
| // Plugins Business Applications |
| |
| include::plugins/docs/asciidoc/plugins-user-manual.adoc[leveloffset=+0] |
| |
| include::docs/asciidoc/_include/ofbiz-glossary.adoc[leveloffset=+1] |