Data Dictionary
>
FPSAPP Views
> FPSAPP.WIP_WAFER_HIST_LOOP
View FPSBASE.ETP_HIST_NOW
ETP_HIST does not include the current status since we obviously do not know the end time. So to get the full history up to the current time we need to union history with the current status. We set TO_INST to one second after curr_date so that "curr_date < to_inst" queries will work, specifically in ETP_STATUS_AT_INST Columns are sorted in this view based on their usefulness for ETP debugging and the order by has the most useful sort order which makes this view quite good for queries to debug ETP. Here is a good example: select * from etp_hist_now where facility = 'FAC' and tool = 'TOOL' and etp_to_inst > data_date - 6/24 order by orig_updated_time desc;
|
Column |
Comment |
|---|---|
|
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) |
|
TOOL |
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. (* inherited from FPSINPUT.EQP_TOOLS) |
|
ENTITY |
The lowest level of the equipment hierarchy that an event can be logged against. Tools, subtools, shared parent tools, chambers, ports are all entities. Load locks are also included although we consider them as ports. (* inherited from FPSINPUT.EQP_STATUS_VERIFY) |
|
ORIG_UPDATED_TIME |
|
|
UPDATED_PRCD |
|
|
ETP_GANTT_FROM_INST |
|
|
ETP_FROM_INST |
Time when the etp_state changed for any entity on this main tool. (* inherited from FPSBASE.ETP_STATUS) |
|
ETP_TO_INST |
|
|
ETP_HIST_SEQ_WITHIN_SEC |
|
|
ETP_STATE |
If entity is down then use eqp_state directly. If entity is up then determine etp_state from proc_state and sby_state. (* inherited from FPSBASE.ETP_STATUS) |
|
ETP_STATE_CHG_EVENT |
|
|
ETP_STATE_CHG_INST |
Time when the etp_state changed for this entity. (* inherited from FPSBASE.ETP_STATUS) |
|
IS_ETP_STATE_CHG |
|
|
ETP_TOOL_PCT |
Percentage contribution of this entity to the full tool using cluster tool calculations for etp_state built in to DWH. The main difference from eqp_tool_pct is this includes throughput estimates for partial chambers. This adds to 100 for all entities on a tool at each eqp_inst. (* inherited from FPSBASE.ETP_STATUS) |
|
ETP_STATE_PCT |
|
|
PROC_STATE |
Current processing state of each entity. Updated by a trigger on WIP_EVENT_HIST. (* inherited from FPSBASE.ETP_STATUS) |
|
CH_PROC_STATE |
|
|
PROC_INST |
Time when the process state last changed. Note that PROC_INST does not change when a lot ends during cascading. This leads to records in FROM_INST = TO_INST but END_PROC_INST is later. Furthermore if an END and BEG are logged at the same second with the END first then the second record after the BEG will have the same FROM and same END but a new BEG so the PK on ETP_PROC_HIST must have both BEG and END_PROC_INST in addition to the normal FACILITY, ENTITY, FROM_INST. (* inherited from FPSBASE.ETP_STATUS) |
|
BEG_PROC_JOB_ID |
|
|
BEG_PROC_INST |
time when the lot started processing on the main tool. (* inherited from FPSINPUT.WIP_STEP_HIST_MANUAL) |
|
MISS_CASC_INST |
Time when the last cascade was missed or the current cascade will be missed. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_GANTT_FROM_INST |
|
|
EQP_FROM_INST |
Time when the eqp_state changed for any entity on this main tool. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_TO_INST |
|
|
EQP_HIST_SEQ_WITHIN_SEC |
|
|
EQP_STATE |
Client equipment state taken directly from their MES or from their existing tool state model. For EQP_MNT_FUTURE, this is the state that we estimate the entity will be in during the maintenance which is often set to a generic PM state if we do not have detailed information. (* inherited from FPSINPUT.EQP_L6_DETAILED_STATES) |
|
EQP_STATE_CHG_EVENT |
Event that last changed the eqp_state. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_STATE_CHG_INST |
Time when the eqp_state changed for this particular entity. If another entity on the same main tool changes state, eqp_inst will change for all entities on the tool even those whose state does not change. Therefore if eqp_inst is after state_chg_inst that means another entity changed state at eqp_inst but this entity has not changed since state_chg_inst. (* inherited from FPSBASE.ETP_STATUS) |
|
IS_EQP_STATE_CHG |
|
|
EQP_TOOL_PCT |
Percentage contribution of this entity to the full tool using cluster tool calculations for eqp_state built in to DWH. This adds to 100 for all entities on a tool at each eqp_inst. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_STATE_PCT |
|
|
SBY_STATE |
Current standby state of each entity. Updated various ways depending on customer. (* inherited from FPSBASE.ETP_STATUS) |
|
SBY_GROUP |
|
|
SBY_INST |
Time when the standby state last changed. (* inherited from FPSBASE.ETP_STATUS) |
|
BEG_PROC_PROCESS |
|
|
BEG_PROC_RECIPE |
|
|
BEG_PROC_CH_USED |
|
|
BEG_PROC_RQD_SETUP |
|
|
IS_BEG_SETUP_CHG |
|
|
IS_BEG_MANUAL |
|
|
BEG_PROC_QTY_IN_JOB |
|
|
BEG_PROC_TW_QTY_IN_JOB |
|
|
GTG_EPISODE_FROM_INST |
The time when the current series of ETP_MNT_EPISODES started and should be considered part of the same Green-to-green (GTG) time. (* inherited from FPSBASE.ETP_STATUS) |
|
END_PROC_JOB_ID |
|
|
END_PROC_INST |
time when the lot finished processing on the main tool. (* inherited from FPSINPUT.WIP_STEP_HIST_MANUAL) |
|
END_PROC_PROCESS |
|
|
END_PROC_RECIPE |
|
|
END_PROC_CH_USED |
|
|
CURR_RECIPE |
The current/last used recipe for the scheduler, incorporating the ignore capability from EQP_PROCESS_CHG_TO_IGNORE (* inherited from FPSBASE.ETP_STATUS) |
|
CURR_RECIPE_INST |
The beg processing timestamp associated with CURR_RECIPE (* inherited from FPSBASE.ETP_STATUS) |
|
CURR_SETUP |
The current setup of the entity. This can be set by a lot processing event from WIP_EVENT_HIST or by an event on the entity from EQP_EVENT_HIST. For example if an Implant tool processes a Boron lot then the curr_setup will be Boron. Or if an event is logged to the tool that says the setup changed to Boron then the curr_setup will be Boron. Please note that the curr_setup value populated in EQP_EVENT_HIST must match exactly with the rqd_setup value in RTG_TOOL_ASSIGNMENTS in order for the setup penalty logic to apply correctly. (* inherited from FPSINPUT.EQP_EVENT_HIST) |
|
CURR_SETUP_EVENT |
|
|
CURR_SETUP_INST |
This DWH timestamp of the last setup change for this entity (* inherited from FPSAPP.SCH_W_H_S_ENTITIES) |
|
CURR_SETUP_EXPIRE_INST |
|
|
CURR_SETUP_QTY |
|
|
AVAILABILITY |
|
|
AVAIL_INST |
Time when the availability last changed, either came up or went down. (* inherited from FPSBASE.ETP_STATUS) |
|
MFG_GROUP |
|
|
MFG_GROUP_INST |
Time when the mfg_group last changed. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_E10_STATE |
|
|
EQP_E10_INST |
Time when the e10_state of the eqp_state last changed. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_STATE_CHG_OPERATOR |
Operator who logged the event that last changed the eqp_state. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_STATE_CHG_COMMENT |
Comment with the event that last changed the eqp_state. (* inherited from FPSBASE.ETP_STATUS) |
|
EQP_OPPORTUNITY_STATE |
|
|
EQP_OPP_STATE_INST |
|
|
ETP_E10_STATE |
|
|
ETP_E10_INST |
|
|
ETP_OPPORTUNITY_STATE |
|
|
ETP_OPP_STATE_INST |
|
|
ETP_STATE_CHG_OPERATOR |
|
|
ETP_STATE_CHG_COMMENT |
|
|
CURR_SETUP_OPERATOR |
|
|
CURR_SETUP_COMMENT |
|
|
UPDATED_COMMENT |
|
|
HIST_INSERTED_TIME |
Unlike just about every other history table, ETP_HIST does not have a single column that represents the inst associated with the record. For example, WIP_EVENT_HIST has inst, WIP_END_SHIFT_HIST has start_shift, THP_EQPTYPE_WEEK_HIST has start_week, and so on. These columns are consistent with the data in the entire table and sorting by them gives you a consistent order of the records in the table. When a record is inserted into ETP_HIST, it might be because of an EQP state change in which case eqp_to_inst would be the inst of the event that triggered the state change. But etp_to_inst would still be the old value. And vice versa for ETP state changes. Furthermore while usually either eqp_to_inst or etp_to_inst is relevant, we also insert records when the standby state changes without a EQP/ETP state change and in these cases sby_inst is relevant but both eqp_to_inst and etp_to_inst are old values. And the worst case is when the only change is a standby state of any entity on the tool which actually has no relevant inst. The only column which is always relevant is hist_inserted_time so we have no choice but to use this column as the purge_column_name in CFG_TABLES. By the nature of the logic, hist_inserted_time is always newer than all of the other inst values so we will never purge too many records. If the data is behind or loaded for a past period then we will purge too little but that is acceptable. (* inherited from FPSBASE.ETP_HIST) |
|
ORIG_ETP_STATE_IF_CHG |
|
|
ORIG_TOOL_PCT_IF_CHG |
|
|
CHG_TIME_IF_CHG |
|
|
IS_ADDL_ROW |