<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Frepple / OperationPlan </title> <link rel='stylesheet' href='../styles.css' type='text/css' /> <!--PageHeaderFmt--> </head> <body> <div id="container"> <div id="menubar"> <div id="logo" align="center"> <br/><img src='../frepple.bmp' alt="frepple" /><br/> <a href='http://www.frepple.com/'> <strong>a Free<br/>Production Planning<br/>Library</strong> </a></div> <div id="menu"> <br/> <h3><a href='../Main/HomePage.html'>Main</a></h3> <h3><a href='../UI/Main.html'>User Manual</a></h3> <h3><a href='../Tutorial/Main.html'>Tutorial</a></h3> <h3><a href='Main.html'>Reference Manual</a></h3> <h3><a href='../Main/FAQ.html'>FAQ</a></h3> <h3><a href='../reference/index.html'>C++ API</a></h3> <br/><div> </div> </div> </div> <div id="content"> <br/> <!--PageText--> <div id='wikitext'> <p><a class='wikilink' href='../Main/HomePage.html'>Main</a> > <span class='wikitrail'><a class='wikilink' href='Main.html'>Reference Manual</a> > <a class='wikilink' href='Modeling.html'>Modeling</a> > <a class='selflink' href='ModelingOperationPlan.html'>OperationPlan</a></span> </p> <p class='vspace'>Used to model an existing or planned activity. </p> <p class='vspace'>When used as input the operationplans represent work-in-progress, in-transit shipments, planned material receipts, frozen manufacturing plans, etc... </p> <p class='vspace'>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. </p> <p class='vspace'>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.<br />These models are never created directly, but they are automatically managed by the operationplan. </p> <div class='vspace'></div><h2>Fields</h2> <table border='1' ><tr><td width='20%' valign='top'><strong>Field</strong> </td><td width='20%' valign='top'><strong>Type</strong> </td><td width='60%' valign='top'><strong>Description</strong> </td></tr><tr><td valign='top'>operation </td><td valign='top'>non-empty string </td><td valign='top'> <p>Name of the operation.<br />This field is required when no identifier is provided. </p></td></tr><tr><td valign='top'>id </td><td valign='top'>unsignedLong </td><td valign='top'> <p>Unique identifier of the operationplan.<br />If left unspecified an identifier will be automatically generated.<br />This field is required when updating existing instances. </p></td></tr><tr><td valign='top'>start </td><td valign='top'>dateTime </td><td valign='top'> <p>Start date. </p></td></tr><tr><td valign='top'>end </td><td valign='top'>dateTime </td><td valign='top'> <p>End date. </p></td></tr><tr><td valign='top'>demand </td><td valign='top'>demand </td><td valign='top'> <p>Points to the demand being satisfied with this operationplan.<br />This field is only non-null for the actual delivery operationplans. </p></td></tr><tr><td valign='top'>quantity </td><td valign='top'>double </td><td valign='top'> <p>Quantity being planned. </p></td></tr><tr><td valign='top'>locked </td><td valign='top'>boolean </td><td valign='top'> <p>A locked operation plan is not allowed to be changed any more by any solver algorithm. </p></td></tr><tr><td valign='top'>owner </td><td valign='top'>operation_plan </td><td valign='top'> <p>Points to a parent operationplan.<br />The default is NULL. </p></td></tr><tr><td valign='top'>flowplans </td><td valign='top'>list of flowplan </td><td valign='top'> <p>A list of flowplans owned by this operationplan.<br />This list is export-only.<br />See the field buffer.flowplans to see all flowplans of a particular buffer. </p></td></tr><tr><td valign='top'>loadplans </td><td valign='top'>list of loadplan </td><td valign='top'> <p>A list of loadplans owned by this operationplan.<br />This list is export-only.<br />See the field resource.loadplans to see all loadplans of a particular resource. </p></td></tr><tr><td valign='top'>unavailable </td><td valign='top'>duration </td><td valign='top'>Amount of time that the operationplan is interrupted due to the unavailability.<br />This field is export-only. </td></tr><tr><td valign='top'>action </td><td valign='top'>A<br />C<br />AC (default)<br />R </td><td valign='top'> <p>Type of action to be executed: </p><ul><li>A: Add an new entity, and report an error if the entity already exists. </li><li>C: Change an existing entity, and report an error if the entity doesn't exist yet. </li><li>AC: Change an entity or create a new one if it doesn't exist yet. </li><li>R: Remove an entity, and report an error if the entity doesn't exist. </li></ul></td></tr></table> <p class='vspace'><a name='FLOW_PLAN' id='FLOW_PLAN'></a> </p><h2>Flowplan</h2> <p>Models the material production or consumption associated with an operationplan. </p> <p class='vspace'>Flowplans are fully controlled by the owning operationplan. </p> <div class='vspace'></div> <table border='1' ><tr><td width='20%' valign='top'><strong>Field</strong> </td><td width='20%' valign='top'><strong>Type</strong> </td><td width='60%' valign='top'><strong>Description</strong> </td></tr><tr><td valign='top'>operationplan </td><td valign='top'>operationplan </td><td valign='top'> <p>Operationplan owning the flowplan. </p></td></tr><tr><td valign='top'>flow </td><td valign='top'>flow </td><td valign='top'> <p>Flow model of which this is a planned instance. </p></td></tr><tr><td valign='top'>quantity </td><td valign='top'>double </td><td valign='top'> <p>Size of the material consumption or production. </p></td></tr><tr><td valign='top'>date </td><td valign='top'>date </td><td valign='top'> <p>Date of material consumption or production. </p></td></tr><tr><td valign='top'>onhand </td><td valign='top'>double </td><td valign='top'>Inventory in the buffer after the execution of this flowplan. </td></tr></table> <p class='vspace'><a name='LOAD_PLAN' id='LOAD_PLAN'></a> </p><h2>Loadplan</h2> <p>Models the capacity usage associated with an operationplan. </p> <p class='vspace'>Loadplans are fully controlled by the owning operationplan. </p> <div class='vspace'></div> <table border='1' ><tr><td width='20%' valign='top'><strong>Field</strong> </td><td width='20%' valign='top'><strong>Type</strong> </td><td width='60%' valign='top'><strong>Description</strong> </td></tr><tr><td valign='top'>operationplan </td><td valign='top'>operationplan </td><td valign='top'> <p>Operationplan owning the loadplan. </p></td></tr><tr><td valign='top'>load </td><td valign='top'>load </td><td valign='top'> <p>Load model of which this is a planned instance. </p></td></tr><tr><td valign='top'>quantity </td><td valign='top'>double </td><td valign='top'> <p>Size of the resource loading. </p></td></tr><tr><td valign='top'>startdate </td><td valign='top'>date </td><td valign='top'> <p>Start of the resource loading. </p></td></tr><tr><td valign='top'>enddate </td><td valign='top'>date </td><td valign='top'> <p>End of the resource loading. </p></td></tr><tr><td valign='top'>setup </td><td valign='top'>string </td><td valign='top'> <p>Setup of the resource when executing this loadplan.<br />This can be either the setup required by this particular load, or the setup left by any previous loadplans on the resource. </p></td></tr></table> <div class='vspace'></div><h2>Example XML structures</h2> <ul><li>Adding an operationplan to represent a planned receipt of material </li></ul><pre> <plan> <operationplans> <operationplan operation="Purchase component A"> <quantity>100</quantity> <start>2007-01-10T00:00:00</start> <locked>true</locked> </operationplan> </operationplans> </plan> </pre><div class='vspace'></div><ul><li>Deleting an operationplan </li></ul><pre> <plan> <operationplans> <operationplan id="1020" action="R"/> </operationplans> </plan> </pre><div class='vspace'></div><h2>Example Python code</h2> <ul><li>Adding an operationplan to represent a planned receipt of material </li></ul><pre> op = frepple.operation(name="Purchase component A", action="C") opplan = frepple.operationplan(operation=op, quantity=100, start=datetime.datetime(2007,1,10), locked=True) </pre><div class='vspace'></div><ul><li>Deleting an operationplan </li></ul><pre> frepple.operationplan(id="1020",action="R") </pre><div class='vspace'></div><ul><li>Iterate over operationplans </li></ul><pre> for i in frepple.operationplans(): print i.operation.name, i.quantity, i.start, i.end </pre><div class='vspace'></div><ul><li>Iterate over flowplans </li></ul><pre> for i in frepple.operationplans(): for j in i.flowplans: print i.operation.name, j.quantity, j.date, j.buffer.name </pre><div class='vspace'></div><ul><li>Iterate over loadplans </li></ul><pre> for i in frepple.operationplans(): for j in i.loadplans: print i.operation.name, j.quantity, j.resource.name, j.startdate, j.enddate </pre> </div> <!--PageFooterFmt--> <!--HTMLFooter--> </div></div> </body> </html>