Documentation >
MAC-PAC Technical Library >
Manufacturing >
Master Scheduling >
Programs >
Tentative Master Schedule Maintenance - Online - Purpose >
Tentative Master Schedule Maintenance - Online - Calculations
Tentative Master Schedule Maintenance - Online - Calculations
MS160E
A. Housekeeping
1. See the Common Processing Routines - Housekeeping section of this manual for a general discussion of this subroutine. Processing specific to this program is described below.
2. Key lists are defined for each keyed file the program retrieves.
3. Work fields are defined and program constants are initialized.
4. The following information is retrieved from the System Control file (CT100M):
a. The company name is retrieved from the first Inventory Control record (ICCTL1).
b. The lot control and potency control environment flags (LOTOPT, POTOPT) are retrieved from the first Inventory Control record (ICCTL1). Both flags must be set to Yes (Y) for the system to be potency controlled.
c. The warehouse balances available for manufacturing (MOPAC1, MOPAC2, MOPAC3, MOPAC4) and distribution (DSTAC2, DSTAC3, DSTAC4) are retrieved from the second Inventory Control control record (ICCTL2).
5. The following information is retrieved from the Reference file (REFERP):
a. The applications installed record (category 012) is retrieved to determine whether Order Processing, Shop Floor Control, Synchro, EDI, or Future 3 Interface are installed.
b. If the EDI or Future 3 Interface module is installed, the EDI demand types are retrieved from category D26.
c. The date format is retrieved from the date format record (category 049).
d. Order policy codes and descriptions are retrieved from the order policy codes record (category 404) and loaded into arrays. If this record is not found, blanks are used.
e. Part type codes and descriptions are retrieved from the part type codes record (category 405) and loaded into arrays. If this record is not found, blanks are used.
f. The standard demand fence and the standard fence period are retrieved from Reference File category 464, Master Scheduling Defaults.
g. Order quantity decimal positions are retrieved from the quantity field sizes record (category 446) to set the maximum value for the overflow field.
h. User authorization records are retrieved from category 409 for use in validating the plant.
i. The default plant is retrieved from category 428.
6. The numeric fields in the multiple occurrence data structures are initialized with zeros to prevent a decimal data error.
7. The fast path code is checked to see whether the part number was passed. If so, this is placed on the select screen.
8. Plant field is validated, if valid, its calendar code and other relevant information are loaded into a data structure.
B. Function Select Screen (subroutine PRCPMT)
1. The Tentative Master Schedule Maintenance Function Select Screen is displayed. Command keys are available for exit and fast path.
2. For each plant:
a. The associated company and location are retrieved from the Warehouse Description file (IC170ML2).
b. The last calendar date is retrieved from Reference File category C14.
c. Calendar and shop floor date arrays are loaded, based on the calendar code for the plant. The arrays are loaded from the Week Start Date file (CT140ML1). The start date for loading is taken as the smallest of the three: current period, current month, and current week fields. The two arrays consist of week start dates and their corresponding shop dates. Both arrays can have a maximum of 104 occurrences. Once the arrays have been loaded, the occurrences corresponding to the three current date fields are saved. If the calendar date array reaches its 104th occurrence before reaching the end of the calendar file, this final array date is saved as the last date on the calendar file.
d. The planning period mask array is loaded from the Planning Period Definition file (MS025M). If no mask is found for the particular calendar code/'M' planning method combination, a flag is set up (MSKOK) to prevent requests selecting a planning period mask option from being processed.
e. The dates of the current period are retrieved, and calendar and shop date arrays are built.
f. The system date (UDATE) is reformatted to YYMMDD. Using this reformatted date, the following dates are determined:
Current week start date with its equivalent shop date
|
First working day of the week in which this date falls (CURWEK, CURSHP)
|
Current month start date
|
First working day of the month in which this date falls (CRMOCL)
|
Current mask period start date
|
First working day of the period in which this date falls (CRMKCL, WRMSK)
|
g. The standard demand fence and the standard fence period are retrieved from Reference File category 464, Master Scheduling Defaults.
h. The demand fence date is calculated by calling MS090E (Planning Horizon Date Calculation). The standard demand fence and the demand fence period are passed. This demand fence date is displayed on the tentative master schedule.
3. The function select screen (MS160S01) is validated. Refer to the Master Scheduling User Manual for validation rules.
4. Once validation has been performed successfully, a locking record is written to the asynchronous workfile (MS160AP). This is to prevent the tentative master schedule from being modified before the previous update has been processed asynchronously. If a locking record cannot be written because one already exists, the Part Number is highlighted and an error message is displayed on the select screen.
5. Fields are initialized and data structures are set up for the part that was specified on the function select screen. (Subroutine SCRHSK)
a. Accumulators and indicators are initialized. (Subroutine NEWPTIN)
b. The part's relevant attributes that will be used as processing options in further processing are saved. (Subroutine SVPMFL)
If the part is MRP or has inventory netting flag (PMNETF) equal to yes, safety stock will be processed as a requirement.
If the part is not manufactured, transfer, or bundled, , the order policy parameters (quantity and increment) are converted from the purchasing unit of measure to stockkeeping units of measure. The conversion also occurs if the part has a make/buy flag on the Part Master file (DE100M) of Buy.
If the part has a scrap factor and the order policy is fixed quantity or fixed time, the order policy parameters are reduced by the scrap quantity. (Subroutine FMTQTY)
c. The time fences are calculated. (Subroutine DETFNC) There are four time fences, which are defined as follows:
(1) Volume time fence: The user-defined period within which changes in the quantity may not be cost-effective.
(2) Mix time fence: The user-defined period within which changes in the mix of products to be made (the ratio of one item to another) may not be cost effective.
(3) Cumulative leadtime time fence: The part's cumulative leadtime. Changes that fall in the cumulative leadtime may not be feasible.
(4) Standard demand time fence: The user defined period within which the forecast demand should not be considered. Net demand is set to consumable demand irrespective of the size of forecast demand.
These time fences are highlighted on the detail screen to show the user when they have been reached. A warning message is also displayed, but the planner is not prevented from doing any maintenance to the master schedule within the time fence, if he chooses to do so.
d. The date to start calculating a master schedule, or displaying an existing master schedule, is determined. (Subroutine GTSTDT)
(1) The requested starting date's week begin date is determined.
(2) The current forecast period's start date is determined.
(3) The next forecast period's start date is determined.
(4) The first dates to start netting demand and calculating projected inventory are set on the weekly and projected demand data structures.
e. Parent part data structures are built. (Subroutine BLDPSD)
(1) The Product Structure Where-Used file (DE120ML) is read to find all of the requested part's parents. The first part saved on the planning part data structure is always the requested part.
Only product structures in effect during the period are used. Reference parts are not processed. If the parent part is a build-thru part, its parents are retrieved.
Each parent part is checked to determine whether it is a planning, standard master scheduled, daily master scheduled, service, or requirements planning part by chaining to the Part Master file (DE100M). The part type determines which file will be read to retrieve the parent's dependent demand during the master schedule calculation.
(a) Planning parents are saved in the Planning Parent Part Data Structure, along with the part being processed itself. Parent indirect demand for these parts will come from the Forecast file (MS150M). If the parent part is a transfer part, DE100L25 is accessed to determine the sourcing plant for the part. Requirements for the part will be added to the demand in that plant.
(b) Standard master scheduled parents are saved in the Standard Master Scheduling Parent Parts Data Structure. These parts' dependent demand will come from the Tentative Master Schedule file (MS160M).
(c) For each parent part, the quantity per batch is divided by the batch quantity to determine the quantity per unit. The quantity per and scrap factor from the product structure record are stored in the corresponding arrays.
(d) Requirements planning, service, and daily master scheduled parents are ignored. The dependent demand contributed by these parents will be on the Components Requirements file.
6. For JIT parts that do not net from existing inventory, inventory balances are ignored. If the part is JIT manufactured but has a make/buy flag on the Part Master File (DE100M) of Buy, the parent demand should be processed like a non-JIT part. For all other parts, the Beginning Inventory Balance is calculated for the current period. The basic calculation is as follows:
BEGINNING INVENTORY BALANCE
|
=
|
CURRENT INVENTORY BALANCE
|
minus
|
PAST DUE DEMAND
|
plus
|
PAST DUE SUPPLY
|
Each operand is explained in more detail below.
a. For parts that are not potency-controlled, Current Inventory Balance is calculated in subroutine GTCURI. The balance is retrieved from the Warehouse Balance file (IC140M), and is the sum of the work-in-process balance, on-hand balance and planning balance. This total is calculated as follows:
(1) For the manufacturing warehouse, if the Order Planning flag on the balance type is Y, the quantity is added to the total. (Note that the Order Planning flag for the On-Hand balance type is Y, so on-hand inventory is included in the total.)
(2) The work-in-process balance is added to the total.
(3) For the manufacturing warehouse, if any balance types are available for both planning and distribution (both Order Planning Flag and Distribution Flag = Y on the balance type), and sales orders are not considered for planning (the Sales Order Planning Flag on the Warehouse Description file is N), then the inventory quantity reserved for customer orders is subtracted from the total.
(4) For every distribution warehouse associated with the plant, the Warehouse Description file is read to determine if balances at the warehouse are available for planning. If so, any distribution balance at the warehouse is added to the total.
b. For potency-controlled parts, the Current Inventory Balance is calculated in subroutine BPCURI). The balance is retrieved from the multiple location logical file (IC130ML6) for each balance type on the applicable records (LLBLT1 through LLBLT4). This balance is calculated, or converted into, potent units as shown below, and is the sum of the on-hand and planning balances. If the totals in potent units are calculated as follows:
(1) For the manufacturing warehouse, if the order planning flag (MOPAC2, MOPAC3, MOPAC4) on the balance type (LLBLT2, LLBLT3, LLBLT4) is Y for each multiple location record read, the quantity is converted into potent units and added to the total. Potent units for each applicable balance type are calculated as follows:
Potent Units
|
equals
|
Balance Type Quantity
|
times
|
Actual Potency of lot (LCACPT) from IC150M) if lot is available for planning
|
|
|
|
|
Master standard potency (SVSTFT) from DE100M
|
This process occurs in subroutine POTCLC, after which the equivalent potent units (POTBLQ) is added to the current inventory balance.
(2) Since the multiple location file does not have a work-in-process balance quantity (WBWIPB) similar to that on IC140M, this is not directly taken into account. The quantity that resides in WBWIPB on IC140M would also be accounted in some multiple location record, so the equivalent work-in-process multiple location records will be converted into potent units and added to the inventory.
(3) For the manufacturing warehouse, if any balance types are available for both planning and distribution (both Order Planning Flag and Distribution Flag = Y on the balance type), and sales orders are not considered for planning (the Sales Order Planning Flag on the Warehouse Description file is N), then the inventory quantity reserved for customer orders is subtracted from the total. For potency controlled parts, the inventory reserved quantity for customer and transfer order lines (WBRSOQ) is subtracted from the aforementioned total at Standard Potency (i.e. stock keeping, not potent, units) because not all of the warehouse balance reserved quantity (WBRSOQ) will necessarily also be reserved at the multiple location file level (WBRSOQ = LLRSV2 + LLRSV3 + LLRSV4, from IC130ML6).
(4) The following information is retrieved from the System Control file (CT100M). For every distribution warehouse associated with the plant, the Warehouse Description file is read to determine if balances at the warehouse are available for planning. If so, any distribution balance at the warehouse is added to the total in potent units.
For potency controlled JIT parts, the inventory netting flag is checked. If the flag is set to Yes (PMNETF = Y), the multiple location file quantities are processed and converted to potent units. If the flag is set to no (PMNETF = N), the multiple location file quantities are not processed, and the balance is set to zero.
c. Past due demand and past due supply are calculated using subroutine GTPSTA.
(1) Past Due Demand and Supply for JIT parts are retrieved from JT100ML3 (flow authorization) and JT120ML2 (flow requirements). Because multiple flow requirements might exist for the same day, the flow requirements are accumulated into an array. For consumed components, the difference between the quantity produced and the quantity scheduled is added to the past due demand. For produced components, the difference is added to past due supply.
(2) Past Due Demand for non-JIT parts is calculated in subroutine PSTACT. Demand records are retrieved from the Availability file (RP095ML3). This file includes customer orders, offset releases, transfer orders, and transfer requisitions with a promise date before today's date that have not been fully shipped. It also includes component requirements and flow requirements with a start date before today's date that have not been fully issued.
(a) A customer order is included only if the planning flag is Yes. This flag is set to Y if the order is sourced from manufacturing inventory or if it is sourced from distribution inventory at a manufacturing warehouse where the Sales Order Planning Flag = Yes. The quantities are converted from order policy units of measure to stockkeeping units of measure. The difference between the required quantity and the shipped quantity is added to the past due demand. For orders with backorder releases, the backordered quantity is subtracted from the total due. (The backordered quantity is subtracted because it will be included when the release is processed.)
(b) Transfer requisitions and transfer orders are only processed if the relief code is manufacturing. The difference between the required quantity and the quantity shipped is added to the past due demand. Requisitions and orders are ignored if they have a status of closed, canceled, covered, or planned.
(c) Offset releases are only processed if they are sourced from a manufacturing warehouse. The net quantity is added to the past due demand. (It is not necessary to omit releases in the past with a status of planned because Synchro closes them.)
(d) For component requirements, the difference between the required quantity and the issued quantity is added to the past due demand if the component is consumed. It is added to the past due supply if the component is produced. Component requirements are ignored if they have a status of closed, accounting closed, canceled, or planned.
(3) Past Due Supply is retrieved from the Availability file (RP095ML1) and includes manufacturing orders, purchase orders, purchase requisitions, transfer orders, and transfer requisitions with a due date before today's date that have not been fully received. All quantities are adjusted for scrap using the scrap factor. However, if the Shop Floor module is installed, the yield is calculated a second time using the actual scrap quantity; the lesser of the two yields is used. The difference between the calculated yield and the quantity received is added to the past due supply.
d. The shipped quantity/issued quantity is accumulated for closed orders, which based on the part's consumption code should be consumed against forecast. This total is the total amount of the forecast that has already been consumed for the period. Remaining demand for the period is the difference between the forecast demand and the demand that has already been satisfied in previous weeks. This amount is used in netting demand for weeks that fall within the first forecast period.
7. Once the beginning inventory for the current week is calculated, the program calculates the beginning inventory for the requested week in subroutine STRINV, if the requested week is different than the current week. The basic calculation is as follows:
BEGINNING INVENTORY BALANCE FOR REQUESTED WEEK
|
=
|
BEGINNING INVENTORY BALANCE FOR CURRENT PERIOD
|
plus
|
FUTURE ACTIVITY UP TO REQUEST WEEK
|
This processing is done using the weekly and forecast data structures and number of weeks covered within each processing loop, as discussed in the Week Processing section (step 4) below.
a. Future Activity up to Request Week is calculated as a result of the expected demand for the period between the current week and the requested week, plus the estimated supply for the same period.
(1) Expected demand is calculated in weekly buckets and consists of the following:
(a) Net demand consists of demand for the part's planning parents, for the part from the Projected Demand file (MS150ML1), and from consumable demand. The netting logic used is discussed in the Demand Netting section of step 4. Consumed demand varies depending on the value of the Consumption Code, which is found on the Part Master file.
CONSUMPTION CODE
|
|
VALUE
|
0
|
|
No consumption
|
1
|
|
Planned sales orders, transfer orders, transfer requisitions, and Synchro offset releases
|
Planned sales orders, transfer orders, and transfer requisitions are those that are considered to satisfy projected demand (forecast). They are entered with a Planned/Unplanned Code of 'P' through the corresponding maintenance conversations. (Synchro delivery requests are always planned.) Sales orders are only included in this quantity if they will be relieved from manufacturing inventory or if they will be relieved from distribution inventory at the manufacturing warehouse and the Sales Order Planning flag (on the Warehouse Description file) for this manufacturing warehouse is Yes.
CONSUMPTION CODE
|
|
VALUE
|
2
|
|
Component requirements and flow requirements
|
3
|
|
All requirements listed for consumption codes 1 and 2.
|
Unconsumed demand varies depending on the value of the Consumption Code.
CONSUMPTION CODE
|
|
VALUE
|
0
|
|
All requirements listed for consumption codes 1 and 2
|
1
|
|
Component requirements and flow requirements
|
2
|
|
Planned sales orders, transfer orders, transfer requisitions, and Synchro offset releases
|
3
|
|
No requirements (All requirements in consumption codes 1 and 2 are consumed.)
|
(b) Parent (dependent) demand consists of demand from master scheduled and requirements planning parents. Demand from standard master scheduling parents is retrieved from the Tentative Master Schedule file (MS160M). In this case, all demands from the Availability file are omitted to avoid double-counting. Demand from requirements planning, service, and daily master scheduled parents is retrieved from the component requirements record on the Availability file (IC100MLA). Demand is also retrieved from the Synchro Part/Delivery Point file (GA120MLF).
(c) Unplanned demand consists of demand from unplanned customer orders, transfer requisitions, and unplanned transfer orders.
For JIT parts, the inventory netting flag is checked. If the flag is set to yes (PMNETF = Y), Warehouse Balance file quantities are processed, if the flag is set to no (PMNETF = N), the Warehouse Balance file quantities are ignored and the balance is set to be zero.
(2) The estimated supply is found from the existing master schedule for the part on the Tentative Master Schedule file (MS160M). This supply is also saved weekly.
b. Beginning Inventory for the requested week is calculated weekly from the current week to the requested week.
BEGINNING INVENTORY
(week n+1)
|
=
|
PROJECTED INVENTORY (week n)
|
PROJECTED INVENTORY (week n)
|
=
|
BEGINNING INVENTORY (week n)
|
minus
|
|
TOTAL DEMAND (week n)
|
minus
|
DEMAND ACTIVITY (week n)
|
|
|
|
|
plus
|
|
SUPPLY ACTIVITY
(week n)
|
plus
|
MS QUANTITY
(week n)
|
|
|
|
|
plus
|
|
BY-PRODUCT ACTIVITY
(week n)
|
|
|
|
This calculation is performed week by week until the requested week.
c. Once the requested week's beginning inventory has been calculated, the weekly data structure is reformatted so that the requested week is at the second occurrence of the data structure. The first occurrence contains the beginning inventory.
C. Subfile Processing (subroutine PRCDET)
1. A data structure is built to contain records holding data for display on the screen, plus any additional weeks required for calculation purposes (subroutine CDMTDT).
The weekly data structure and the forecast data structure are filled with as many weeks as necessary to calculate all information through the requested end date. This is calculated as follows:
(a) The dates in the weekly data structure are retrieved from the calendar date array. The number of working days in each week is calculated. This number will be used later to prorate the forecast.
(b) The program determines the number of weeks required on the data structure to display an accurate subfile page. The data structure will require at least eight weeks, so the subfile can display eight lines. In addition:
(1) If the Order Policy is fixed time, the program must be able to schedule future weeks beyond the last forecast period. Therefore, additional weeks must be included in the weekly data structure.
(2) If the Part Master file specifies that target inventory is required for the part (in terms of a number of weeks supply), additional future weeks are required to project the inventory needs.
(3) Full forecast periods must be covered, because tentative schedule and projected demand are smoothed over a forecast period.
(c) Forecast held in the Projected Demand file (MS150ML1) is retrieved for the requested part and all of the part's planning parents. The forecast is accumulated for each period in the forecast data structure.
2. The demand quantities are calculated. The part availability is determined in subroutine DETAVB.
(a) Flow authorizations and flow requirements are retrieved from JT100L10. The FR quantities for each day are accumulated into an array and added to current schedule quantities.
(b) If Synchro is installed, and the current period is being processed, the in-process shipments are read from GA120MLF and accumulated. The total amount will be added to actual demand.
(c) Other orders are retrieved from the Availability file (IC100L19) and accumulated in subroutine PRCFUT. Orders are accumulated for each week as follows:
(1) Consumable Demand. The value of the consumption code determines what demand is consumed. If the consumption code is 0, no demand is consumed. If the consumption code is 1, consumable demand includes planned sales orders, transfer orders, transfer requisitions, and Synchro offset releases. Planned sales orders, transfer orders, and transfer requisitions are those that are considered to satisfy projected demand (forecast). They are entered with a Planned/Unplanned Code of 'P' through the corresponding maintenance conversations. (Synchro delivery requests are always planned.) Sales orders are only included in this quantity if they will be relieved from manufacturing inventory or if they will be relieved from distribution inventory at the manufacturing warehouse and the Sales Order Planning flag (on the Warehouse Description file) for this manufacturing warehouse is Yes. If the consumption code is 2, consumable demand constitutes component requirements and flow requirements. If the consumption code is 3, all requirements listed under consumption codes 1 and 2 are consumed. Component requirements, flow requirements, demand transfer requisitions, and demand transfer orders are only processed if the parent part (as identified on the manufacturing order) is not a standard master scheduled item. (If the parent is standard master scheduled, the demand will be retrieved from the Tentative Master Schedule file.) If the status is closed or accounting closed, the issued quantity is considered as the unconsumed demand. Otherwise, the program uses the greater of the issued or required quantity.
For a sales order, the program uses either the shipped quantity or the reserved quantity, whichever is greater. Any backordered quantity is subtracted from the total. For an offset release, the net quantity is used. All quantities are converted into stockkeeping units of measure.
(2) Unplanned Customer Orders: Unplanned sales orders, transfer orders, and transfer requisitions with a promise date that falls within the week. Unplanned sales orders, transfer orders, and transfer requisitions are unexpected orders that were not taken into account when developing the demand projection. They are entered with a Planned/Unplanned Code of 'U' through the corresponding maintenance conversations.
Also note that the shipped quantity is added to the unplanned quantity for orders that are closed or fully shipped.
(3) Demand Activity: customer shipments, component issues, flow issues, transfer orders, transfer requisitions, and purchase order requisitions. Transfer orders and requisitions are only included if they have a manufacturing relief code.
(4) Current Schedule: purchase orders, manufacturing orders, transfer orders, transfer requisitions, and flow authorizations.
The scheduled quantities are reduced by the scrap percentage. Purchase orders are not considered if they are for direct shipments or phantom orders or if they are closed. If Shop Floor is not installed, the scrap factor is used to calculate the yield. If Shop Floor is installed, yield is calculated a second time using the actual scrap is used for current manufacturing orders; the program then uses the lesser of the two calculations. For future and current periods, the quantity on the flow authorization is consumed on the first day. For past flow authorizations, the quantity is consumed using the daily supply quantity for previous days.
(5) Supply Activity: purchase order, manufacturing order, and flow receipts
(6) Unconsumed Demand: Unconsumed demand varies depending on the consumption code. If the consumption code is 0, unconsumed demand represents all requirements that are listed under consumption codes 1 and 2. If the consumption code is 1, unconsumed demand represents component requirements and flow requirements. If the consumption code is 2, unconsumed demand represents planned sales orders, transfer orders, transfer requisitions, and Synchro offset releases. If the consumption code is 3, all requirements listed under consumption codes 1 and 2 are consumed. Component requirements, flow requirements, demand transfer requisitions, and demand transfer orders are only processed if the parent part (as identified on the manufacturing order) is not a standard master scheduled item. (If the parent is standard master scheduled, the demand will be retrieved from the Tentative Master Schedule file.) If the status is closed or accounting closed, the issued quantity is considered as the unconsumed demand. Otherwise, the program uses the greater of the issued or required quantity.
Note that this is true if the part has a usage code of consumed. For a usage code of produced, the demand is considered by-product activity.
3. The Dependent Demand is determined in subroutine DETPDM: Demand for the part from master scheduled parents is retrieved from the Tentative Master Schedule file (MS160ML1) and saved in the weekly data structure. For JIT parents, demand is retrieved from MS160ML3, the daily tentative schedule is calculated (MSQTY times Qty Per), and demand is accumulated by week. The JIT calculations are performed in subroutine PRJITP. The required quantity is increased to account for the parent scrap factor.
4. Projected Demand consists of projected demand for the part plus any planning parent demand. All demand for one period is retrieved and saved in the projected demand data structure, and the first week in a period is saved on the weekly data structure. The projected demand per day rate is calculated as follows (in subroutine COMFOR):
RATE (per day)
|
=
|
PROJECTED DEMAND FOR PERIOD
NUMBER OF WORKING DAYS IN PERIOD
|
5. Demand Netting is performed in subroutine NETDEM. This is a method of examining the Projected Demand for the period and Consumable Demand for a week, and ending up with a Net Demand for the week.
a. If the requested planning period option is weekly, Consumable Demand on the weekly data structure is compared to Projected Demand on the projected demand data structure. The larger of the two figures is used as Net Demand if the week falls after the standard demand time fence, otherwise the consumable demand is used.
b. If the requested planning period option is monthly or by planning periods, a more complicated netting process is used. The Projected Demand is allocated over the number of weeks in the month or period, and for each week the Consumable Demand is compared to the remaining Projected Demand allocated to that week, and the larger of the two is used as Net Demand, if the week falls after the standard demand time fence, otherwise the consumable demand is used. This netting logic is explained in more detail in Exhibit 160-A.
c. For partial week processing (when a week covers the end of one period and the beginning of another), the week is divided into two fractions, one in each period. A fraction of the full week's demand for the period is then allocated to each section. The total forecast for the week is then calculated from the sum of these two sections. This logic is explained in more detail in Exhibit 160-B.
d. Once the Net Demand has been calculated, the Total Demand is calculated as follows:
TOTAL DEMAND
|
=
|
NET DEMAND
|
plus
|
UNPLANNED DEMAND
|
plus
|
UNCONSUMED DEMAND
|
plus
|
EDI DEMAND
|
TOTAL NET DEMAND
|
=
|
TOTAL DEMAND
|
minus
|
DEMAND ACTIVITY
|
|
|
|
|
6. The Master Schedule is processed. The user has two options: to calculate a new master schedule, or to display and modify an existing master schedule. (subroutine DETMSQ)
a. Calculate a new Master Schedule (subroutine CALCMS)
(1) The master schedule is a list of amounts that should be made each week to satisfy demand, as well as any target inventory or safety stock policies. The master scheduling process attempts to spread the master schedule evenly across the weeks in a planning period, with the target inventory or safety stock being available at the end of the period.
TOTAL DEMAND FOR PERIOD
|
plus
|
TARGET INVENTORY
|
minus
|
BEGINNING INVENTORY
|
minus
|
BY-PRODUCT SUPPLY
|
=
|
REQUIREMENT FOR PERIOD
|
TOTAL DEMAND FOR PERIOD
|
=
|
DEMAND ACTIVITY
|
minus
|
SUPPLY ACTIVITY
|
|
|
|
|
If the number of weeks specified by the Master Scheduling planning window have not passed:
REQUIREMENT FOR PERIOD
NUMBER OF DAYS IN PERIOD
|
times
|
DAYS IN WEEK
|
=
|
PROPOSED MASTER SCHEDULE QUANTITY PER WEEK
|
Otherwise, the entire tentative schedule for the period is placed into the first week.
The detailed logic used is illustrated in Exhibit 160-C at the end of this program description.
(2) Once the master schedule has been calculated, the projected inventory is recalculated until it is positive:
PROJECTED INVENTORY
|
=
|
BEGINNING INVENTORY
|
plus
|
MASTER SCHEDULE QUANTITY
|
minus
|
SUPPLY ACTIVITY
|
minus
|
TOTAL DEMAND
|
plus
|
DEMAND ACTIVITY
|
(3) If the order policy code is fixed quantity, quantity rules are applied.
b. Modification of an Existing Master Schedule. The master schedule will have been calculated previously. The schedule and the target inventory will be retrieved from the Tentative Master Schedule file (MS160M).
(1) From this screen, the user may call the Schedule Screen or the Demand Screen. The batch flag can also be changed; this flag, stored on the Part Master file, is used by the Batch Master Schedule Generation program (MS170E) to determine whether to process the part or not; if it is set to Y, the part will be bypassed by the batch program.
c. Modification of Target Inventory
(1) The user may change the target inventory. Any changes are validated and then, if valid, the following processing is performed.
(a) The master schedule is recalculated based on the new target inventory using the Calculate a Master Schedule routine described above.
The start of this calculation is determined as follows:
If a part is not a fixed-time part, the calculation is performed from the beginning of the period within which the target inventory has been changed or from the last point that target inventory was set, whichever is nearer to the change.
If a part is a fixed-time part, the calculation is performed from the last suggested tentative master schedule. The calculation continues until the end of the data.
(b) If the part is fixed time, the fixed-time rules are reapplied.
(c) The inventory is updated, as are the subfile and workfile. All this calculation is performed using the weekly data structure.
7. Updating the Master Schedule
Once the user is satisfied with the tentative master schedule, the Tentative Master Schedule file (MS160M) is updated from the asynchronous workfile (MS160AP) by the Tentative Master Schedule Generation - Asynchronous program (MS165E).
D. Demand Screen (subroutine PRCDEM)
1. This screen shows how total demand is spread between net, unplanned, and unconsumed, and EDI demand. It is loaded from the weekly data structure and starts at the beginning of the period containing the week requested on the detail screen and continues until the requested end date. It is accessed from the detail screen when the user selects a week and presses a function key.
2. The screen data is built:
a. The elements of demand (such as consumable demand, unplanned customer orders, and unconsumed demand) are displayed for the week. These quantities were determined in step C4, above.
b. If the request is for monthly or user-defined processing, EDI demand is retrieved from the forecast file and displayed.
c. If the schedule date is the same as the requested date, the line is highlighted.
3. From this screen, the user may press a function key to:
a. Access the Projected Demand Inquiry program (MS810E), to show where projected demand comes from.
b. Access the Sales Order Inquiry program (OP800E) (only if the Order Processing Module is installed), to show the planned and unplanned sales orders contributing to demand.
For these two inquiries, the user may exit to the inquiry program, make the required inquiry, and then return to the Tentative Master Schedule Maintenance program at the exact point it was left, so none of the planning work is lost.
c. Access the EDI screen.
E. Schedule Screen (subroutine PRCSCH)
1. The schedule screen displays the current schedule for the week selected, with each manufacturing order, flow authorization, purchase order, purchase requisition, transfer requisition, transfer order shown. For MRP parts, the orders are retrieved from IC100L19. For JIT parts, they are retrieved from JT100L10.
3. All data is displayed in order quantity units, as opposed to the detail screen, which considers quantities after scrapping. Flow authorizations do not include scrap. The difference between the total order quantity and the master schedule quantity is calculated to tell the user by how much the orders must be changed in order to match them to the tentative master schedule.
4. If any firmed or open manufacturing orders are displayed, the order quantity can be changed online, and then updated asynchronously by the Manufacturing Order Generation program (IC102E).
F. EDI Screen (subroutine PRCEDI)
1. The EDI screen is accessed from the Demand screen by pressing a function key. This screen is available only if the EDI module or the Future 3 Interface module is installed.
2. The totals for the four EDI demand types are displayed. These demand types were retrieved from Reference File category D26 in the Housekeeping routine.
EXHIBIT 160-A
Demand Netting Logic
This example illustrates how the system calculates the net demand for monthly or planning period masks.
EXAMPLE
Assumptions:
1) A four-week period
2) Each week contains 5 working days
3) Total projected demand for the period is 2000; thus initial demand for each week is 500 (2000/4)
A. For a period with no consumable demand:
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
0
|
500
|
500
|
2
|
0
|
500
|
500
|
3
|
0
|
500
|
500
|
4
|
0
|
500
|
500
|
Because there is no consumable demand in the period, the projected demand for each week is used as the net demand, provided the weeks fall after the standard demand time fence. Otherwise, consumable demand would be used.
B. For a period with consumable demand, where total consumable demand is less than projected demand:
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
200
|
200
|
2
|
750
|
750
|
750
|
3
|
150
|
200
|
200
|
4
|
850
|
850
|
850
|
This is calculated as follows:
1. The projected demand for the week is initially set at 500 and compared to the consumable demand for the four weeks in the period.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
-----------
|
500
|
2
|
750
|
-----------
|
500
|
3
|
150
|
-----------
|
500
|
4
|
850
|
-----------
|
500
|
2. In two cases (weeks 2 and 4) consumable demand is greater than projected demand. Therefore, net demand is set to the consumable demand.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
500
|
|
2
|
750
|
500
|
750
|
3
|
150
|
500
|
|
4
|
850
|
500
|
850
|
3. These amounts are subtracted from the total projected demand, leaving 400 (2000 - 750 - 850 = 400). This amount is allocated over the remaining two weeks (weeks 1 and 3), giving 200 per week.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
200
|
|
2
|
750
|
|
750
|
3
|
150
|
200
|
|
4
|
850
|
|
850
|
4. Because in weeks 1 and 3, the consumable demand is less than the allocated projected demand, the net demand is set to the projected demand, provided the weeks fall after the standard demand time fence. Otherwise, consumable demand is used.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
200
|
200
|
2
|
750
|
|
750
|
3
|
150
|
200
|
200
|
4
|
850
|
|
850
|
C. For a period with consumable demand, where total consumable demand is greater than projected demand:
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
150
|
125
|
150
|
2
|
850
|
850
|
850
|
3
|
200
|
125
|
200
|
4
|
900
|
900
|
900
|
This is calculated as follows:
1. The projected demand for the week is initially set at 500 and compared to the consumable demand for the four weeks in the period.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
-----------
|
500
|
2
|
850
|
-----------
|
500
|
3
|
200
|
-----------
|
500
|
4
|
900
|
-----------
|
500
|
2. In two cases (weeks 2 and 4) consumable demand is greater than projected demand. Therefore, net demand is set to the consumable demand.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
100
|
|
500
|
2
|
850
|
500
|
850
|
3
|
200
|
|
500
|
4
|
900
|
500
|
900
|
3. These amounts are subtracted from the total projected demand, leaving 250 (2000 - 850 - 900 = 250). This amount is allocated over the remaining two weeks (weeks 1 and 3), giving 125 per week.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
150
|
125
|
|
2
|
850
|
|
850
|
3
|
200
|
125
|
|
4
|
900
|
|
900
|
4. Since in weeks 1 and 3, the consumable demand is greater than the remaining projected demand, the net demand is set to the consumable demand.
Week
|
Consumable Demand
|
Projected Demand
|
Net Demand
|
1
|
150
|
125
|
150
|
2
|
850
|
|
850
|
3
|
200
|
125
|
200
|
4
|
900
|
|
900
|
EXHIBIT 160-B
Partial Week Processing
This example illustrates how the system allocates demand to a week that encompasses two periods with different projected demand quantities.
EXAMPLE:
Period 1: 23 working days; Projected Demand = 230
Period 2: 22 working days; Projected Demand = 440
Therefore,
Daily rate for period 1 = 230/23 = 10 per day
Daily rate for period 2 = 440/22 = 20 per day
For this example, there is no consumable demand.
The breakdown of the demand by week is as follows:
|
Period 1
|
Period 2
|
Total
|
Week
|
No. Days
|
Demand
|
No. Days
|
Demand
|
No. Days
|
Demand
|
1
|
5
|
50
|
|
|
5
|
50
|
2
|
5
|
50
|
|
|
5
|
50
|
3
|
5
|
50
|
|
|
5
|
50
|
4
|
5
|
50
|
|
|
5
|
50
|
5
|
3
|
30
|
2
|
40
|
5
|
70
|
6
|
|
|
5
|
100
|
5
|
100
|
7
|
|
|
5
|
100
|
5
|
100
|
8
|
|
|
5
|
100
|
5
|
100
|
9
|
|
|
5
|
100
|
5
|
100
|
Netting then proceeds as before, with one difference: if a consumable demand is allocated for that week, the remaining demand to be allocated is reduced by only a fraction of the consumable demand. This fraction equals the number of days in the week in this period divided by the number of days in a week (2/5 for period 2 above).
EXHIBIT 160-C
Calculating the Master Schedule
This example illustrates how the system calculates the master schedule quantities by attempting to satisfy demand and match target inventory levels for each period while smoothing the weekly master schedule quantities.
EXAMPLE:
Assumptions:
Part Q has safety stock of 1000 and a target inventory of two weeks.
Period 1 has 4 weeks. The beginning inventory level of Part Q in Period 1 is 400.
The initial demand looks like this:
Period
|
Week
|
Total Demand
|
Beginning Inventory
|
Target Inventory
|
|
|
|
400
|
|
1
|
1
|
500
|
|
|
|
2
|
1000
|
|
|
|
3
|
1500
|
|
|
|
4
|
1000
|
|
|
2
|
5
|
2000
|
|
|
|
6
|
1000
|
|
|
|
7
|
|
|
|
1. Two accumulations are made. First, the demand for period 1 is summed:
Period 1: 500 + 1000 + 1500 + 1000 = 4000
This calculation can be complicated by any supply activity (e.g., PO and MO receipts) and any demand activity (e.g., CO shipments or CR issues). The calculation is modified as follows:
PERIOD DEMAND
|
=
|
SUM OVER PERIOD OF (TOTAL DEMAND - DEMAND ACTIVITY + SUPPLY ACTIVITY)
|
This calculation is performed for each week in the period, and then for further weeks to cover any target inventory weeks requirement. In the example, the target inventory is for two weeks, so the demand for the first two weeks in the next period is calculated:
Target Inventory = 2000 + 1000 = 3000
The safety stock quantity must be added to this figure:
Target Inventory = 3000 + 1000 = 4000
Thus:
Period
|
Week
|
Total Demand
|
Beginning Inventory
|
Target Inventory
|
|
|
|
400
|
|
1
|
1
|
500
|
|
|
|
2
|
1000
|
|
|
|
3
|
1500
|
|
|
|
4
|
1000
|
|
4000
|
2
|
5
|
2000
|
|
|
|
6
|
1000
|
|
|
|
7
|
|
|
|
2. Second, the requirement for the period must be calculated:
REQUIREMENT
|
=
|
PERIOD DEMAND
|
+
|
TARGET INVENTORY
|
-
|
BEGINNING INVENTORY
|
-
|
ACTUAL DEMAND
|
+
|
ACTUAL SUPPLY
|
= 4000 + 4000 - 400
= 7600
3. This requirement is then evenly allocated over the weeks in the period, giving the master schedule quantity for each week:
MASTER SCHEDULE QUANTITY PER WEEK
|
=
|
REQUIREMENT
|
/
|
NO. OF WEEKS
|
|
=
|
7600
|
/
|
4
|
|
=
|
1900
|
|
|
Period
|
Week
|
Total Demand
|
MS Quantity
|
Projected Inventory
|
Target Inventory
|
|
|
|
|
400
|
|
1
|
1
|
500
|
1900
|
|
|
|
2
|
1000
|
1900
|
|
|
|
3
|
1500
|
1900
|
|
|
|
4
|
1000
|
1900
|
|
4000
|
2
|
5
|
2000
|
|
|
|
|
6
|
1000
|
|
|
|
|
7
|
|
|
|
|
4. The Projected Inventory is then calculated. This is basically the beginning inventory plus any supply activity minus any demand activity for the week.
PROJECTED INVENTORY
|
=
|
BEGINNING INVENTORY
|
+
|
SUPPLY
|
-
|
DEMAND
|
for week 1 = 400 + 1900 - 500
= 1800 (beginning inventory for week 2)
Period
|
Week
|
Total Demand
|
MS Quantity
|
Projected Inventory
|
Target Inventory
|
|
|
|
|
400
|
|
1
|
1
|
500
|
1900
|
1800
|
|
|
2
|
1000
|
1900
|
|
|
|
3
|
1500
|
1900
|
|
|
|
4
|
1000
|
1900
|
|
4000
|
2
|
5
|
2000
|
|
|
|
|
6
|
1000
|
|
|
|
|
7
|
|
|
|
|
Since, in this example, the projected inventory for week 1 is positive, no further processing is needed and 1900 will be used as that week's master schedule quantity. However, if the projected inventory quantity is negative, the master schedule quantity is increased.
5. The remaining period demand is calculated:
PERIOD DEMAND
|
=
|
PERIOD DEMAND
|
-
|
DEMAND FOR WEEK 1
|
= 4000 - 500
= 3500
The requirement for the remaining weeks in the period is calculated:
REQUIREMENT
|
=
|
PERIOD DEMAND
|
+
|
TARGET INVENTORY
|
-
|
BEGINNING INVENTORY
|
= 3500 + 4000 - 1800 = 5700
MASTER SCHEDULE QUANTITY PER WEEK
|
=
|
REQUIREMENT
|
/
|
NO. OF WEEKS
|
= 5700 / 3
= 1900
PROJECTED INVENTORY
|
=
|
BEGINNING INVENTORY
|
+
|
SUPPLY
|
-
|
DEMAND
|
for week 2 = 1800 + 1900 - 1000
= 2700 (beginning inventory for week 3)
6. The final two weeks are similarly allocated, resulting in the following:
Period
|
Week
|
Total Demand
|
MS Quantity
|
Projected Inventory
|
Target Inventory
|
|
|
|
|
400
|
|
1
|
1
|
500
|
1900
|
1800
|
|
|
2
|
1000
|
1900
|
2700
|
|
|
3
|
1500
|
1900
|
3100
|
|
|
4
|
1000
|
1900
|
4000
|
4000
|
2
|
5
|
2000
|
|
|
|
|
6
|
1000
|
|
|
|
|
7
|
|
|
|
|
The processing has therefore produced an even master schedule over the period, with enough stock remaining in the final week of the period to cover the target requirement.