Data Dictionary
>
FPSBASE Views
> FPSBASE.WIP_WAFER_HIST_LOOP
View FPSBASE.WIP_PLAN_DAY_HIST_PLUS
This view does some useful calculations like adding the ENDWIP columns to get num_lots_endwip and qty_endwip and similarly for num_lots_moved and qty_moved. It also calculates the total columns used in the CTM views. This view is a copy of WIP_END_SHIFT_HIST_PLUS and we should almost always use it rather than the WIP_PLAN_DAY_HIST table.
|
Column |
Comment |
|---|---|
|
START_PLAN_DAY |
Plan days must be 24 hours in length and the start of the plan day must be the start of one of the shifts. Contrast this to plan day which is independent of shift. (* inherited from FPSINPUT.CAL_PLAN_DAYS) |
|
END_PLAN_DAY |
It is critical that this field equal the start_plan_day of the next plan day. (* inherited from FPSINPUT.CAL_PLAN_DAYS) |
|
FACILITY |
Facility is included in almost every join in the DWH so this represents a definitive split. A route must have all steps on tools in the same facility. A tool must process all lots in the same facility. If your site has multiple buildings where lots run on routes using tools in multiple buildings then everything should be one facility. For example, multiple Fab buildings. But if your site has independent facilities like Fab and Test and Assembly where lot may progress from one to the next but on different routes then these should be different facilities. Since this column is in virtually every table it is critical that the value here is exactly matches what is in the MES if the MES has facility. Use facility_display for the display friendly name displayed in applications. See site_name comment for client/site/facility example. (* inherited from FPSINPUT.GEN_FACILITIES) |
|
PRD |
Prd determines the route which is used to process the lot in the facility and what tools, recipes, durables, etc. can be used at each step. Prd also determines the next facility for the lot when it finishes its route. For detailed information on prd vs. planprd see table comments in RTG_PLANPRDS. (* inherited from FPSINPUT.RTG_PRDS) |
|
PLANPRD |
Planning product used for all planning purposes. All lots with the same planprd are interchangeable to ship to the customer regardless of their prd, route, technology, wafer size, etc. For detailed information on prd vs. planprd see table comments in RTG_PLANPRDS. (* inherited from FPSINPUT.RTG_PLANPRDS) |
|
ROUTE |
Route that has threading requirements (* inherited from FPSINPUT.RTG_STEP_THREADING) |
|
STEP |
A single processing step within a route representing a single tool visit. Step is often a very complex string and should rarely be displayed. Instead we should use process_display. (* inherited from FPSINPUT.RTG_ROUTE_STEPS) |
|
BANK |
Lots which are not on a route are considered in a bank and the bank name indicates why the lot is off route. Bank must be NA for lots which are on a route. Our standard filter for active lots is bank = NA. (* inherited from FPSINPUT.RTG_BANKS) |
|
PLAN_PRIORITY |
Permanent priority of the lot set in the MES generally by planning. (* inherited from FPSINPUT.WIP_EVENT_HIST) |
|
IS_NONSTD |
Our column to indicate non-standard processing at the step. For example, an experiment or a chain that is only active at a particular step or set of steps and then goes back to being normal for the route. If an experiment is severe enough that it affects the final product and has to be planned separately then it will be its own prd or planprd. (* inherited from FPSBASE.WIP_LOT_HIST) |
|
LOT_TYPE |
Lot_type is the base of the hierarchy that determines lot_family then lot_group. Ideally lot_type will come straight from the MES with little modification. (* inherited from FPSINPUT.WIP_LOT_TYPES) |
|
LOT_FAMILY |
Lot_family is a grouping of lot_type which is mainly use for goal planning. We set goals by family and are allowed to switch goals for different lots of different types within the family. We also report goal performance by family. (* inherited from FPSINPUT.WIP_LOT_FAMILIES) |
|
LOT_GROUP |
Lot_group is a grouping of lot_family and is the highest grouping in the lot type hierarchy. There should be only a few values for lot_group, i.e. Prod, Dev, TW. We group WIP and moves by lot_group on the dashboard and we group cycle time calculations by lot_group so this is an important field. (* inherited from FPSINPUT.WIP_LOT_GROUPS) |
|
IS_TW |
Our standard filter to exclude test wafers is is_tw = N but what we really mean with this filter is to exclude any lots that do not add value for the facility. Lots which add value including sellable, development, and engineering and these lot groups should have is_tw set to N. Lots which do not add value are commonly grouped together and named "test wafers" which is why this flag is named is_tw. These include true test wafers like monitors and quals and dummies but also could include virtual lots used for training or testing, bare wafers, or really anything else including in the MES as a lot which does not add value. All of these lot groups should have is_tw set to Y. You could argue that the is_tw field might be more accurately named is_value or is_valuable or is_prod_eng_dev but is_tw is generally clear to most people. Plus it has the advantage that it is short which is nice given how frequently we use the is_tw = N filter. (* inherited from FPSINPUT.WIP_LOT_GROUPS) |
|
PRTY_CTM_GROUP |
This is one of the primary keys of our CTM tables. We use this group rather than the priority because we often have several different priorities which are close and are expected to have the same cycle time. (* inherited from FPSINPUT.WIP_PRIORITIES) |
|
PRTY_CTM_FACTOR |
Factor to multiply cycle time for this priority group compared to other groups if not known. For example, if this factor is 1.5 and we know the CTM is 6 hours for another priority group whose factor is 1.0 then we would estimate it to be 9 hours for this group. (* inherited from FPSINPUT.WIP_PRTY_CTM_GROUPS) |
|
NUM_LOTS_STARTWIP |
|
|
QTY_STARTWIP |
|
|
NUM_LOTS_ARRV_BEF_GPC |
|
|
QTY_ARRV_BEF_GPC |
|
|
NUM_LOTS_ARRV_AFT_GPC |
|
|
QTY_ARRV_AFT_GPC |
|
|
NUM_LOTS_MVIN |
|
|
QTY_MVIN |
|
|
NUM_LOTS_OPER_MVIN |
|
|
QTY_OPER_MVIN |
|
|
NUM_JOBS_COMP |
|
|
NUM_LOTS_COMP |
|
|
QTY_COMP |
|
|
NUM_JOBS_COMP_AUTO |
|
|
NUM_LOTS_COMP_AUTO |
|
|
QTY_COMP_AUTO |
|
|
NUM_LOTS_COMP_REWORK |
|
|
QTY_COMP_REWORK |
|
|
NUM_LOTS_ISKIP |
|
|
QTY_ISKIP |
|
|
NUM_LOTS_DSKIP |
|
|
QTY_DSKIP |
|
|
NUM_LOTS_RT_OR_PRD |
|
|
QTY_RT_OR_PRD |
|
|
NUM_LOTS_DTONLY |
|
|
QTY_DTONLY |
|
|
QTY_DELTA_FOR_DTONLY |
|
|
NUM_LOTS_REPEAT |
|
|
QTY_REPEAT |
|
|
NUM_LOTS_OPER_MOVES |
|
|
QTY_OPER_MOVES |
|
|
NUM_LOTS_OPER_COMPS |
|
|
QTY_OPER_COMPS |
|
|
NUM_LOTS_MOVED_NET |
|
|
QTY_MOVED_NET |
|
|
NUM_LOTS_MOVED_GROSS |
|
|
QTY_MOVED_GROSS |
|
|
NUM_LOTS_TO_REWORK |
|
|
QTY_TO_REWORK |
|
|
NUM_LOTS_SCRAP_PARTIAL |
|
|
QTY_SCRAPPED_PARTIAL |
|
|
NUM_LOTS_SCRAP_FULL |
|
|
QTY_SCRAPPED_FULL |
|
|
NUM_LOTS_STARTED |
|
|
QTY_STARTED |
|
|
NUM_LOTS_CREATED |
|
|
QTY_CREATED |
|
|
NUM_SPLITS_FROM |
|
|
NUM_SPLITS_TO |
|
|
NUM_MERGES_FROM |
|
|
NUM_MERGES_TO |
|
|
NUM_LOTS_SHIPPED |
|
|
QTY_SHIPPED |
|
|
NUM_LOTS_FINAL_SHIP |
|
|
QTY_FINAL_SHIP |
|
|
NUM_LOTS_ENDWIP_ENDED |
|
|
NUM_LOTS_ENDWIP_PROC |
|
|
NUM_LOTS_ENDWIP_DISP |
|
|
NUM_LOTS_ENDWIP_WAIT |
|
|
NUM_LOTS_ENDWIP_BLOCK |
|
|
NUM_LOTS_ENDWIP_HOLD |
|
|
NUM_LOTS_ENDWIP |
|
|
QTY_ENDWIP_ENDED |
|
|
QTY_ENDWIP_PROC |
|
|
QTY_ENDWIP_DISP |
|
|
QTY_ENDWIP_WAIT |
|
|
QTY_ENDWIP_BLOCK |
|
|
QTY_ENDWIP_HOLD |
|
|
QTY_ENDWIP |
|
|
NUM_CARR_ENDWIP_NOTHOLD |
|
|
NUM_CARR_ENDWIP_HOLD |
|
|
OMIT_FROM_CTM_DUE_TO_SHUTD |
|
|
Q_SEC_COMP_WAVG |
|
|
PROC_SEC_COMP_WAVG |
|
|
POSTP_SEC_COMP_WAVG |
|
|
STEP_SEC_ISKIP_WAVG |
|
|
STEP_SEC_DSKIP_WAVG |
|
|
STEP_SEC_RT_OR_PRD_WAVG |
|
|
STEP_SEC_DTONLY_WAVG |
|
|
Q_SEC_ENDWIP_WAVG |
|
|
PROC_SEC_ENDWIP_WAVG |
|
|
POSTP_SEC_ENDWIP_WAVG |
|
|
TOTAL_HOLD_SEC |
|
|
TOTAL_BLOCK_SEC_COMP |
|
|
TOTAL_DISP_SEC_COMP |
|
|
TOTAL_HOLD_SEC_COMP |
|
|
TOTAL_WAIT_SEC_COMP |
|
|
TOTAL_ENDED_SEC_COMP |
|
|
TOTAL_PROC_SEC_COMP |
|
|
TOTAL_STEP_SEC_ISKIP |
|
|
TOTAL_HOLD_SEC_DSKIP |
|
|
TOTAL_WAIT_SEC_DSKIP |
|
|
TOTAL_HOLD_SEC_RT_OR_PRD |
|
|
TOTAL_WAIT_SEC_RT_OR_PRD |
|
|
TOTAL_HOLD_SEC_DTONLY |
|
|
TOTAL_WAIT_SEC_DTONLY |
|
|
TOTAL_STEP_SEC |
Total number of unit-seconds accumulated by lots on hold at this step during the period including lots which moved out during the period and lots which remain at the end of the period. For example, if a 25 wafer lot is on hold at the step for 2 hours then it accumulates 25 wafers * 7200 seconds = 180000 wafer-seconds of hold time. (* inherited from FPSBASE.WIP_END_SHIFT_HIST) |
|
PROCESS |
Process defines what occurs at a step. Different steps can share the same process if they are identical. Process should normally determine allowed tools and recipe although it can be overridden by step, route, prd, lot, and experiment for exceptions. Each process is dynamically assigned to one or more eqp_type-process_family combinations with use_pct. One process_family is determined to be primary. If grouping is done correctly, a process should only be one eqp_group with no crossover. (* inherited from FPSINPUT.RTG_PROCESSES) |
|
PROCESS_DISPLAY |
The name of the process displayed on all dashboards and reports. We allow a longer more descriptive name here although often this will be the same as the process. (* inherited from FPSINPUT.RTG_PROCESSES) |
|
PROCESS_FAMILY |
See https://help.inficonims.com/display/DW/Guide+to+Process+Families. (* inherited from FPSINPUT.RTG_PROCESS_FAMILIES) |
|
PROCESS_GROUP |
Process group is the critical field where tools and processes come together for the purposes of Scheduler. Process group is in both EQP_TOOLS for the tools and in RTG_PROCESSES for processes. Ideally all tools that run the same set of processes with no crossover including back-up and emergency tools would be in the same process group but it is important to note that this is not technically required for Scheduler as long as all process groups are in the same sched group. (* inherited from FPSINPUT.RTG_PROCESS_GROUPS) |
|
PROCESS_CLASS |
Top-level grouping of process groups with same general purpose (i.e. Process or Metrology or Nonwafer). Allowed values are defined by FPS and are listed in FPSADMIN.RTG_PROCESS_CLASSES. This field can also be defined in EQP_TOOLS using the ovr_process_class field if we do not know it for the process group. (* inherited from FPSINPUT.RTG_PROCESS_GROUPS) |
|
PROCESS_SUBFAMILY |
Route step family is used for the Dashboard to separate processes in a process family based on shared but limited assignments. It is also the base for GP subfamily. (* inherited from FPSBASE.RTG_ROUTE_STEPS_PLUS) |
|
GP_SUBFAMILY |
GP_subfamily is used for Goal Planner and is an extension of process_family which can additionally include lot_group and an additional suffix. We populate GP_subfamily automatically based on process_family, process_subfamily, gp_subfamily_suffix, and add_lotgrp_to_gp_subfamily using the function GET_GP_SUBFAMILY. We build this starting with nvl(process_subfamily, process_family) followed by gp_subfamily_suffix if populated then followed by lot_group if add_lotgrp_to_gp_subfamily is set to Y. It is possible to have one or two or three parts. You might have values for process_family/process_subfamily/gp_subfamily_suffix/add_lotgrp of Furn/blank/blank/Y and that would give you gp_subfamilies of Furn/Prod and Furn/Dev. Or Furn/HighTemp/blank/Y would give you HighTemp/Prod and HighTemp/Dev. Or Sink/blank/FeedsOxFurn/N would give you Sink/FeedsOxFurn. And so on. (* inherited from FPSBASE.WIP_END_SHIFT_HIST) |
|
PROCESS_MODULE |
WIP_MODULE is used to credit moves and set goals. See comments on the module column in GEN_MODULES for info on this column and how it relates to eqp_module and mnt_module. (* inherited from FPSBASE.RTG_ROUTE_STEPS_PLUS) |
|
IS_IGNORE_WIP |
This flag is in both RTG_OPERATION_FAMILIES and RTG_PROCESSES. If the value is Y for either the operation family or the process then we do not count WIP at the route-step towards the total for the facility. Typically this is set for staging operations. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES) |
|
IS_IGNORE_MOVES |
This flag is in both RTG_OPERATION_FAMILIES and RTG_PROCESSES. If the value is Y for the operation family then we do not count moves from those operations as oper moves. If the value is Y for either the operation family or the process then we do not count moves from the route-step as completes even if our normal logic suggests that it should be a complete. This logic can cause confusion so here are a few important notes. 1) Dashboard does not read the is_ignore_moves flag therefore we must set move_type to DSKIP rather than COMP and we must set is_oper_move to N in order to ignore the move. 2) This flag is often used for staging steps but it is independent of the is_staging_step flag so if you want to ignore staging steps then you need to set these flags appropriately. 3) The flag in RTG_PROCESSES does not directly affect the oper moves but it does affect it indirectly if the is_comp_rqd_for_oper_move is set to Y. In that case, if the only move during the operation is for a process which is ignored then we do not have a complete during the operation and therefore will not count the move from the operation as an oper move since a complete is required. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES) |
|
OPERATION |
Operation is usually the primary level of routing in the MES and the level where the facility typically reports moves. FPS only allows one tool per step so our step is a lower level of routing than operation although both may be the same if the MES only allows one tool per operation. Note that because operation can include multiple steps and therefore multiple process families that we cannot have any association to equipment by operation. (* inherited from FPSINPUT.RTG_OPERATIONS) |
|
OPERATION_DISPLAY |
All xxx_display columns are used in place of the column xxx for display purposes. The values of these columns can be changed at any time without having to worry about other tables referencing it. (* inherited from FPSINPUT.RTG_OPERATIONS) |
|
OPERATION_FAMILY |
Grouping of route-step that is completely dependent on routing information from MES. The primary use of this field is for filtering on Operations Dashboard. Unfortunately for our database structure and naming convention, this field no longer has any link to operation. This is because operation is used primarily for Oper Moves and it is normal for steps in an operation to belong to multiple MES routing groups. For example, a sink step and a furnace step and a measurement step are in the same operation but each step belongs to the appropriate sink/furnace/measurement MES routing groups which we store in operation family. Since Dashboard already uses both operation and operation_family extensively and independently, we decided not to rename either column but simply remove the link. Please note that operation family is similar to process family and in fact they are often the same. The key differences are that operation family has nothing to do with equipment and that comes straight from ETL with no complex logic. Process family is the link between routing and equipment for the Operations Dashboard and therefore has complex logic. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES) |
|
ROUTE_SEGMENT |
Route_segment allows for clear hierarchical segment organization for Segment Summary and Line Viewer on Dashboard. This is often referred to as stage and typically will come from the MES (as opposed to facility_segment which we will typically have to define for our purposes). We recommend that all routes in the same route family have the same route segments in the same order so that the Line Viewer by route family will be consistent but if this is not the case then we approximate the order as best we can. (* inherited from FPSINPUT.RTG_ROUTE_STEPS) |
|
FACILITY_SEGMENT |
Facility segment is the parent of common step and is used as the highest level grouping when we show WIP for a route group or the entire facility where we cannot use route segment. We would prefer somewhere between 8 and 20 facility segments. Typically we will have to define these (as opposed to route_segment which we will typically come from the MES). There is no RTG_FACILITY_SEGMENTS table because sorting of facility segments is determined by common_step_sort. A trigger on RTG_COMMON_STEPS ensures that facility segments are contiguous when the entire facility is sorted by common step. (* inherited from FPSINPUT.RTG_COMMON_STEPS) |
|
LINE_SECTION |
Large grouping of the line, e.g. FEOL, BEOL, Cu, etc. There should be only a handful of values for the entire facility - or if the facility only has one section then we can leave this column blank. (* inherited from FPSINPUT.RTG_LINE_SECTIONS) |
|
CUSTOMER |
Customer who will accept shipment of the lot. Currently this only used for grouping and filtering but in the future we might want to allow a customer to view a Dashboard only including their products. (* inherited from FPSINPUT.GEN_CUSTOMERS) |
|
MAIN_ROUTE_FAMILY |
Route family of the main route for the prd of the lot. (* inherited from FPSINPUT.WIP_OVR_OPER_MOVES_HIST) |
|
MAIN_ROUTE_GROUP |
Route group of main route. Often referred to as technology. (* inherited from FPSBASE.WIP_FLUSH) |
|
WAFER_SIZE |
If the facility only has one wafer size then this column should be null in both RTG_PRDS and EQP_TYPES. If the facility has more than one wafer size then a value of null in EQP_TYPES means that those tools can run all wafer sizes. See column IS_ANY_WAFER_SIZE for details. (* inherited from FPSINPUT.GEN_WAFER_SIZES) |
|
TCT_SEC |
Theoretical cycle time in seconds (* inherited from FPSBASE.WIP_LOT_HIST) |
|
EST_SMP_PCT |
Smp_pct tells you what percentage of the lots complete on a tool. Some sites skip steps by jumping over them so we see the lot move from step 3 to step 5 and we only know that it jumped step 4 because step 4 is on the route between 3 and 5. Other sites skip steps by moving lots into them and then moving them out a second later so we see a move from 3 to 4 at 11:11:11 and a move from 4 to 5 at 11:11:12. We do not care how it is done but just that the lot did not process at step 4 -- and to be more specific that no tool capacity is required to process this lot at step 4 and no cycle time is accumulated at step 4. (* inherited from FPSBASE.WIP_GOAL_LOT_SHIFT) |
|
LOTGRP_CTM_FACTOR |
|
|
MAX_HOLD_SEC_FOR_WSF |
Prevent huge cycle times at steps where a minority of lots have been on hold for an exceedingly long time (* inherited from FPSINPUT.WIP_PRTY_CTM_GROUPS) |
|
MAX_STEP_SEC_NOHOLD_FOR_WSF |
Prevent huge cycle times at steps where a minority of lots have been waiting for an exceedingly long time (* inherited from FPSINPUT.WIP_PRTY_CTM_GROUPS) |
|
EST_GOAL_MOVES |
|
|
EST_GOAL_COMPLETES |
|
|
GOAL_OPER_MOVES |
Oper moves goal for the current shift. This should be recorded at only one step of the operation at it can be at any step not necessarily the last one. Since we do not get an oper move if we skip the entire operation, this is typically the maximum goal completes for any step in the operation. Some sites might calculate goal oper moves independently and potentially even get goal moves and completes from the goal oper moves. (* inherited from FPSINPUT.WIP_GOALS_PER_SHIFT) |
|
GOAL_WIP |
WIP goal for each shift. If you are using the GP logic in FPSAPP to get WIP goals for line balancing then you might want to pull those goals into this table to show on Dashboard. If not, this can be calculated by dividing the goal moves per day (from this logic) by the commit cycle time in days for the step (from CTM_SUMMARY_PLUS). (* inherited from FPSINPUT.WIP_GOALS_PER_SHIFT) |
|
LOT_GOAL_MOVES |
|
|
LOT_GOAL_COMPLETES |
|
|
LOT_GOAL_MOVES_NOCAP |
|
|
LOT_GOAL_COMPLETES_NOCAP |
|
|
CALENDAR_DAY |
When we choose this day on a website calendar we will associate with work_days of this day. Typically this is the day of the start_day but not always. For example, start_day might be 17:00 and represent the following calendar_day. (* inherited from FPSINPUT.CAL_WORK_DAYS) |
|
DAY_OF_WEEK |
This should be Mon, Tue, etc. (* inherited from FPSINPUT.CAL_WORK_DAYS) |
|
START_PLAN_WEEK |
Plan weeks must be 7 days in duration and the start of the plan week must be the start of one of the plan days. (* inherited from FPSINPUT.CAL_PLAN_WEEKS) |
|
END_PLAN_WEEK |
It is critical that this field equal the start_plan_week of the next plan week. (* inherited from FPSINPUT.CAL_PLAN_WEEKS) |
|
PLAN_WEEK |
Name of plan week must be unique and can be in any format as long as it is display friendly since this is what we show everywhere. (* inherited from FPSINPUT.CAL_PLAN_WEEKS) |
|
PLAN_WK_SHORT |
|
|
START_PLAN_MONTH |
This is the plan month not the calendar month. Start of the plan month must be the start of a plan week and each plan week must be within a single plan month. (* inherited from FPSINPUT.CAL_PLAN_MONTHS) |
|
END_PLAN_MONTH |
It is critical that this field equal the start_plan_month of the next plan month. (* inherited from FPSINPUT.CAL_PLAN_MONTHS) |
|
PLAN_MONTH |
Name of plan month must be unique and can be in any format as long as it is display friendly since this is what we show everywhere. We prefer that other tables should reference start_plan_month rather than plan_month in case we want to change the naming convention for the plan_month. (* inherited from FPSINPUT.CAL_PLAN_MONTHS) |
|
PLAN_MONTH_DISPLAY |
Particularly at sites which use a fiscal year starting in July we might want to show a longer month in certain places that includes the fiscal month and calendar month for clarity. (* inherited from FPSINPUT.CAL_PLAN_MONTHS) |
|
START_PLAN_QUARTER |
This is the plan quarter not the calendar quarter. Start of the plan quarter must be the start of a plan month and each plan month must be within a single plan quarter. (* inherited from FPSINPUT.CAL_PLAN_QUARTERS) |
|
PLAN_QUARTER |
Name of plan quarter must be unique and can be in any format as long as it is display friendly since this is what we show everywhere. We prefer that other tables should reference start_plan_quarter rather than plan_quarter in case we want to change the naming convention for the plan_quarter. (* inherited from FPSINPUT.CAL_PLAN_QUARTERS) |
|
PLAN_QUARTER_DISPLAY |
Particularly at sites which use a fiscal year starting in July we might want to show a longer quarter in certain places that includes the fiscal quarter and calendar quarter for clarity. (* inherited from FPSINPUT.CAL_PLAN_QUARTERS) |
|
START_PLAN_YEAR |
This is the plan year not the calendar year. Start of the plan year must be the start of a plan quarter and each plan quarter must be within a single plan year. (* inherited from FPSINPUT.CAL_PLAN_YEARS) |
|
PLAN_YEAR |
Name of plan year must be unique and can be in any format as long as it is display friendly since this is what we show everywhere. We prefer that other tables should reference start_plan_year rather than plan_year in case we want to change the naming convention for the plan_year. (* inherited from FPSINPUT.CAL_PLAN_YEARS) |
|
PLAN_YEAR_DISPLAY |