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

FAQ

User interface

How does frePPLe choose the language of the user interface?
The frePPLe web server detects the language settings of your browser. If any of the supported languages is in the list, the user interface will automatically be shown in that language. If none of the supported languages is accepted by your browser, English is used by default.
A user can override the detected language in the preferences screen.
If you used the windows installer for installing frePPLe, the automatic language detection doesn’t work. You can only manually set the language.
I want frePPLe in my own language
A fair request. FrePPLe is ready to plug in translations for additional languages.
Follow the instructions on this page to create you own translations and submit them to the frePPLe team. It’ll take you only a few hours to come up with the translations.

Data integration

How do I load data from my data source into the frePPLe database?
The recommended and most performant method to load data is to directly access the database tables with the database utility or ETL tool of your choice. The database schema of frePPLe is kept simple and transparant for this purpose.
A second choice is to use the frepple_loadxml command to import an XML file.
Another choice is to use the loaddata command to import data in JSON or YAML format.
A last alternative is to upload CSV-files in the user interface
How do I export planning results from the frePPLe database to an external system?
The recommended and most performant method is to directly pull the data from the database tables with the database utility or ETL tool of your choice. The planning results are stored in tables with the prefix out_.
Alternatively, you can use the dumpdata command to export in XML, JSON or YAML format.
Or, you can save the data from the user interface in CSV-format.

Modeling and solver algorithm

Can you briefly describe the solver algorithm?
The default solver is a heuristic solver. It will loop over all demands in order of priority, and search for each demand the best way to meet it in time. If it is not possible to meet the demand in time, it will try to minize the delivery delay.
Where will the solver do well? Where will it not work well?
There is no such thing as a generic algorithm that can solve all planning problems optimally and efficiently. Any solving algorithm has its strengths and weaknesses.
The frePPLe default solver is designed with discrete manufacturing environments in mind. In these environments material and capacity constraints are interacting with each other, and a plan is required that synchronizes the procurement of materials with the available capacity intelligently.
Some examples of planning problems where the frePPLe default solver is likely to fall short:

  • Project planning:
    If your planning problem has one-of tasks with complex dependencies and timing constraints the solver needs to recognize and utilize the critical path information. Such logic is currently not implemented.
  • Human resource planning:
    If your planning problems looks like a timetable where people need to be assigned to a set of tasks subject to a complex set of constraints and objectives, you’ll find that specialized solvers are doing a better job than frePPLe.
  • Combinatorial problems:
    Some planning problems look like puzzles. A combinatorial search is required to achieve good plan quality since the heuristic rules used by the default solver can’t cover all situations.
    A solver based on a simulated annealing algorithm is planned to address this type of problems, but it is not implemented yet.
How can I debug or trace the solver algorithm?
A trace file can be generated by running the solver in verbose mode. To switch to this mode, open the file commands.xml and edit the line frepple.solver_mrp(name=”MRP”, loglevel=2, …). At the end of the planning run the file frepple.log contains the complete trace of the algorithm.
More advanced debugging modes are possible by using the user exit hooks of the solver. These functions are callback functions where the solver algorithm will call your custom Python function. The hooks can be defined in the very same place.
How can I export my model to share with others?
At times it can be handy to export the content of your data to share it with others for debugging or analysis. The framework allows you to export
the data in a fixture in JSON text file.
Use the following command to achieve this:
manage.exe dumpdata –format=json input >mymodel.json
How can I import a model sent to me?
A model exported as a JSON fixture file can easily be imported in a database. Copy the fixture file into the folder binfixturesinput
(Windows installer) or contrib/django/freppledb/input/fixtures (development install). Next, using the tools/execute screen erase the previous contents of the database. Next, select the load dataset option in the same screen to import the dataset. Starting with v0.9.0, the new fixture will automatically be present in the list of available dataset.
You can also use the frepple_flush and loaddata commands to perform these actions from the command line.
MySQL has some issues importing such fixture dataset (see https://docs.djangoproject.com/en/dev/ref/django-admin/#compressed-fixtures) and the files may need some manual tweaking to be usable with MySQL.

Database

Which is the best database for frePPLe?
There is no answer to this question.
The choice is dependent on your own preference and expertise.
Why doesn”t frePPLe support my favorite database X?
FrePPLe supports all database engines that are officially supported in the Django web application framework.
For a number of additional databases third-party plugins are available (see https://docs.djangoproject.com/en/dev/ref/databases/). These are untested with frePPLe and your mileage may vary…
  • MySQL
    What are recommended database settings?
    See the Django documentation at https://docs.djangoproject.com/en/dev/ref/databases/
    It is highly recommended to use the InnoDB storage engine, for its support of transactions.
    For best support of multi-lingual data, it is recommended to set the default-character-set parameter to utf8. A case sensitive collation should be used.
    When the frePPLe exports planning results to the database, the setting of the variable max_allowed_packet is important: depending on the model size use a setting of 50M or higher.
    Also make sure the SQL_MODE setting includes “PIPES_AS_CONCAT”.
    For optimum performance of the user interface the default memory allocation parameters will need to be increased from their defaults. The appropriate settings depend on the model size, the number of concurrent users and the available memory on the server. The following parameters are of paritcular interest: innodb_buffer_pool_size and query_cache_size.
    I am getting an “engine has gone away” error message during plan exporting
    Increase the value of the database parameter max_allowed_packet to 50M or higher.
  • SQLite
  • PostgreSQL
    What are recommended database settings?
    See the Django documentation at https://docs.djangoproject.com/en/dev/ref/databases/
  • Oracle
    What are recommended database settings?
    See the Django documentation at https://docs.djangoproject.com/en/dev/ref/databases/
    • 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