frePPLev2.0
open source Production PLanning
  • Home
  • Documentation
    • Getting started
    • Modeling guide
    • User guide
    • Installation guide
    • Developer guide
    • FAQ
  • C++ API

Modeling guide

This chapter describe the frePPLe data entities, their fields and relationships.

A couple of initial remarks:

  • FrePPLe limits itself to the data fields that are relevant for planning.
    An ERP or similar system is more transaction-oriented and will contain plenty of more detailed information.

  • The frePPLe data model is designed to be pretty “atomic” in order to be as generic as possible. Quite often an entity in a source system will map into a collection or sequence of frePPLe entities.
    For instance, frePPLe doesn’t have a model to represent a bill-of-material. Instead the material relations from the BOM are represented as flows on the manufacturing operations.

  • The native data format is XML.
    FrePPLe doesn’t support namespaces in the XML-data:

    • The XML-data should not be placed in any namespace.
    • FrePPLe XML schema to validate the input data. See the files frepple.xsd and frepple_core.xsd for the definition of the supported constructs.
    • To support subclassing the namespace xsi must be defined as “http://www.w3.org/2001/XMLSchema-instance“.

    Considering the above, frePPLe XML files typically start with the following lines:

      <?xml version="1.0" encoding="UTF-8"?>
      <plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      ...
      </plan>
  • FrePPLe has a very rich Python API.
    Detailed programming and scripting of the frePPLe application is possible in this way. For complex integration tasks and for customization of the algorithms using Python is the recommended way of working.

  • FrePPLe translates input data to the native encoding on your system (as set by the LC_ALL environment variable on Linux, or the code page on Windows).
    The string manipulations inside frePPLe are compatible with the UTF-8 Unicode encoding, but NOT with the UTF-16 or UTF-32 encoding.

Before diving into the details, have a look at the domain model diagrams. They show clear and simple the main entities and their relationships.

  • Simplified domain model
  • Detailed domain model
  • Environment variables
  • Python interpreter
  • Global parameters
  • Buffer
  • Calendar
  • Customer
  • Demand
  • Flow
  • Item
  • Load
  • Location
  • Operation
  • Suboperation
  • Operationplan
  • Problem
  • Resource
  • SetupMatrix
  • Skill
  • Resource skill
  • Solver
  • Extension modules
    • Forecast module
    • REST web service module
    • Linear programming solver module
    • OpenERP connector module
    • Getting started
    • Modeling guide
      • Simplified domain model
      • Detailed domain model
      • Environment variables
      • Python interpreter
      • Global parameters
      • Buffer
      • Calendar
      • Customer
      • Demand
      • Flow
      • Item
      • Load
      • Location
      • Operation
      • Suboperation
      • Operationplan
      • Problem
      • Resource
      • SetupMatrix
      • Skill
      • Resource skill
      • Solver
      • Extension modules
        • Forecast module
        • REST web service module
        • Linear programming solver module
        • OpenERP connector module
    • User guide
      • Main features
      • Supported browsers
      • Getting around
        • Logging in
        • Logging out
        • Changing password
        • Navigation
          • Menu bar
          • Jump search
          • Context menus
          • Browser bookmarks
        • Filtering data
        • Sorting data
        • Selecting time buckets
        • Exporting data
        • Importing data
        • User preferences
        • User permissions and roles
      • Screens
        • Data input
        • Supply Path / Where Used
        • Comments
        • History – Audit trail
        • Plan analysis
          • Problem report
          • Constraint report
          • Inventory report
          • Inventory detail report
          • Resource report
          • Resource Gantt report
          • Resource detail report
          • Operation report
          • Operation detail report
          • Demand report
          • Demand detail report
          • Demand Gantt report
          • Forecast report
          • Performance indicator report
        • Execute
      • Batch commands
        • manage.py (manage.exe on Windows)
        • frepple (frepple.exe on Windows)
        • freppleservice.exe (Windows only)
    • Installation guide
      • Windows installer
      • Compiling on Windows
      • Linux binary packages
      • Compiling on Linux
      • Compiling on debian-based linux
      • Compiling on Red Hat based Linux
      • Compiling from the subversion source code repository
      • Running the VMWare virtual machine
      • Other platforms
      • Configuring the user interface
      • Configuring multiple models in the user interface
      • Configuring as a Python extension module
    • FAQ
    • Developer guide
      • Code structure
      • Class diagram
      • Solver
        • Solver features
        • Planning algorithm
          • Top level loop
          • Demand solver
          • Buffer solver
          • Flow solver
          • Load solver
          • Operation solver
          • Resource solver
        • Cluster and level algorithm
      • Extension modules
      • Version control
      • Style guide
      • Portability
      • Security
      • Internationalization
      • Translating the user interface
      • Adding or customizing a report
      • Unit tests
        • buffer_procure_1
        • calendar
        • callback
        • cluster
        • constraints_combined_1
        • constraints_combined_2
        • constraints_leadtime_1
        • constraints_material_1
        • constraints_material_2
        • constraints_material_3
        • constraints_material_4
        • constraints_resource_1
        • constraints_resource_2
        • constraints_resource_3
        • constraints_resource_4
        • constraints_resource_5
        • datetime
        • deletion
        • demand_policy
        • flow_alternate_1
        • flow_alternate_2
        • flow_effective
        • forecast_1
        • forecast_2
        • forecast_3
        • forecast_4
        • forecast_5
        • forecast_6
        • jobshop
        • load_alternate
        • load_effective
        • lpsolver_1
        • multithreading
        • name
        • operation_alternate
        • operation_available
        • operation_effective
        • operation_pre_post
        • operation_routing
        • pegging
        • problems
        • python_1
        • python_2
        • python_3
        • safety_stock
        • sample_module
        • scalability_1
        • scalability_2
        • scalability_3
        • setup_1
        • setup_2
        • skill
        • xml
        • xml_remote
    • License
      • GNU Affero General Public License
      • GNU Free Documentation License
    • Third party add-ons
  • Copyright © 2010-2013 frePPLe bvba