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

Operationplan

Used to model an existing or planned activity.

When used as input the operationplans represent work-in-progress, in-transit shipments, planned material receipts, frozen manufacturing plans, etc…

In the output plan, the operationplans represent the planned activities in the future. The frozen operationplans from the input data are still present in the plan as well.

The operationplan has two closely related models.
A flowplan represents the planned production or consumption of material.
A loadplan represents the planned consumption of capacity.
These models are never created directly, but they are automatically managed by the operationplan.

Fields

Field Type Description
operation operation Name of the operation.
id unsignedLong Unique identifier of the operationplan.
If left unspecified an identifier will be automatically generated.
This field is required when updating existing instances.
start dateTime Start date.
end dateTime Start date.
demand demand Points to the demand being satisfied with this operationplan.
This field is only non-null for the actual delivery operationplans.
quantity double Quantity being planned.
locked boolean A locked operation plan is not allowed to be changed any more by any solver algorithm.
owner operationplan Points to a parent operationplan.
The default is NULL.
flowplans list of flowplan A list of flowplans owned by this operationplan.
This list is export-only.
See the field buffer.flowplans to see all flowplans of a particular buffer.
loadplans list of loadplans A list of loadplans owned by this operationplan.
This list is export-only.
See the field resource.loadplans to see all loadplans of a particular resource.
unavailable duration Amount of time that the operationplan is interrupted due to the unavailability.
This field is export-only.
motive demand, buffer or resource Planning object that triggered the creation of this operationplan.
This is an export-only field that is updated by the solver. The information is normally not relevant for end users.
action A
C
AC (default)
R
Type of action to be executed:

  • A: Add an new entity, and report an error if the entity already exists.
  • C: Change an existing entity, and report an error if the entity doesn’t exist yet.
  • AC: Change an entity or create a new one if it doesn’t exist yet.
  • R: Remove an entity, and report an error if the entity doesn’t exist.

Flowplan

Models the material production or consumption associated with an operationplan.

Flowplans are fully controlled by the owning operationplan.

Field Type Description
operationplan operationplan Operationplan owning the flowplan.
flow flow Flow model of which this is a planned instance.
quantity double Size of the material consumption or production.
date dateTime Date of material consumption or production.
onhand double Inventory in the buffer after the execution of this flowplan.

Loadplan

Models the capacity usage associated with an operationplan.

Loadplans are fully controlled by the owning operationplan.

Field Type Description
operationplan operationplan Operationplan owning the loadplan.
load load Load model of which this is a planned instance.
quantity double Size of the resource loading.
startdate dateTime Start of the resource loading.
enddate dateTime End of the resource loading.
setup string Setup of the resource when executing this loadplan.
This can be either the setup required by this particular load, or the setup left by any previous loadplans on the resource.

Example XML structures

  • Adding an operationplan to represent a planned receipt of material
    <plan>
       <operationplans>
         <operationplan operation="Purchase component A">
           <quantity>100</quantity>
           <start>2007-01-10T00:00:00</start>
           <locked>true</locked>
         </operationplan>
       </operationplans>
     </plan>
  • Deleting an operationplan
    <plan>
        <operationplans>
           <operationplan id="1020" action="R"/>
        </operationplans>
     </plan>

Example Python code

  • Adding an operationplan to represent a planned receipt of material
       op = frepple.operation(name="Purchase component A", action="C")
       opplan = frepple.operationplan(operation=op, 
          quantity=100, start=datetime.datetime(2007,1,10), locked=True)
  • Deleting an operationplan
        frepple.operationplan(id="1020",action="R")
  • Iterate over operationplans
      for i in frepple.operationplans():
          print i.operation.name, i.quantity, i.start, i.end
  • Iterate over flowplans
      for i in frepple.operationplans():
          for j in i.flowplans:
            print i.operation.name, j.quantity, j.date, j.buffer.name
  • Iterate over loadplans
      for i in frepple.operationplans():
          for j in i.loadplans:
            print i.operation.name, j.quantity, j.resource.name,
              j.startdate, j.enddate
    • 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