Data Dictionary
>
FPSAPP Tables
> FPSAPP.WIP_LOTS_REALTIME
Table FPSAPP.WIP_LOTS_REALTIME"
Our main WIP status table updated by every event logged to WIP_EVENT_HIST via the WIP_EVENT_HIST_INSERT_AFT trigger and then the WIP_LOTS_REALTIME_UPDATE_BEF trigger.
-
Schema: FPSAPP
-
Tablespace: FPSDATA
|
Column |
Type |
Nullable |
Comment |
|---|---|---|---|
|
LOT |
VARCHAR2(32) |
A lot is a group of units that process together. Usually lot_id or lot_number in MES. All units in a lot are in the same carrier but there may be multiple lots in a carrier. (* from FPSINPUT.WIP_LOTS_STATIC) |
|
|
ABORT_INST |
DATE |
When a lot has begun processing on a tool and an event with event_type of ABORT is logged, abort_inst captures the time of the abort. If multiple aborts happen to the same lot, the last abort_inst is used. See description of ABORT ect_state for more details. (* from FPSBASE.WIP_STEP_HIST) |
|
|
ACTIVE_CODE |
VARCHAR2(1) |
N |
|
|
ACTUAL_CH_USED |
VARCHAR2(24) |
Here is where we can log the actual_ch_used directly if we know it. We have three ways to determine actual_ch_used in WIP_LOTS_REALTIME which populates WIP_STEP_HIST: 1) Log it directly in this colum for an event where the logged_entity is the main tool. 2) Log events to each of the chambers used in WIP_EVENT_HIST. 3) Log events to each of the chambers used in WIP_WAFER_HIST. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
ACTUAL_DURABLE_USED |
VARCHAR2(129) |
Actual durable used as logged by the tool during processing of the lot. This can be a comma delimited string if multiple durables are used. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
ACTUAL_MACHINE_RECIPE |
VARCHAR2(100) |
Machine recipe used to process the lot as logged during processing by the tool. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
ALLOWED_TOOL_LIST |
VARCHAR2(512) |
||
|
BANK |
VARCHAR2(36) |
N |
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. (* from FPSINPUT.RTG_BANKS) |
|
BANK_IN_OR_OUT_INST |
DATE |
N |
|
|
BATCH_CRITERIA |
VARCHAR2(140) |
Lots that can run on the same batch TOOL and have the same value of BATCH_CRITERIA can run together in a batch. Therefore this is a critical column for scheduling on batch tools. If BATCH_CRITERIA is not populated, Scheduler defaults to the assumption that any WIP with the same EST_MACHINE_RECIPE can be batched together. Keep in mind that many MESs have additional constraints on batching (for example, that all WIP in a batch has the same SCRIPT_ID) and these must be incorporated into BATCH_CRITERIA to ensure that the batches are allowed by the MES. (* from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
|
BEG_PROC_INST |
DATE |
time when the lot started processing on the main tool. (* from FPSINPUT.WIP_STEP_HIST_MANUAL) |
|
|
BEG_PROC_INST_AUTO |
DATE |
||
|
BEST_CURR_RANK_LONG_DETAILS |
VARCHAR2(512) |
||
|
BEST_TOOL |
VARCHAR2(16) |
||
|
BLOCK_SEC_COMP_FOR_WSF |
NUMBER(7) |
||
|
CANCEL_INST |
DATE |
Time when tool reservation or dispatch or perhaps even load or ready for the lot at the current step was cancelled. After cancel_inst the lot is available to any qualified tool immediately. (* from FPSBASE.WIP_STEP_HIST) |
|
|
CARRIER |
VARCHAR2(32) |
N |
RFID of the cassette or FOUP the lot is currently in. (* from FPSINPUT.MHS_CARRIERS) |
|
CARRIERS_IN_JOB |
NUMBER(2) |
Set to the number of carriers in the job. The value in WIP_EVENT_HIST represents the number of carriers which have started processing in this job *so far*, while the value in WIP_STEP_HIST (written after the job completes processing) represents the total number of carriers in the job. (* from FPSBASE.WIP_LOT_HIST) |
|
|
CARRIER_INST |
DATE |
When the carrier was last populated with the event. Since we carry over the previous value of carrier we need to know this to compare to the updated_inst in WIP_LOTS_STATIC and use the newest information for carrier. (* from FPSBASE.WIP_LOT_HIST) |
|
|
CH_USED_DISP_SUFFIX |
VARCHAR2(256) |
||
|
COMMON_STEP |
VARCHAR2(50) |
A display-friendly field that groups similar steps together for purposes of viewing the entire line. Typically the only duplicates within a single route will be optional ordered steps in the same segment. But we will often have steps across routes that share the same common step even though exact step definition is not identical. (* from FPSINPUT.RTG_COMMON_STEPS) |
|
|
COST_PER_JOB |
NUMBER(6) |
Cost to process each job on a tool in this eqp type. In WIP_STEP_HIST we use this and cost per unit to record cost per lot after each complete on a tool. (* from FPSINPUT.EQP_TYPES) |
|
|
COST_PER_UNIT |
NUMBER(6) |
Cost to process each unit on a tool in this eqp type. In WIP_STEP_HIST we use this and cost per job to record cost per lot after each complete on a tool. (* from FPSINPUT.EQP_TYPES) |
|
|
COUNT_AS_OPER_MOVE |
CHAR(1) |
If the use_count_as_oper_move_flag is set to Y in GEN_FACILITIES then we use this flag to determine oper moves instead of using moves from one operation to another. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
CURR_PRIORITY |
VARCHAR2(7) |
N |
The priority at the current step. As the lot moves along the route after LAST_STEP_CURR_PRTY it will revert to PLAN_PRIORITY. For example, timelink or sendahead priority is only temporary. (* from FPSINPUT.WIP_LOTS_STATIC) |
|
CURR_PRIORITY_REASON |
VARCHAR2(128) |
An optional description of why the priority is set as it is. This is typically shown as additional information on pages related to priority lots. (* from FPSINPUT.WIP_LOTS_STATIC) |
|
|
CURR_RANK |
VARCHAR2(1) |
Current rank is dynamically calculated based on the permanent rank, temporary rank, external rank, and current conditions like tool status and current setup. Cases when it is greater than permanent rank include when the required setup does not match or when APC thread is not qualified. The only way it could be less are when either the temporary rank or external rank are set. Curr_rank is populated in WIP_EVENT_HIST for each event logged to a tool by trigger with the value from WIP_STEP_FUT_ASSIGNMENTS at the time of the event. (* from FPSBASE.WIP_LOT_HIST) |
|
|
DISPATCHED_BY |
VARCHAR2(64) |
||
|
DISPATCH_INST |
DATE |
Time when the lot indicated in the MES that it will process on the tool. As opposed to reserve, dispatch cannot be automatically undone. (* from FPSBASE.WIP_STEP_HIST) |
|
|
DISP_SEC_COMP_FOR_WSF |
NUMBER(7) |
||
|
DO_NOT_COUNT_OPER_MOVE_FROM |
CHAR(1) |
We might never want to count oper moves from certain special operations like staging or adhoc. (* from FPSINPUT.RTG_OPERATIONS) |
|
|
DURABLE_THP_VARIATION |
VARCHAR2(64) |
When this column is populated that means that we have a choice of durable families and that processing time for the lot/recipe depends on which durable family is chosen. The most common use case is 8 pin and 16 pin probe cards. This will be blank for reticles and other cases where the throughput is not dependent on the durable. This is part of the primary key of our throughput logic where nulls are filled in as NA since PK columns cannot be null. In our first example, we have a recipe WAFER_TEST_1 that we use for a whole bunch of different prds. Each prd requires its own probe card but for throughput purposes we do not care about the prd. We just care about the recipe which is WAFER_TEST_1 and we would set duration_thp_variation to 8pin or 16pin. Then we would group all prds that use WAFER_TEST_1 and ran with an 8 pin probe card together in the same THP record. Our second example is similar to the first but for throughput purposes each prd will be different. We would set duration_thp_variation to the durable family for this case. In our third example, the recipe is different for each prd. In this case, we would set duration_thp_variation to either 8pin and 16pin or to the durable family and get the same result. (* from FPSINPUT.RTG_DURABLE_FAMILIES) |
|
|
ECT_FROM_INST |
DATE |
N |
|
|
ECT_HIST_SEQ_WITHIN_SEC |
NUMBER(4) |
N |
|
|
ECT_STATE |
VARCHAR2(42) |
N |
ECT state is the lowest level state of our Enhanced Cycle Time hierarchy and the value which is stored in WIP_LOTS_REALTIME and ECT_HIST. We can lookup all information about the ECT state including process state in ECT_STATE_DIAGRAM. (* from FPSADMIN.WIP_ECT_STATES) |
|
ECT_STATE_CHG_EVENT |
VARCHAR2(48) |
N |
|
|
ECT_STATE_CHG_EVENT_TYPE |
VARCHAR2(12) |
N |
|
|
ECT_STATE_CHG_INST |
DATE |
N |
|
|
ECT_STATE_IF_DISP_WOUT_MHS |
VARCHAR2(12) |
||
|
ECT_STATE_IF_WAIT |
VARCHAR2(12) |
N |
|
|
ECT_UPDATED_BY |
VARCHAR2(30) |
N |
|
|
ECT_UPDATED_COMMENT |
VARCHAR2(512) |
||
|
ECT_UPDATED_TIME |
TIMESTAMP(6) |
N |
|
|
EET_SEC |
NUMBER(7) |
End-to-end time in seconds (* from FPSBASE.WIP_LOT_HIST) |
|
|
ENDED_SEC_FROM_THP |
NUMBER(7) |
||
|
END_PROC_INST |
DATE |
time when the lot finished processing on the main tool. (* from FPSINPUT.WIP_STEP_HIST_MANUAL) |
|
|
END_PROC_INST_AUTO |
DATE |
||
|
EQP_TYPE_OF_RS |
VARCHAR2(50) |
||
|
EQP_TYPE_OF_TOOL |
VARCHAR2(50) |
||
|
EST_CH_USED |
VARCHAR2(24) |
Estimate of which chambers will used to process this lot based on assignments and status (* from FPSBASE.WIP_LOT_HIST) |
|
|
EST_DURABLE_USED |
VARCHAR2(129) |
This field is populated with our estimate of what durable will be used based on information from the MES and/or Recipe Management System combined with the location and status of each durable. (* from FPSBASE.WIP_LOT_HIST) |
|
|
EST_MACHINE_RECIPE |
VARCHAR2(100) |
Estimated machine recipe what we estimate will be the machine recipe based on information from the Recipe Management System. It is used in combination with process for throughput calculations and setup change penalty calculations. It is not necessary to estimate for all processes since this is always used in combination however it needs to be NA rather than blank since it is part of the primary key of most THP tables. Hopefully when this is not NA it should match the actual machine recipe logged for each lot during processing. (* from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
|
EVENT |
VARCHAR2(48) |
This is the event registered in the MES. This is for the historical record and display only. Each event is mapped to an FPS event_type and the event_type is what is used by FPS applications. (* from FPSINPUT.WIP_EVENTS) |
|
|
EVENT_COMMENT |
VARCHAR2(512) |
Comment associated with the event. (* from FPSINPUT.WIP_HOLD_FUTURE) |
|
|
EVENT_INST1 |
DATE |
User-defined field which can store any instant relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_INST2 |
DATE |
User-defined field which can store any instant relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_INST3 |
DATE |
User-defined field which can store any instant relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_INST_IF_IN_PAST |
DATE |
||
|
EVENT_NUM1 |
NUMBER(10) |
User-defined field which can store any number relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_NUM2 |
NUMBER(10) |
User-defined field which can store any number relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_NUM3 |
NUMBER(10) |
User-defined field which can store any number relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_PARM1 |
VARCHAR2(128) |
User-defined parameter which can store any value relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_PARM2 |
VARCHAR2(128) |
User-defined parameter which can store any value relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_PARM3 |
VARCHAR2(128) |
User-defined parameter which can store any value relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_PARM4 |
VARCHAR2(128) |
User-defined parameter which can store any value relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_PARM5 |
VARCHAR2(128) |
User-defined parameter which can store any value relevant to the event. Description of use should be noted in WIP_EVENTS table. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
EVENT_TYPE |
VARCHAR2(12) |
Event Type (* from FPSINPUT.EQP_SCHED_EVENTS_MANUAL) |
|
|
FACILITY |
VARCHAR2(6) |
N |
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. (* from FPSINPUT.GEN_FACILITIES) |
|
FACILITY_ENT_INST |
DATE |
N |
|
|
FACILITY_SEGMENT |
VARCHAR2(36) |
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. (* from FPSINPUT.RTG_COMMON_STEPS) |
|
|
FACILITY_SEGMENT_ENT_INST |
DATE |
||
|
FAC_SHUTD_PCT |
NUMBER(3) |
||
|
FAC_SHUTD_PCT_CHG_INST |
DATE |
||
|
FIRST_LOT_IN_JOB |
VARCHAR2(32) |
The first lot in the job determined by the order of events. When this first lot logs the first tool event which is usually a reserve or dispatch then the job_id is created with only this lot. Then subsequent lots join this job. While we use job_id to identify lots that will process or are processing or processed together, first_lot_in_job is still a useful field. (* from FPSBASE.WIP_LOT_HIST) |
|
|
FIRST_UNIT_SEC |
NUMBER(9,3) |
Time for one unit to process when the tool starts from a standby state. On a batch tool -- defined as a tool where all units process together and take the same time regardless of qty -- this is the time for the batch. See our complete throughput documentation for more details. (* from FPSINPUT.THP_EXTERNAL) |
|
|
HOLD_FOR |
VARCHAR2(48) |
The user responsible for the hold lot. Note this is different than the user who put the lot on hold. This is the person who needs to address the hold and potentially release it. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
HOLD_GROUP |
VARCHAR2(36) |
Grouping of hold_type for reporting purposes. (* from FPSINPUT.WIP_HOLD_GROUPS) |
|
|
HOLD_NOTE |
VARCHAR2(512) |
Comment or note entered when the lot went on hold. Normally this should match the comment which was entered in the hold event. The logic to determine the hold note can get tricky when a subsequent comment event is logged to a lot already on hold because we do not know whether to update the hold note with the new comment or keep the comment from the original event that put the lot on hold. Our solution is to not update the hold_note by trigger with this comment event and leave the decision to our logic in WIP_LOTS_VERIFY. If you want to use the subsequent comment then populate it as the hold_note in WLV otherwise keep the original comment in WLV. Then our logic in CHK_WIP_LOTS_REALTIME is that if the hold_note written in WIP_LOTS_VERIFY differs from the hold_note populated by trigger while the hold_type and hold_for agree then we waive the normal 20 minute waiting period and update the hold_note immediately with a MISS-HOLDNOTE event. (* from FPSINPUT.WIP_LOTS_VERIFY) |
|
|
HOLD_SEC_COMP_FOR_WSF |
NUMBER(7) |
||
|
HOLD_SEC_FOR_WSF_TO_EOL |
NUMBER(11) |
||
|
HOLD_TYPE |
VARCHAR2(24) |
Generally hold_type will come directly from the MES. (* from FPSINPUT.WIP_HOLD_TYPES) |
|
|
IF_WAIT_UPDATED_INST |
DATE |
||
|
IGNORE_BATCH_FOR_INC_BATCH_PCT |
CHAR(1) |
This flag will allow batch thp tools to not report any incomplete batch pct for ETP if set to Y. This should rarely be used for tools that should schedule as batch tools but not report any ETP loss because of the batch size. This configuration is created specifically for the Mattson Asher tools (* from FPSINPUT.EQP_TOOLS) |
|
|
INC_BATCH_PCT |
NUMBER(3) |
Percentage of the full batch size processed. For tool performance calculations, TOOL_PCT percentage productivity is calculated using INC_BATCH_PCT to factor in that the batch size is not fully utilized. (* from FPSBASE.WIP_LOT_HIST) |
|
|
INSERTED_TIME_WEH |
TIMESTAMP(6) |
||
|
INST |
DATE |
N |
Time when the event occurred. (* from FPSINPUT.WIP_EVENT_HIST) |
|
INTERVAL_SEC |
NUMBER(9,3) |
Unit_int_sec or batch_int_sec expected for the lot at the time of processing from our THP tables. (* from FPSBASE.WIP_LOT_HIST) |
|
|
IS_ALREADY_COMP_THIS_OPER |
CHAR(1) |
N |
|
|
IS_BATCH_THP |
CHAR(1) |
This is a critical value for throughput calculations. Throughput for batch tools is the same regardless of the qty in the batch. Throughput for non-batch tools varies based on the qty in the job. Usually this is Y when max_batch_size_carriers > 1 but not always. We can have tools who load multiple carriers together but whose throughput is calculated per unit. We can also have tools who load only single carriers but whose throughput is calculated per batch. (* from FPSINPUT.EQP_TYPES) |
|
|
IS_DELETE_EVENT |
CHAR(1) |
If the event results in this lot being deleted then logic in the trigger will set this to Y. This flag indicates that we should delete this lot from WIP_EVENTS_CURR_STEP and WIP_STEP_FUTURE in via subsequent triggers. There are two correct ways to delete a lot. One is to log an event with the qty set to 0 (i.e. merge or scrap or terminate). Two is to log an event where next_facility is set to a facility which is not in GEN_FACILITIES (i.e. ship). Then there is case three where the lot disappears from WIP_LOTS_VERIFY with no event designating this. Case three means the ETL needs to be improved to log the proper event so it becomes case one or two. (* from FPSBASE.WIP_LOT_HIST) |
|
|
IS_DURABLE_ASSIGNED |
CHAR(1) |
||
|
IS_ECT_STATE_CHG |
CHAR(1) |
N |
|
|
IS_EVENT_AUTO |
CHAR(1) |
||
|
IS_EXPT_STEP |
CHAR(1) |
N |
Flag set to Y if the experiment requires abnormal processing at this step. (* from FPSBASE.WIP_LOT_HIST) |
|
IS_FAC_SHUTD_PCT_CHG |
CHAR(1) |
N |
|
|
IS_FROM_MSO_PROCESS |
CHAR(1) |
||
|
IS_HOLD |
CHAR(1) |
N |
This field indicates the lot is on hold after the event is logged. In other words, this will always be Y if is_hold_start is Y and always N if is_hold_end is Y. (* from FPSINPUT.WIP_EVENT_HIST) |
|
IS_HOLD_END |
CHAR(1) |
N |
Event ended hold (* from FPSINPUT.WIP_EVENT_HIST) |
|
IS_HOLD_START |
CHAR(1) |
N |
Event started hold (* from FPSINPUT.WIP_EVENT_HIST) |
|
IS_IGNORE_MOVES |
CHAR(1) |
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. (* from FPSINPUT.RTG_OPERATION_FAMILIES) |
|
|
IS_IGNORE_OPER_MOVES |
CHAR(1) |
||
|
IS_IGNORE_WIP |
CHAR(1) |
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. (* from FPSINPUT.RTG_OPERATION_FAMILIES) |
|
|
IS_INACTIVE_STEP |
CHAR(1) |
N |
Since we now use RTG_ROUTE_STEPS_INACTIVE table, we should only include the active steps on each route in RTG_ROUTE_STEPS. Therefore this value must be set to N in the RTG_ROUTE_STEPS table but will be set appropriately to Y for inactive steps in the RTG_ROUTE_STEPS_PLUS table. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
IS_IN_WSH |
CHAR(1) |
||
|
IS_MHS_STATE_CHG |
CHAR(1) |
N |
|
|
IS_NEXT |
CHAR(1) |
N |
Indicates record goes into WIP_STEP_HIST (* from FPSBASE.WIP_LOT_HIST) |
|
IS_NONSTD |
CHAR(1) |
N |
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. (* from FPSBASE.WIP_LOT_HIST) |
|
IS_REAL_TOOL |
CHAR(1) |
Flag indicating whether tool physically exists. An example where this is not set would be lot start or visual inspect. (* from FPSINPUT.EQP_TYPES) |
|
|
IS_REWORK |
CHAR(1) |
N |
Y indicates the lot is on a rework route after the event is logged. If a lot is reworked then returns to the main route and repeats some steps, is_rework will be N but we will count those steps as repeats. (* from FPSINPUT.WIP_EVENT_HIST) |
|
IS_REWORK_END |
CHAR(1) |
N |
Event ended rework (* from FPSINPUT.WIP_EVENT_HIST) |
|
IS_REWORK_START |
CHAR(1) |
N |
Event started rework (* from FPSINPUT.WIP_EVENT_HIST) |
|
IS_SCRAP_EVENT |
CHAR(1) |
If the event results in any number of units in the lot to be scrapped then this field is set to Y. It is common to have scrap occur not only from a scrap event but also from a move event where the lot loses some but not all units. Therefore we cannot just look at scrap events and this flag tells what to count as scrap for this particular facility. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
IS_SHIP_EVENT |
CHAR(1) |
This flag tells us what to count as a ship for a particular facility. Related to the ship event is the finish event which is the last event for a facility-prd which either changes facility or changes prd or terminates the lot by changing the qty to 0 without merging. Often the ship event is the same event as the finish event. But when the ship event is different and logged prior to the finish event, we write a record to CTM_FINISHED_LOT_HIST when the ship event is logged with finish_inst blank. This record is include in Dashboard Ships Summary but not in Finished Lot Cycle Time. Then later when the lot finishes, we update the record keeping the ship_inst and populating the finish_inst so it is then including in Finished Lot Cycle Time. Technically this "insert at ship then update at finish" process is the same regardless of how far the ship is before the finish but it is most critical when the the ship is quite some time before the finish, for example, when wafer test is part of the same route but we want to count the ship when the lot finishes the fab steps. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
IS_STAGING_STEP |
CHAR(1) |
N |
We expect large amounts of WIP and long cycle times at staging steps. We still calculate cycle time like any other step but the important difference is that lots currently at a staging step are not counted as normal coming lots to future steps. Instead we show them in a special column labeled From Staging. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
IS_STEP_ENT_FROM_MISS |
CHAR(1) |
N |
|
|
IS_TO_MSO_PROCESS |
CHAR(1) |
||
|
IS_TW_USE |
CHAR(1) |
Applicable to TW routes only. If N (default), then this step is part of the process of building the test wafer. If Y, then this step is one at which the TW is used for process characterization by the owning module. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
JOB_DEBUG_INFO |
VARCHAR2(128) |
Debug information written by trigger regarding the population of the job-related fields for each event. (* from FPSBASE.WIP_LOT_HIST) |
|
|
JOB_ID |
VARCHAR2(64) |
Automatically set by trigger when the first lot of a job logs an event to the tool. (* from FPSBASE.WIP_LOT_HIST) |
|
|
LAST_EVENT |
VARCHAR2(48) |
N |
|
|
LAST_EVENT_INST |
DATE |
N |
|
|
LAST_EVENT_TYPE |
VARCHAR2(12) |
||
|
LAST_HOLD_INST |
DATE |
Time when the lot was last placed on hold. (* from FPSBASE.WIP_FLUSH) |
|
|
LAST_HOLD_RELEASE_INST |
DATE |
||
|
LAST_PROCESS_TOOL |
VARCHAR2(16) |
For rework and scrap events we automatically look up the last process tool for the lot. Process tool is determined by the process class of the tool and excludes metrology and support tools. It is likely this was the cause of the rework or scrap although by no means certain. (* from FPSBASE.WIP_LOT_HIST) |
|
|
LAST_PROCESS_TOOL_BEG_INST |
DATE |
Time when the lot finished processing on the previous tool (excluding metrology). (* from FPSBASE.WIP_LOT_HIST) |
|
|
LAST_RELEASE_INST |
DATE |
Time the lot was previously released from hold. (* from FPSBASE.WIP_STEP_HIST) |
|
|
LAST_STEP_CURR_PRTY |
VARCHAR2(256) |
The last step where the current lot_priority applies. After this step we assume the lot will return to its plan_priority. (* from FPSINPUT.WIP_LOTS_STATIC) |
|
|
LAST_TOOL |
VARCHAR2(16) |
For rework and scrap events we automatically look up the last tool where the lot processed including metrology tools. (* from FPSBASE.WIP_LOT_HIST) |
|
|
LAST_TOOL_BEG_INST |
DATE |
Time of the last event on the previous tool (including metrology) for the lot occurred. (* from FPSBASE.WIP_LOT_HIST) |
|
|
LINE_SECTION |
VARCHAR2(32) |
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. (* from FPSINPUT.RTG_LINE_SECTIONS) |
|
|
LOGGED_ENTITY |
VARCHAR2(36) |
Entity to which event is logged in the MES. This could be a main tool, subtool, entity, or port. In MNT tables this could be a vehicle or durable as well which is why the column width is wider. If main tool or port, we apply the event to all entities. If subtool we apply to all within the subtool. If entity we apply only to the entity. (* from FPSINPUT.EQP_EVENT_HIST) |
|
|
LOGICAL_RECIPE |
VARCHAR2(100) |
Used for infomational purpose and is populated if known otherwise it will match the recipe. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
LOGS_AUTO_BEGIN |
CHAR(1) |
For tools that log auto begin events we want the manual begin (i.e. the MES lot start or batch start or track in) to count as a DISPATCH event. But for tools which do not log auto begin events, we want the manual begin to count as a BEGIN_M event. We automatically calculate logs_auto_begin for each tool and then we set events which are configured as BEGIN_M in WIP_EVENTS to DISPATCH where logs_auto_begin is Y. (* from FPSBASE.EQP_TOOLS_PLUS) |
|
|
LOTS_IN_JOB |
NUMBER(2) |
Set to the number of lots in the job. The value in WIP_EVENT_HIST represents the number of lots which have started processing in this job *so far*, while the value in WIP_STEP_HIST (written after the job completes processing) represents the total number of lots in the job. (* from FPSBASE.WIP_LOT_HIST) |
|
|
LOT_SEQ_WITHIN_SEC |
NUMBER(6,2) |
N |
For rows with identical timestamps, sequence records to get proper sequence (* from FPSINPUT.WIP_EVENT_HIST) |
|
LOT_TYPE |
VARCHAR2(24) |
N |
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. (* from FPSINPUT.WIP_LOT_TYPES) |
|
MADE_CASCADE |
CHAR(1) |
||
|
MAIN_ROUTE |
VARCHAR2(256) |
N |
Primary route used by the prd. Excludes rework and alternate routing. We allow this column to be null in WIP_LOTS_VERIFY because we may not be certain what the main route is when we fix for missed events. In that event we trust the WIP_EVENT_HIST triggers has loaded the correct information into WIP_EVENTS_CURR_STEP. (* from FPSINPUT.WIP_EVENT_HIST) |
|
MAIN_ROUTE_FAMILY |
VARCHAR2(36) |
Route family of the main route for the prd of the lot. (* from FPSINPUT.WIP_OVR_OPER_MOVES_HIST) |
|
|
MAIN_RT_COMMON_STEP |
VARCHAR2(50) |
||
|
MAIN_RT_OPERATION |
VARCHAR2(50) |
||
|
MAIN_RT_OPER_ENT_INST |
DATE |
N |
|
|
MAIN_RT_PROCESS |
VARCHAR2(50) |
||
|
MAIN_RT_PROCESS_MODULE |
VARCHAR2(12) |
||
|
MAIN_RT_REMAINING_DETAILS |
VARCHAR2(128) |
||
|
MAIN_RT_REMAINING_PCT |
NUMBER(5,3) |
On the Lots search page in the Dashboard 5.4, we show a bar from the time the lot started in the current facility until its due date. On this bar we show a red pace arrow as we do on all of our fill-up bars to show where the lot should be now to be on schedule based on the commit cycle time from the start to the due date. This red arrow is at a time we call pull_point_pace_inst and in order to calculate this time, we first calculate route_remaining_pct. Route_remaining_pct is the commit cycle time remaining divided by total commit cycle time. Then pull_point_pace_inst is that percentage remaining from facility_ent_inst to pull_point_inst. The calculation is facility_ent_inst + ((pull_point_inst - facility_ent_inst) * route_remaining_pct / 100). |
|
|
MAIN_RT_SEQ_NUM |
NUMBER(7,2) |
||
|
MAIN_RT_STEP |
VARCHAR2(256) |
N |
When lot is on a rework or alternate route, this is the step where it will return to the main route. We use this for planning purposes so we can calculate remaining steps. We allow this column to be null in WIP_LOTS_VERIFY because we may not be certain what the main route step is when we fix for missed events. In that event we trust the WIP_EVENT_HIST triggers has loaded the correct information into WIP_EVENTS_CURR_STEP. (* from FPSINPUT.WIP_EVENT_HIST) |
|
MAX_BATCH_SIZE_CARRIERS |
NUMBER(2) |
Maximum number of carriers which can be loaded together in a batch. This column must be populated and is used for ETP and for scheduling to determines whether the tool loads in batches. Non-batch tools will have a value of 1 and batch tools limited by units will be populated according to the comment in max_batch_size_units. This is not used for throughput calculation because we can have tools which load multiple carriers at once but whose throughput is calculated per unit. (* from FPSINPUT.EQP_TYPES) |
|
|
MEAS_RESULT |
VARCHAR2(1) |
Result of measurement. For facilities not using FPS Sampling this value is for display purposes only and can be pass/fail or a number or anything. For facilities using FPS Sampling this field is used to dynamically adjust the sampling rules and must be a letter grade A-F. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
MERGE_INTO_PRD |
VARCHAR2(64) |
This is the prd of the lot into which this lot is merged if that prd is different than the prd of this lot. Typically this is an assembly step. This is important to track the prd flow from individual components into the final shipped prd. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
MERGE_LOT_LIST |
VARCHAR2(512) |
Lot (or list of lots) merged with this lot by this merge event. A value here indicates this was a merge event. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
MHS_STATE |
VARCHAR2(29) |
||
|
MHS_STATE_CHG_INST |
DATE |
||
|
MHS_STATE_CHG_STATION |
VARCHAR2(32) |
||
|
MODE_EST_MACHINE_RECIPE |
VARCHAR2(100) |
||
|
MPU |
NUMBER(8,4) |
MPU is a commonly used abbreviation which stands for minutes per unit. It is often referred to as MPW which for minutes per wafer but MPU is better because the unit is not always wafer. (* from FPSBASE.WIP_LOT_HIST) |
|
|
NEXT_WSF_STEP |
VARCHAR2(256) |
||
|
NO_HIST_UPDATED_BY |
VARCHAR2(64) |
||
|
NO_HIST_UPDATED_TIMESTAMP |
TIMESTAMP(6) |
||
|
NUM_DISCS_FOR_JOB |
NUMBER(2) |
Number of discs used in the job as estimated by our throughput logic. (* from FPSBASE.WIP_LOT_HIST) |
|
|
OPERATION |
VARCHAR2(50) |
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. (* from FPSINPUT.RTG_OPERATIONS) |
|
|
OPERATION_DESCRIPTION |
VARCHAR2(128) |
||
|
OPERATION_DISPLAY |
VARCHAR2(50) |
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. (* from FPSINPUT.RTG_OPERATIONS) |
|
|
OPERATION_FAMILY |
VARCHAR2(36) |
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. (* from FPSINPUT.RTG_OPERATION_FAMILIES) |
|
|
OPERATOR |
VARCHAR2(64) |
In history tables, this is the username of the person or system who logged the event. In EQP_MNT_FUTURE, this is the username of the person who input the information about the maintenance event. Usernames can be looked up in GEN_USERS to get full names, email address, etc. Please note that the existence of each username in GEN_USERS is optional, meaning that it is never required for the username logged in the operator column to be in GEN_USERS. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
OPER_ENT_INST |
DATE |
N |
|
|
OTHER_FACILITY |
VARCHAR2(6) |
Used if the step is actually processed in another facility. For example, a lot may go to the Test facility for an electrical test in the middle of the Fab route. In this case, on the Fab route OTHER_FACILITY is set to Test. In the Test facility there will be a fake short route with only this single step and the ORIG_FACILITY and ORIG_FAC_ROUTE will be set to the name of the Fab facility and the Fab route. This case is distinguished by non-NULL values in ORIG_FACILITY, OTHER_FACILITY, and ORIG_FAC_ROUTE columns. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
OTHER_FACILITY_W_ACTION |
VARCHAR2(32) |
This field is populated by the trigger when an event is logged for a lot that is duplicated because it is at a step where it will run on a tool in another facility. This value is used by the OTHER_FACILITY_EACH_LOOP procedure if it exists. (* from FPSBASE.WIP_LOT_HIST) |
|
|
OVR_JOB_ID |
VARCHAR2(64) |
Allows us to specify the job_id in the ETL if the MES already provides this. In the normal case when this value is not populated, the standard logic to define job_id based on events is used. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
OVR_PROC_TIME_SEC |
NUMBER(7) |
Override processing time for this lot at this step from the normal value calculated by THP_EQPTYPE_AUTO. Setting this value also forces a TAKE decision for this step in WIP_STEP_FUTURE. (* from FPSINPUT.WIP_STEP_FUTURE_OVR) |
|
|
OVR_SAME_JOB_IF_WITHIN_SEC |
NUMBER(3) |
Our default behavior is to consider a subsequent begin event to a batch tool in the same batch if within 20 seconds. For a non-batch tool the default is to only consider in the same job if in the same second. This flag can be used to adjust this if necessary. (* from FPSINPUT.EQP_TYPES) |
|
|
PAUSE_INST |
DATE |
When a lot has begun processing on a tool and an event with event_type of PAUSE is logged, pause_inst captures the time of the pause. If multiple pauses happen to the same lot, the last pause_inst is used. See description of PAUSE ect_state for more details. (* from FPSBASE.WIP_STEP_HIST) |
|
|
PERM_RANK |
VARCHAR2(1) |
Permanent rank is typically loaded by ETL from a combination of the MES, recipe management system, and existing preference logic already used at the site. Possible values are in FPSADMIN.RTG_PERM_RANKS. (* from FPSINPUT.RTG_TOOL_ASSIGNMENTS) |
|
|
PLANPRD |
VARCHAR2(64) |
N |
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. (* from FPSINPUT.RTG_PLANPRDS) |
|
PLAN_PRIORITY |
VARCHAR2(7) |
N |
Permanent priority of the lot set in the MES generally by planning. (* from FPSINPUT.WIP_EVENT_HIST) |
|
PRD |
VARCHAR2(64) |
N |
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. (* from FPSINPUT.RTG_PRDS) |
|
PREV_END_PROC_INST |
DATE |
End_proc_inst of the previous job on the tool before the job including this lot. Subtracting this from the end_proc_inst of this job gives us the end-to-end time (EET) which is critical for throughput calculations. (* from FPSBASE.WIP_LOT_HIST) |
|
|
PREV_PROCESS |
VARCHAR2(50) |
Process of the previous job on the tool before the job including this lot. Used in combination with prev_recipe to determine if this job cascaded and if it required a setup change. (* from FPSBASE.WIP_LOT_HIST) |
|
|
PREV_RECIPE |
VARCHAR2(100) |
Recipe of the previous job on the tool before the job including this lot. Used in combination with prev_process to determine if this job cascaded and if it required a setup change. (* from FPSBASE.WIP_LOT_HIST) |
|
|
PROCESS |
VARCHAR2(50) |
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. (* from FPSINPUT.RTG_PROCESSES) |
|
|
PROCESS_CLASS |
VARCHAR2(12) |
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. (* from FPSINPUT.RTG_PROCESS_GROUPS) |
|
|
PROCESS_DISPLAY |
VARCHAR2(50) |
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. (* from FPSINPUT.RTG_PROCESSES) |
|
|
PROCESS_FAMILY |
VARCHAR2(50) |
See https://help.inficonims.com/display/DW/Guide+to+Process+Families. (* from FPSINPUT.RTG_PROCESS_FAMILIES) |
|
|
PROCESS_GROUP |
VARCHAR2(36) |
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. (* from FPSINPUT.RTG_PROCESS_GROUPS) |
|
|
PROCESS_MODULE |
VARCHAR2(12) |
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. (* from FPSBASE.RTG_ROUTE_STEPS_PLUS) |
|
|
PROCESS_SUBFAMILY |
VARCHAR2(100) |
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. (* from FPSBASE.RTG_ROUTE_STEPS_PLUS) |
|
|
PROC_PORT |
VARCHAR2(5) |
||
|
PROC_PORT_MODE |
VARCHAR2(24) |
||
|
PROC_SEC_BEFORE_PAUSE |
NUMBER(7) |
||
|
PROC_STATE_EVENT_ONLY |
VARCHAR2(5) |
N |
The proc_state_event_only column is the process state derived exclusively from lot and wafer events. This is the parent of process_state and it is equal to process_state when the value is ENDED, PROC, PAUSE, ABORT, DISP, and STUCK because these process states come only from events. When the value is HOLD then we look at the hold groups to determine if the process state is HOLD or LONGH. And when the value is WAIT then we look at the complex ect_state_if_wait column to determine if the process state is STG, INHIB, BLOCK, DOWN, WAIT1, WAIT2, or WAIT3. The link between process_state and proc_state_event_only in the ECT diagram is not used in the logic in WIP_LOTS_REALTIME or GET_PROC_STATE_EVENT_ONLY but the values should always match. |
|
PROC_STATE_EV_ONLY_CHG_INST |
DATE |
N |
|
|
QTY |
NUMBER(7) |
N |
Quantity of units in the lot according the qty_unit defined for the facility. It is required for all lots in each facility to have their qty defined in the same units therefore the change in the unit is critical to defining the facility. For example, a pretest facility might have a sort step in the middle where we learn the qty of die. Prior to this step we know only the wafer qty but after this step we know both wafer and die. Since wafer is the only qty we know throughput the flow then wafer must be defined as the qty unit for this facility. Die can then be populated as sec_qty when it is known. Similarly the wafer saw facility might have a step in the middle where we cut the wafers into die. After this step we no longer know the number of wafers which means that die must be the qty unit for this facility and wafers can be the sec_qty prior to the saw step. Please note that a lot with qty of 0 is allowed but only if the sec_qty is greater than 0. This is unusual but one case is where we know the wafers will be scrapped but cannot be scrapped quite yet. (* from FPSINPUT.WIP_EVENT_HIST) |
|
QTY_DELTA |
NUMBER(7) |
N |
Difference in number of wafers due to an event that changes lot quantity (* from FPSINPUT.WIP_EVENT_HIST) |
|
QTY_IN_JOB |
NUMBER(7) |
The number of units in the job. For example a batch tool with 5 carriers each with a 25 wafer lot would have 125 in the job. This is also important for non-batch tools where we have multiple lots in a carrier as the job might include all lots or only selected lots. (* from FPSBASE.WIP_LOT_HIST) |
|
|
QTY_MEAS |
NUMBER(7) |
Quantity of units measured at this metrology step. This is less than or equal to the qty_in_job. The standard case is where we have a 25 wafer lot so the qty_in_job is 25 but we only measure 3 wafers on the metrology tool so qty_meas is 3. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
RCP_EXP_QTY_PER_BATCH |
NUMBER(3) |
||
|
RCP_MAX_BATCH_SIZE_CARRIERS |
NUMBER(2) |
||
|
RCP_MAX_BATCH_SIZE_LOTS |
NUMBER(2) |
||
|
RCP_MAX_BATCH_SIZE_UNITS |
NUMBER(7) |
||
|
READY_INST |
DATE |
Time when the lot was ready to be processed (e.g. after recipe downloaded). (* from FPSBASE.WIP_STEP_HIST) |
|
|
RECIPE_VERSION |
VARCHAR2(12) |
This field is for historical tracking purposes only and is not used in any FPS calculation. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
RESERVE_INST |
DATE |
Time when the lot was reserved to the tool either by Scheduler or external or manual reservation. As opposed to dispatch, reserve is only in the FPS DWH and therefore can be automatically undone. (* from FPSBASE.WIP_STEP_HIST) |
|
|
RESERVE_SOURCE |
VARCHAR2(5) |
||
|
RESERVE_TOOL |
VARCHAR2(16) |
||
|
REVERSE_SEQ_NUM |
NUMBER(7,2) |
||
|
RN_DESC_OF_STEP_MOVES |
NUMBER(3) |
If a lot moves through multiple steps within one loop of the WIP_EVENT_HIST load then there is no reason to call UPDATE_WIP_STEP_FUTURE for each step. If WIP_APD_EVENT_HIST includes more than one step move for a lot then we can skip the call to UPDATE_WIP_STEP_FUTURE for all but the last move. This column is automatically populated in the ADM_LOAD_EVENT_HIST_VIA_APD procedure. Then in the triggers, we skip the call to UPDATE_WIP_STEP_FUTURE if the value is greater than 1. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
ROUTE |
VARCHAR2(256) |
N |
Route that has threading requirements (* from FPSINPUT.RTG_STEP_THREADING) |
|
ROUTE_OF_NEXT_WSF_STEP |
VARCHAR2(256) |
||
|
ROUTE_SECTION |
VARCHAR2(32) |
A large grouping of route steps used for line balance and should be set to contain at least a week of steps based on cycle time. Line balance uses this grouping instead of segment so that it can be configured independently from segment which is used in the Dashboard for display purposes, but they can also be set the same if desired. The section should be large in order to minimize the impact of short-term WIP distribution changes on step WIP targets because line balance calculates step WIP targets based on the WIP currently in each section. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
ROUTE_SEGMENT |
VARCHAR2(36) |
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. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
ROUTE_SEGMENT_ENT_INST |
DATE |
N |
|
|
RQD_SETUP |
VARCHAR2(100) |
Rqd_setup is determined by ovr_rqd_setup in RTG_TOOL_ASSIGNMENTS and use_process_as_rqd_setup and use_est_mach_rcp_as_rqd_setup from EQP_TYPES. The latter two columns allow us to easily specify for an eqp_type that setup times should be calculated by process or est_machine_recipe. For traditional setups that are a group of recipes we use ovr_rqd_setup. (* from FPSBASE.WIP_LOT_HIST) |
|
|
RT_STEP_BANK_ENT_INST |
DATE |
N |
If the lot is at a step then this is the time when it entered the current route-step. If the lot is at a bank then this is the time it entered the current bank. |
|
SCHED_GROUP |
VARCHAR2(36) |
This is the grouping of tools and processes which the FPS Scheduler schedules together. Since this is a parent of tool via tool->process_group and a parent of process via process->process_group, by definition each tool and each process can only be in one sched group. We need all related tools and processes to be in the same sched group for efficient scheduling. One example is sinks and furnaces because of queue times and batching. Another example is for smaller facilities like Assembly or Test where we might schedule the entire facility together. (* from FPSINPUT.RTG_PROCESS_GROUPS) |
|
|
SCHED_GROUP_BEST_TOOL_IF_OTHER |
VARCHAR2(36) |
||
|
SCRAP_CATEGORY |
VARCHAR2(64) |
A optional categorization field for scrap events which can be defined for the facility. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
SCRAP_MODULE |
VARCHAR2(12) |
Responsible module for the scrap event. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
SCRAP_OWNER |
VARCHAR2(48) |
Engineer responsible for analyzing and recording this scrap event. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
SEC_BEG_PROC_INST |
DATE |
Time when processing on secondary tool started. (* from FPSBASE.WIP_STEP_HIST) |
|
|
SEC_END_PROC_INST |
DATE |
Time when processing on secondary tool finished. (* from FPSBASE.WIP_STEP_HIST) |
|
|
SEC_QTY |
NUMBER(7) |
N |
Quantity of units in the lot according the sec_qty_unit defined for the facility. See the column comment for the qty column for details and examples. (* from FPSINPUT.WIP_EVENT_HIST) |
|
SEC_QTY_DELTA |
NUMBER(7) |
N |
Difference in number of die due to an event that changes lot quantity (* from FPSINPUT.WIP_EVENT_HIST) |
|
SEC_QTY_DELTA_DURING_STEP |
NUMBER(7) |
N |
|
|
SEC_TOOL |
VARCHAR2(19) |
||
|
SEQ_NUM |
NUMBER(7,2) |
Sequence number of step in route (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
SINGLE_CH_TYPE |
VARCHAR2(6) |
When a tool only has one chamber then we do not include the chamber in EQP_CHAMBERS, however, for purposes of our throughput calculations we need to log the correct ch_type so that jobs can be accurately compared to other tools of the same eqp_type and ch_type. For example, if we have ET101 with one etch chamber A and ET102 with two etch chambers A and B then we estimate that a job processing on ET101 (obviously using only ET101CHA) has the same throughput as a job processing on only ET101CHA. (* from FPSINPUT.EQP_TOOLS) |
|
|
SPLIT_FROM_LOT |
VARCHAR2(32) |
||
|
SPLIT_FROM_LOT2 |
VARCHAR2(32) |
||
|
SPLIT_LOT_LIST |
VARCHAR2(512) |
Lot (or list of lots) split along with this lot by this merge event. A value here indicates this was a split event. (* from FPSINPUT.WIP_EVENT_HIST) |
|
|
STEP |
VARCHAR2(256) |
N |
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. (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
STEP_ENT_INST |
DATE |
N |
Time when the lot entered the step. (* from FPSBASE.WIP_LOT_HIST) |
|
STEP_HOLD_SEC_DAY_LAST_RLS |
NUMBER(5) |
N |
|
|
STEP_HOLD_SEC_RELEASED |
NUMBER(9) |
N |
|
|
STEP_HOLD_SEC_SHIFT_LAST_RLS |
NUMBER(5) |
N |
|
|
STEP_NUM_HOLDS |
NUMBER(2) |
||
|
STEP_SEC_FOR_CRIT_RATIO_TO_EOL |
NUMBER(11) |
||
|
STEP_SEC_FOR_DAYS_BEH_TO_EOL |
NUMBER(11) |
||
|
STEP_SEC_NOHLD_RT_WSF_TO_EOL |
NUMBER(11) |
||
|
STEP_SEC_NOHOLD_FOR_WSF_TO_EOL |
NUMBER(11) |
This is the expected seconds from the current step to the end of line not including time on hold. WIP_STEP_FUTURE is used for upcoming arrivals and should predict as if the lot will not go on hold unless it is known that it will. The result is that the predictions are reasonably correct for lots that do not go on hold or where we know the future hold - but very wrong for a few lots that go on hold that we do not expect. In contrast, WIP_FLUSH which is used for prediction completion of the route and all future routes will use the entire STEP_SEC including average hold. (* from FPSBASE.CTM_SUMMARY) |
|
|
TCT_SEC |
NUMBER(7) |
Theoretical cycle time in seconds (* from FPSBASE.WIP_LOT_HIST) |
|
|
THP_IGNORE_REASON_WEH |
VARCHAR2(12) |
||
|
TOOL |
VARCHAR2(16) |
Tool is generally just the main tool. The exception is when different entities on the tool run completely independently and it is physically impossible to run wafers of the same lot across multiple entities. In this exception case, we may want to assign the entities to different eqp_types and therefore we should define each entity as a tool. Please note that when we do this there is no indication whatsoever that these different entities are on the same tool. (* from FPSINPUT.EQP_TOOLS) |
|
|
TW_USE_PURPOSE |
VARCHAR2(16) |
Brief definition of the use of test wafers at this step (ex: Etch Rate or Nitride Dum). (* from FPSINPUT.RTG_ROUTE_STEPS) |
|
|
UPDATED_BY |
VARCHAR2(64) |
N |
|
|
UPDATED_TIMESTAMP |
TIMESTAMP(6) |
N |
|
|
WAIT_SEC_COMP_FOR_WSF |
NUMBER(7) |
||
|
WAIT_SEC_TO_SCHED_QUEUE |
NUMBER(7) |
||
|
WAIT_TO_SCHED_REASON_QUEUE |
VARCHAR2(256) |