Release notes

4.5.0 (2019/01/25)

Production planning

  • The default allowed delivery delay of sales orders and forecasts is changed from indefinite to 5 years. This improves the performance of the algorithms in case there are unplannable orders.

  • A new resource type time buckets is introduced that represents capacity as the number of hours of availability per time bucket.

  • The capacity consumption from a bucketized resource now also has a constant component and considers the resource efficiency.

  • Addition of the field size maximum to the item supplier and item distribution tables.

  • More detailed modeling of work in progress.
    The parameters WIP.consume_material and WIP.consume_capacity control whether a confirmed manufacturing order consumes material and capacity.
  • More detailed modeling of in transit material.
    By leaving the origin location empty, no inventory will be consumed at the origin location. We assume the material has already left the origin location and is in transit.
    By leaving the destination location, the distribution order doesn’t produce any stock. This represents a material transfer outside of our supply chain.
  • Ability to use powerful regular expressions in the definition of setup matrices rules .

  • Bug fix: calculation of operation time for 0-duration operations was wrong in some situations.

  • Bug fix: incorrect operation duration when different resources in an aggregate pool resource have different working hours.

  • Bug fix: corrected corner cases where the solver got into an infinite loop.

User interface

  • Ability to cancel any running task on the execution screen. Until now only the plan generation could be canceled while it was running.

  • Improved performance and reduced memory footprint when downloading and exporting big reports.

  • Added field duration to the execution screen

  • Added tabs to see the manufacturing orders for a specific item, location or operation.

  • Update of the “in progress” fields of the inventory report. Are considered in progress for a given bucket all orders starting before the end date of that bucket and ending after the end date of that bucket.

Forecasting (Enterprise & Cloud Editions)

  • Improved algorithm to detect seasonal patterns.

  • Performance optimization when reading forecast data in memory.

Inventory planning (Enterprise & Cloud Editions)

  • Fix the distribution used to calculate the service level all along the horizon.

API

4.4.2 (2018/10/20)

Production planning

  • A new solver is introduced, specifically designed and tuned for distribution models.
    The default solver loops over all demands in order of priority and due date, and reserves material inventory and capacity along the supply path of that demand.
    The distribution solver first generates a unconstrained plan, and then solves all infeasibilities together and propagates the impact along the supply path. This solver distributes the shortage proportionally across all impacted demands. In distribution models the solver is also much faster than the default solver.
    See the documentation of the planning algorithm for more details.
    The new parameter ‘plan.solver’ selects which solver to use.
  • Performance optimization for models with post-operation times by avoiding ineffecient search loops.

  • The naming convention for distribution operations is changed from ‘Ship ITEM from ITEM @ SOURCE to ITEM @ DESTINATION’ to the simpler and shorter ‘Ship ITEM from SOURCE to DESTINATION’.

  • Bug fix for a specific corner case where material requirements for work in progress aren’t propagated at all.

  • New parameter plan.resourceiterationmax allows user control over the number of searches for a free capacity slot on a resource. Contributed by Mateusz Knapik.

Forecasting (Enterprise & Cloud Editions)

  • Performance optimization when uploading forecast override data.

User interface

  • Added field net duration to the resource detail report

  • Added fields total in progress, work in progress MO, on order PO, in transit DO to the inventory report

  • Bug fix: Deleting an object from the edit form in a scenario was incorrectly deleting the object in the production instead.

  • The import data files from folder and import a spreadsheet functionalities now ignores spaces, dashes and underscores in the recognition of the content type from the file or worksheet name.
    So far, only a worksheet called ‘sales order’ was recognized as containing sales order data. Now “sales-order”, “sales_order” and “salesorder” will also be recognized.

Openbravo connectors

  • Addition of the importDistributionOrders that read the distribution orders issue from Openbravo.

  • Export of approved distribution orders issue from frePPLe to OB.

  • Use of Fpp_InventoryByProduct entity that aggregates the onhand by warehouse (frePPLe connectors are not looking at the storage bins anymore). The Fpp_InventoryByProduct entity handles the onhand date change meaning that it can now be used in delta mode.

  • Use of the Fpp_ConsumptionHistoryDetail entity that aggregates the demand for a given item-location at bucket level. That makes the connectors read much less records. The time bucket (week, month…) is configurable in OB.

  • Handling of product name change. FrePPLe connectors rely now on the object id rather than on the product name.

Third party components

  • The Ubuntu binaries will be compiled on Ubuntu 18 LTS from now onwards.
    Compiling for Ubuntu 16 LTS remains fully supported, but we recommend to upgrade Ubuntu.

4.4.1 (2018/09/10)

Production planning

  • Bug fix in the calculation of the lateness/earliness of a manufacturing order, purchase order or distribution order. The calculation was incorrectly based on the start date rather the end date of the operation in question.

  • A new field “feasible” is now added to the inventory detail report, resource detail report, operation detail report, purchase order screen, distribution order screen and manufacturing order screen. The read-only boolean field indicates whether the order is violating any material, lead time or capacity constraints. This is useful in interpreting the results of an unconstrained plan.

  • The criterion for before current problems is updated for confirmed orders. The change should result in less problems that are also more meaningful to the users.
    For orders in the status approved or proposed a before-current problem is created when the start date is in the past.
    For orders in the status confirmed the criterion the problem is now created when the end date is in the past, i.e. the order is overdue and should have been finished by now.
  • The natural key in the suboperation table is changed from operation + suboperation + operation to operation + suboperation + effective start date.

User interface

  • Ability to make the data anonymous and obfuscated when exporting an Excel workbook. The names of all entities are obfuscated in the resulting spreadsheet. You will still need to carefully review the output to clean out any remaining sensitive data.

  • Ability to customize the names for the time buckets used in the reports. The time bucket generation command now has extra attributes for setting the name of the daily, weekly, monthly, quarterly and yearly buckets.

Third party components

  • Support for Ubuntu 18 LTS.
    Ubuntu 16 LTS remains fully supported.
  • Windows installer now uses Python 3.6.
    Python 3.5 remains fully supported.

4.4.0 (2018/08/02)

The Windows installer of this version isn’t working correctly due to some packaging mistakes.

Production planning

  • Resources can now have an efficiency percentage. This allows the resource to perform an operation faster or slower than the standard operation time.

  • The resource report now displays the available capacity as a line, replacing the green bar in previous releases to show the free capacity.

  • Performance optimization of the solver algorithm. The solver now passes down the minimum shipment information from the demand to all upstream entities, which allows the algorithm to perform a more efficient search.
    In complex models, the resulting plan may be slightly different - for the better.
  • Resource build-ahead penalty calculation now also working for 0-cost resources.

  • New rows to the purchase order summary and distribution order summary reports to show the quantity on order or in transit.

  • New rows to the inventory report to show 1) days of cover of the starting inventory, 2) the safety stock and 3) more details on the supply and consumption type.

  • The minimum field on the buffer defines a safety stock. In previous releases this safety stock was effective from the horizon start in 1971. Now this safety stock is effective from the current date of the plan onwards.
    This change will give a different result for safety stock replenishments in an unconstrained plan. In a lead time constrained plan the results will be identical.
  • Remove buffers of type procurement from the planning engine code. This buffer type was already long deprecated and hasn’t been accessible to users for quite some time now.

  • Simpler and more generic modeling of fixed material consumption and production by operations. The types ‘fixed_end’ and ‘fixed_start’ on operation material records are replaced with a field ‘fixed_quantity’.

  • Renamed the “demand plan detail” report to delivery orders, and enable uploading confirmed or approved shipments to customers as input data.

  • When expanding a confirmed manufacturing order on a routing operation, the automatic creation of the child manufacturing orders for each routing step now also considers the post-operation time.
    Note that such child manufacturing orders are only generated if they aren’t provided in the input data yet.

Inventory planning

  • The safety stock and ROQ minimum/maximum period of cover are now expressed in days. It was before entered as the number of period buckets, the period bucket being the value of the inventoryplanning.calendar parameter.

Forecasting (Enterprise & Cloud Editions)

  • Forecast parameters forecast.Net_NetEarly and forecast.Net_NetLate are now expressed in days (previously they were expressed in seconds).

User interface

  • Bug fix when copying a what-if scenario into another what-if scenario.

  • Bug fix when uploading data files using the Microsoft Edge browser.

Deprecation

  • Operations of types alternate, routing and split should not load any resources, or consume or produce materials. The suboperations should model all material and capacity usage instead.
    Note that in the majority of models, the explicit modeling of alternate operations is no longer needed. The planning engine detects situations where an item-location can be replenished in multiple ways and automatically generates an alternate operation.

4.3.4 (2018/06/08)

Forecasting (Enterprise & Cloud Editions)

  • The forecast error used in frePPLe is SMAPE. This has a counter intuitive property that provides values in the range from 0% to 200%.
    We redefine the SMAPE metric now to half the previous value to give a more intuitive range between 0% and 100%. See https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error for the alternate definitions of SMAPE.
  • Forecast report is now also showing the cumumlative backlog of the orders and forecast, i.e. the demand that is planned later than its due date.

Production planning

  • The plan editor now automatically initializes the Gantt chart rows and the color codes for the item and operation category and subcategory values.
    Personalized configurations are preserved, and the new logic is only used to initialize the screen with new values.
  • Added new reports purchase order summary and distribution order summary to summarize the purchase orders or distribution orders per time bucket.

  • For consistency with the previous change, the operation report is renamed to manufacturing order summary.

Integration

  • Extended the exporttofolder command to export additional plan results into CSV or Excel files.

  • The data type of all numeric fields is changed from 15 digits with 6 decimals to 20 digits with 8 decimals. This allows a larger range of numbers to be accurately represented in the database.

  • The remote web commands API now supports user authentication with JSON Web Tokens to launch tasks, download data and upload data.

4.3.3 (2018/05/03)

Forecasting (Enterprise & Cloud Editions)

  • Bug fix: In some bucket definitions, the forecast consumption was not consuming from later buckets.

Inventory planning (Enterprise & Cloud Editions)

  • Ability to control the priority of a business rule

  • Bug fix: simulation capability in the Inventory Planning report not working when there are multiple forecasts for a single item+location forecasts.

Production planning

  • Solver performance optimization where there are availability calendars. The plan generation time can be reduced with a factor 3 to 4 in some models.

  • Solver enhancements for planning with setup matrices.

  • Solver optimization to handle infinite buffers more efficiently.

  • Bug fix: Compilation error with Python 3.6

Odoo connector

  • Correction to maintain a single root hierarchy.

Openbravo integration (Enterprise & Cloud Editions)

  • Bug fix: sales order mapping incorrectly used the document status.

  • Log file of the connector now accessible in the user interface

4.3.2 (2018/03/19)

Forecasting (Enterprise & Cloud Editions)

  • Internal refactoring of the forecastplan table.

Inventory planning (Enterprise & Cloud Editions)

  • When defining the ROQ period of cover for an item with the global_purchase flag set to true, the forecast is now based on the total demand for the item (rather than only the local demand).
    Note that the safety stock calculation remains based on the local demand for the item.

Production planning

  • New operationmaterial policy ‘transfer_batch’ which allows material production or consumption in a number of batches of fixed size at various moments during the total duration of the operationplan.
    A new field operationmaterial.transferbatch is introduced.
  • A new field ‘end items’ is added to the manufacturing order, purchase order and distribution orders screens. It is similar to the ‘demands’ which shows the demands.

  • Solver enhancements for planning with setup matrices.

API

  • Bug fix: backward compatibility after command renaming in 4.3.

Third party components

  • Upgrade to PostgreSQL 10. PostgreSQL 9.5 and 9.6 remain fully supported.

4.3.1 (2018/02/17)

Production planning

  • Solver engine improvements to reduce resource setup changeovers (Enterprise & Cloud Editions)

  • New step to make the initial work-in-progress data feasible. (Enterprise & Cloud Editions) Constraints are resolved by delaying approved manufacturing orders to feasible dates. Confirmed manufacturing orders aren’t changed during the new pre-planning step.

Forecasting (Enterprise & Cloud Editions)

  • Ability to display only 2 dimensions in the forecast editor screen.

  • Performance improvements in the export of results.

  • Improved & more intuitive values when entering forecast overrides at different levels in the hierarchies.

Bug fixes

  • The autofence now also considers approved supply, and not only confirmed supply.

  • Excel files with some non-standard internal structure are now also recognized.

  • Work-in-progress operationplans with quantity 0 are no longer rejected.

Deprecations

  • Command frepple_run is renamed to runplan.

  • Command frepple_runserver is renamed to runwebserver.

  • Command frepple_copy is renamed to scenario_copy.

  • Command frepple_importfromfolder is renamed to importfromfolder.

  • Command frepple_exporttofolder is renamed to exportfromfolder.

  • Command frepple_flush is renamed to empty.

  • Command frepple_backup is renamed to backup.

  • Command frepple_restore is renamed to restore.

  • Command frepple_simulation is renamed to simulation.

  • Command frepple_createbuckets is renamed to createbuckets.

  • Command frepple_createmodel is renamed to createmodel.

  • Command frepple_loadxml is renamed to loadxml.

  • Command frepple_runworker is renamed to runworker.