frePPLeOpen source Production Planning
  • Home
  • Documentation
  • C++ API

Modeling guide

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

A couple of initial remarks:

  • 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.
    The files frepple.xsd and frepple_core.xsd define the XML Schema structure for the frePPLe data files.
    The XML-data can be placed in any namespace.
    To support subclassing the namespace xsi must be defined as “http://www.w3.org/2001/XMLSchema-instance”.
    FrePPLe XML files thus typically start with the following lines:

       <?xml version="1.0" encoding="UTF-8"?>
       <plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       ...
       </plan>

    The following encodings are supported for XML data: ASCII, UTF-8, UTF-16 (Big/Small Endian), UTF-32(Big/Small Endian), EBCDIC code pages IBM037, IBM1047 and IBM1140, ISO-8859-1 (aka Latin1) and Windows-1252. UTF-8 will be the best choice in most situations.

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

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
    • Getting started
      • 1 – Introduction
      • 2 – Installation
      • 3 – Entering data
      • 4 – Modelling concepts
      • 5 – Your first model
      • 6 – Your first plan
    • 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
    • User guide
      • Supported browsers
      • Getting around
        • Logging in
        • Logging out
        • Changing password
        • Navigation
          • Menu bar
          • Jump search
          • Context menus
        • Filtering data
        • Sorting data
        • Selecting time buckets
        • Exporting data
        • Importing data
        • Customizing a screen
        • User preferences
        • User permissions and roles
        • Comments
        • History – Audit trail
      • Data maintenance screens
      • Supply Path / Where Used
      • Plan analysis screens
        • 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
      • Execution screen
      • Batch commands
        • frepplectl
        • frepple
        • freppleservice.exe (Windows only)
    • Installation guide
      • Windows installer
      • Compiling on Windows
      • Linux binary packages
      • Compiling on Linux
      • Compiling from the source code repository
      • Running the VMWare virtual machine
      • Other platforms
      • Configuring multiple models in the user interface
      • Configuring as a Python extension module
    • Extension modules
      • Forecast module
      • Order quoting module
      • REST web service module
      • OpenERP connector module
      • Linear programming solver module
    • Technical guide
      • Architecture
      • Source code repository
      • User interface
        • Creating an extension app
        • Translating the user interface
        • Adding or customizing a report
        • Style guide
      • Solver engine
        • Code structure
        • Class diagram
        • Planning algorithm
          • Top level loop
          • Demand solver
          • Buffer solver
          • Flow solver
          • Load solver
          • Operation solver
          • Resource solver
        • Cluster and level algorithm
        • Extension modules
        • Style guide
        • Portability
      • Security
      • 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
    • FAQ
    • License
      • GNU Affero General Public License
      • GNU Free Documentation License
    • Third party add-ons
  • Copyright © 2010-2013 frePPLe bvba