Main > Reference Manual > Modeling > 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 | non-empty string |
Name of the operation. |
id | unsignedLong |
Unique identifier of the operationplan. |
start | dateTime |
Start date. |
end | dateTime |
End date. |
demand | demand |
Points to the demand being satisfied with this operationplan. |
quantity | double |
Quantity being planned. |
locked | boolean |
A locked operation plan is not allowed to be changed any more by any solver algorithm. |
owner | operation_plan |
Points to a parent operationplan. |
flowplans | list of flowplan |
A list of flowplans owned by this operationplan. |
loadplans | list of loadplan |
A list of loadplans owned by this operationplan. |
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. Usage of this field varies by solver. The information is normally not relevant for end users. |
action | A C AC (default) R |
Type of action to be executed:
|
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 | date |
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 | date |
Start of the resource loading. |
enddate | date |
End of the resource loading. |
setup | string |
Setup of the resource when executing this loadplan. |
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