data-dictionary

FPSINPUT Tables

Data Dictionary

> FPSINPUT Tables

FPSINPUT Tables

Table

Key

Comment

FPSINPUT.CAL_PLAN_DAYS

START_PLAN_DAY

All known plan days including past, present, and future.

FPSINPUT.CAL_PLAN_MONTHS

All known plan months including past, present, and future.

FPSINPUT.CAL_PLAN_QUARTERS

All known plan quarters including past, present, and future.

FPSINPUT.CAL_PLAN_WEEKS

All known plan weeks including past, present, and future.

FPSINPUT.CAL_PLAN_YEARS

All known plan years including past, present, and future.

FPSINPUT.CAL_SHIFTS

START_SHIFT

All known shifts including past, present, and future.

FPSINPUT.CAL_WORK_DAYS

START_WORK_DAY

All known work days including past, present, and future.

FPSINPUT.CAL_WORK_MONTHS

All known work months including past, present, and future.

FPSINPUT.CAL_WORK_QUARTERS

All known work quarters including past, present, and future.

FPSINPUT.CAL_WORK_WEEKS

START_WEEK

All known work weeks including past, present, and future.

FPSINPUT.CAL_WORK_YEARS

All known work years including past, present, and future.

FPSINPUT.EQP_BADGES

TOOL

Configuration of tool badges for display in NextMove.

FPSINPUT.EQP_CHAMBERS

Has information about all chambers in the facility. The columns CH, CH_TYPE, and CH_SHORT_DISPLAY are filled in by the EQP_CHAMBERS_BEF trigger and please read the detailed comment in that trigger regarding avoiding mutating errors if you are using database links for ETL.

FPSINPUT.EQP_CHAMBERS_CHGLOG

CHG_TIMESTAMP, FACILITY, CHAMBER

Log of all changes to EQP_CHAMBERS populated by a simple history trigger. Unlike other CHGLOG tables, this one has GLOBAL scope meaning that is required for all sites regardless of how you populate the EQP_CHAMBERS table. This is because the EQP_CHAMBERS_BEF trigger uses this CHGLOG table to fill in values for critical fields if necessary. Also because of this, you may not purge this table so we constrain ovr_purge_chglog_days to 9999 in CFG_TABLES for EQP_CHAMBERS.

FPSINPUT.EQP_CHAMBER_TYPES

FACILITY, EQP_TYPE, CH_TYPE

This table has information about each chamber type for a particular equipment type. EQP_TYPE must exist in EQP_TYPES and CH_TYPE must exist in EQP_CHAMBERS with a corresponding tool of the appropriate EQP_TYPE. Populating rows in this table is optional and only needed if overriding the values defined for the EQP_TYPE.

FPSINPUT.EQP_CURR_PATTERN

FACILITY, TOOL

this is the current pattern supplied that has been run on the tool. assumptions/ground rules: 1) recipe sequencing is assumed to be active if a tool exists 2) the order for curr_pattern is assumed left to right, where right is the most recent process run on the tool. example: a,b,b,b,c. recipe c just ran on the tool. 3) if recipe sequencing active, a null curr_pattern is interpreted as no history exists. the scheduler will can effectively run anything as to initiate a sequence. 4) the assumption is that the curr_pattern supplied is comma delimited.

FPSINPUT.EQP_DOWN_REASONS

DOWN_REASON

This is an optional table that can either be empty, manually updated or populated through the ETL. The usage of this table is to any values of REASON and IS_FIRST_TIME_RIGHT_FAIL = N that the site does not want to consider something that will cause first time right to fail. The default functionality is to consider any reason code after a SDT within a gtg falling first time right. If there are some REASONS that are to be excluded populate them here with IS_FIRST_TIME_RIGHT_FAIL = N. The fundamental assumption is that after a SDT event if there are any UDT events it is likely due to the SDT event not passing or not being performed properly.

FPSINPUT.EQP_EVENT_ERROR_HIST

INST, FACILITY, LOGGED_ENTITY, LE_SEQ_WITHIN_SEC

When ADM_LOAD_EVENT_HIST_VIA_APD fails to insert any record into EQP_EVENT_HIST, it writes the original values from EQP_APD_EVENT_HIST into this table so that we can debug the failure. This also allows us the option to insert the record manually into EQP_EVENT_HIST later if desired. Please note that this table must have the same columns in the same order as EQP_EVENT_HIST. This table has the same PK as EQP_EVENT_HIST so that the columns will be listed in the same order in the GrimRepo snapshot used by DWH_build but the PK is permanently disabled because we never want the insert to fail.

FPSINPUT.EQP_EVENT_HIST

INST, FACILITY, LOGGED_ENTITY, LE_SEQ_WITHIN_SEC

History of all events logged to tools or entities without a lot attached. Events logged to tools or entities with a lot go into WIP_EVENT_HIST.

FPSINPUT.EQP_EVENT_HIST_LOOP

INST, FACILITY, LOGGED_ENTITY, LOAD_SEQ_WITHIN_SEC

Temporary table to store records to be inserted into EQP_EVENT_HIST. This table is identical to EQP_EVENT_HIST except with fewer constraints since this stores the raw data before many columns are updated by the insert trigger.

FPSINPUT.EQP_L5_TRANSITION_STATES

This table is how we join the client states with our ETP hierarchy. Transition_state is the parent of eqp_state which comes directly from the client input data. ETP_group is the FPS ETP Level 4 group where the values are defined by FPS as an enhancement of the industry SEMI standard. From the ETP_group we get the SEMI standard E10 and availability and other information. Therefore we can determine the E10 and availability for each client eqp_state through this table.

FPSINPUT.EQP_L6_DETAILED_STATES

EQP_STATE

These are the detailed states used by the client. See comments in EQP_L5_TRANSITION_STATES for more details

FPSINPUT.EQP_LABOR_ROLES

FACILITY, LABOR_ROLE

List of labor roles available. Although the username is logged with each transaction in the EVENT_HIST tables, currently names of actual people are not mapped to roles, just the roles are tracked for capacity modeling. So a report of labor role requirements by shift can be generated but not a report of what labor role capacity is available although this would be a fairly easy extension.

FPSINPUT.EQP_MNT_CHAMBER_ALARM_HIST

INST, FACILITY, ENTITY

This table stores the historical values of the chamber alarms being tracked by an FDC system.

FPSINPUT.EQP_MNT_CHAMBER_HEALTH_HIST

INST, FACILITY, ENTITY

This table stores the historical values of the chamber health being tracked by an FDC system.

FPSINPUT.EQP_MNT_COUNTER_HIST

FACILITY, EVENT_ID, INST

History of all values for counter-based PMs. Used to determine the trend to predict future values over time and ultimately estimate when the PM will be due.

FPSINPUT.EQP_MNT_EVENTS_OVR

FACILITY, EVENT_ID

Optional list of maintenance events including but not limited PMs, quals, automated, inline or adhoc.

FPSINPUT.EQP_MNT_FAMILIES

FACILITY, MNT_FAMILY

See comments on EQP_TOOLS for detailed information about EQP hierarchy.

FPSINPUT.EQP_MNT_FUTURE

List of all upcoming scheduled maintenance including PMs, quals, and automated or inline. This table might include current maintenance too and if so the actual_start_inst will be populated to indicate the maintenance is in progress. The primary key here is `facility`, `event_id` (with an additional unique key of `facility`, `logged_entity`, `mnt_name`) which means we only include the next occurrence of each maintenance. `Mnt_interval_sec` or `count_interval` indicate the frequency of future occurrences. Either the time-based columns must be populated OR the counter-based columns must be populated, but NOT both; see `EQP_MNT_FUTURE_TIME_OR_CNT_CHK` constraint for details. The `eqp_state`, `carrier_state`, or `durable_state` value represents the state that the entity in question is expected to be logged in during the maintenance; `eqp_state` is normally a substate of E10 SDT which indicates either a qual or a PM.

FPSINPUT.EQP_MNT_INDICATOR_HIST

INST, FACILITY, ENTITY, INDICATOR_NAME

This table stores the historical values of the maintenance indicators being tracked by an FDC system.

FPSINPUT.EQP_MSO_EVENTS

FACILITY, MSO_EVENT

Contains the list of allowed MSO events to be used by the Metrology Sampling Optimizer UI. This will allow ETL to pre-populate the event drop down list in the UI for a user trying to create an event rule.

FPSINPUT.EQP_OVR_MINS_UNTIL_SCHED

FACILITY, EQP_TYPE, EQP_STATE

Our default values for minutes_until_sched and remaining_mins_until_sched are configured for each eqp_state in EQP_L6_DETAILED_STATES but entries in this table override these defaults for a specific eqp_type and eqp_state. For example, the time for a qual is different for Diffusion furnaces than it is for Litho cells.

FPSINPUT.EQP_PATTERN_MATCH

FACILITY, PATTERN_ID

this is the configuration table to define how specific recipe sequences should be applied by the scheduler. by default the scheduler will apply the sequence to the eqp_type. if tool is provided the the pattern is specific to the tool and will only be applied to the tool id provided.

FPSINPUT.EQP_PATTERN_MATCH_SEQ

FACILITY, PATTERN_ID, SORT_ORDER

this is the configuration table to define the specific recipe change sequences to be applied by the scheduler. each process change key should be supplied in the order it should appear in the pattern.

FPSINPUT.EQP_PORTS

FACILITY, LOCATION

Contains all tool ports including internal. In other words, all locations where a carrier or pod could be when on a tool. Please note that tool in this table could be either a standard tool or a shared parent tool and therefore does not have a foreign key. If the port is shared among all tools which share the parent then set tool to the shared_parent_tool value.

FPSINPUT.EQP_PORT_HIST

CHG_TIMESTAMP, FACILITY, LOCATION

Log of all changes to EQP_PORTS populated by simple history trigger. You can query the state of the table at any time in the past by using t >= chg_timestamp and t < next_chg_timestamp.

FPSINPUT.EQP_PORT_MODES

PORT_MODE

List of allowed port modes for the facility and whether each is considered auto.

FPSINPUT.EQP_PROCESS_CHG_TO_IGNORE

TOOL, CHANGE_TYPE, CHANGE_VALUE, FACILITY

This is the configuration table to store the recipes and/or setups to ignore the change. Ignore basically means that we keep the previous value as the current recipe or setup.

FPSINPUT.EQP_PROCESS_LIMITS

EQP_TYPE, TOOL, LIMIT_TYPE, LIMIT_VALUE, UNIT_TYPE, FACILITY

is the configuration table to store the usage limit for the chamber/recipe on the tool

FPSINPUT.EQP_PROCESS_USAGES

EQP_TYPE, TOOL, ENTITY_TYPE, UNIT_TYPE, CHANGE_TYPE, CHANGE_FROM, CHANGE_TO, MAX_USAGE, FACILITY

is the configuration table to store the process max usages costs/time. it needs to be able to specify max number of consecutive change type on the tool

FPSINPUT.EQP_RECIPES

EQP_TYPE, RECIPE, FACILITY

is the configuration table to store the recipt - recipe_family info

FPSINPUT.EQP_RECIPE_FAMILIES

EQP_TYPE, RECIPE_FAMILY, RECIPE_GROUP, FACILITY

is the configuration table to store the recipe_family - recipe_group info

FPSINPUT.EQP_REPAIR_REASONS

REPAIR_REASON

This is an optional table that can either be empty, manually updated or populated through the ETL. The usage of this table is to any values of REASON and IS_FIRST_TIME_RIGHT_FAIL = N that the site does not want to consider something that will cause first time right to fail. The default functionality is to consider any reason code after a SDT within a gtg falling first time right. If there are some REASONS that are to be excluded populate them here with IS_FIRST_TIME_RIGHT_FAIL = N. The fundamental assumption is that after a SDT event if there are any UDT events it is likely due to the SDT event not passing or not being performed properly.

FPSINPUT.EQP_SCHED_EVENTS_MANUAL

FACILITY, TOOL, ENTITY, EVENT, START_INST

This table is used to store scheduled event for all tools. usually this is used by using ETL

FPSINPUT.EQP_SETUP_CHG_MANUAL

FACILITY, EQP_TYPE, FROM_RQD_SETUP, TO_RQD_SETUP

For users to manually input setup change times which will override calculated times.

FPSINPUT.EQP_STATUS_VERIFY

FACILITY, ENTITY

This table has the current state of tools and entities, along with the datetime of the status change. The EQP_STATE column is unusual, because it references FPSBASE.EQP_STATE_DIAGRAM, which contains a union of the client equipment states (populated in FPSINPUT.EQP_L6_DETAILED_STATES) as well as required default states.

FPSINPUT.EQP_TOOLS

This table has information about each tool. Tool is unique but the primary key is actually tool+facility because we want most foreign keys pointing to this table include facility to ensure that the facility is correct. We have three EQP hierarchies: TOOL->PROCESS_GROUP->SCHED_GROUP is for Scheduler, TOOL->EQP_TYPE->MNT_FAMILY->MNT_MODULE is for Equipment Dashboard including all maintenance applications, and TOOL->PROCESS_FAMILY->PROCESS_MODULE is for Operations Dashboard. Please read the extensive comments in the EQP_REF_TOOLS_PLUS view for complete details as setting up all three of the EQP hierarchies correctly is one of the important tasks in any FPS kickoff.

FPSINPUT.EQP_TOOL_MSO_GROUPS

FACILITY, TOOL_MSO_GROUP

List of tool groups and their assigned modules used in the Metrology Sampling Optimizer and Sampling Dashboard.

FPSINPUT.EQP_TYPES

This is our most critical table for equipment configuration with over 100 important fields for batching, throughput, and scheduling. Some of these columns will be populated automatically through ETL either from the MES or another EQP/IE database. Others will be entered manually. See comments on EQP_TOOLS for detailed information about EQP hierarchy.

FPSINPUT.EQP_TYPE_CHANGE_TYPE_OVR

FACILITY, EQP_TYPE, CHANGE_TYPE

Override setups by eqp_type that should be shown in NextMove

FPSINPUT.EQP_TYPE_CTC_MULTIPLIERS_OVR

FACILITY, EQP_TYPE, CH_TYPE_CNT_INPUT, CH_TYPE_CNT_THP

Optional table to override the default multiplier for a particular combination of ch_type_cnt for a given eqp_type.

FPSINPUT.EQP_WIP_METRICS_OVR

TOOL

Optional list of target completes and WIP per tool.

FPSINPUT.EQP_ZONES

FACILITY, TOOL, ZONE

Has information about all zones in the facility.

FPSINPUT.FDC_EQP_LOOKUP

FDC_TOOL, FDC_CHAMBER

Lookup table used by any FDC system to determine tool and entity when the values fed from the FDC system do not match perfectly with values in the FPS DWH. This table is often used initially to start FPS-FDC integration until the tools and entity names are updated in the FDC system to match those in the MES and FPS DWH.

FPSINPUT.FDC_LOT_HIST

EVENT_TIME, LOT, EVENT

Stores history of FDC lot-based events. Most likely this table will be referenced by WIP_APD_EVENT_HIST to include in WIP_EVENT_HIST.

FPSINPUT.FDC_WAFER_HIST

EVENT_TIME, LOT, WAFER, EVENT

Stores history of FDC wafer-based events. Most likely this table will be referenced by WIP_APD_WAFER_HIST to include in WIP_WAFER_HIST.

FPSINPUT.GEN_BADGES

Table list the badge configurations for to display in NextMove.

FPSINPUT.GEN_COMBINED_EVENT_HIST

INST, TABLE_NAME, FACILITY, LOT_OR_ENTITY, LOAD_SEQ_WITHIN_SEC

This is a temporary table used to load data into WIP_EVENT_HIST, EQP_EVENT_HIST, and WIP_WAFER_HIST in chronological order.

FPSINPUT.GEN_CUSTOMERS

CUSTOMER

List of all customers. For startup, this table can just be populated with one generic customer for all planprds.

FPSINPUT.GEN_EXPLANATIONS

This table is where we make client-specific explanations about the translation of their data into our FPSINPUT tables.

FPSINPUT.GEN_FACILITIES

Information about each facility plus several configuration variables.

FPSINPUT.GEN_FACILITY_BUILDINGS

FACILITY, BUILDING

List of buildings associated with each facility. This is an important table because the NextMove application is separate for each facility. For the facility selected, only bays, vehicles, racks, and locations in these buildings will be visible. This is a many-to-many relationship so it requires a separate table. in each site.

FPSINPUT.GEN_FACILITY_SHUTDOWNS

Information about facility shutdowns past, present, and future.

FPSINPUT.GEN_MODULES

This table lists the modules of each facility. Most facilities have only a handful of modules like Litho, Etch, Diffusion, and so on. We assign two module values, PROCESS_MODULE for processes and MNT_MODULE for tools. PROCESS_MODULE is the module used to credit moves and set goals and is determined by route-step -> process -> process_family -> process_module. MNT_MODULE is the module responsible for maintaining the tools and is determined by tool -> eqp_type -> mnt_family -> mnt_module.

FPSINPUT.GEN_SITE

This table has only one row and stores information about this site as well as global information that we want to constrain appropriately.

FPSINPUT.GEN_USERS

USERNAME

Detailed information about users that can log events in various input systems. User information is optional and we will always show the username or operator that logs the event if there is no record here.

FPSINPUT.GEN_WAFER_SIZES

FACILITY, WAFER_SIZE

List of wafer sizes in the facility. If the facility only has one size and we do not want to divide dashboard by wafer size then we should leave this table empty and all wafer_size columns blank.

FPSINPUT.MHS_BAYS

List of bays in each building.

FPSINPUT.MHS_BAY_TO_BAY_MATRIX

FACILITY, FROM_BAY, TO_BAY

Estimated transit time between all bays for cassettes and durables used both for Scheduler and NextMove.

FPSINPUT.MHS_BUILDINGS

BUILDING

List of buildings in each site.

FPSINPUT.MHS_CARRIERS

CARRIER

Current location of all carriers including empties. This includes cassettes which carry lots and pods which carry reticles.

FPSINPUT.MHS_CARR_CATEGORIES

CARR_CATEGORY

List of carrier categories valid in each facility.

FPSINPUT.MHS_DELIVERY_NEXT

LOT

This table includes delivery destination and next station for carriers that feeds the NextMove application.

FPSINPUT.MHS_EXTERNAL_TRANSPORT_MODES

EXTL_TRANSPORT_MODE

List of allowed transport modes that are used at the site. These modes are mapped to the standard FPSADMIN transport modes which are used by various applications.

FPSINPUT.MHS_POD_FAMILY_ASSIGNMENTS

This table stores all pod family assignments to each tool. This table is optional and used for scheduling pods if populated.

FPSINPUT.MHS_RACKS

This table includes racks, rooms, or any location where a carrier, lot, or durable could be located which are not tools nor ports nor stockers nor vehicles. This is because tools, ports, stockers (including zero footprint storage), and vehicles (including carts and AMHS vehicles) each have their own table.

FPSINPUT.MHS_RACK_LOCATIONS

LOCATION

This table includes locations on racks. Populating this table is optional and depends on the specificity of the carrier tracking. If carrier tracking sets to location to the specific spot on each rack then we must populate this table will all of these specific locations. But if the carrier location is set only to rack then the location would be the rack and there is no reason to populate this table. When NextMove determines that a carrier should move to a rack, the destination will always be the rack and never a specific location on that rack. This is why we have curr_location and dest_station.

FPSINPUT.MHS_STAFFING_GROUP_BAYS

STAFFING_GROUP, FACILITY, BAY

The purpose of this table will be to allow NextMove to staff bays as defined in the table, meaning if we have a staffing group GROUP1 which consists of BAY1 and BAY2, NextMove will treat BAY1 and BAY2 as one bay and display lots and movements of both bays on both BAY1 and BAY2 move lists.

FPSINPUT.MHS_STATION_ALTERNATES

FACILITY, STATION, ALTERNATE_STATION

Table used to map a station to any other station which can be considered an acceptable alternative for delivery

FPSINPUT.MHS_STATION_ASSIGNMENTS

Contains the stations assigned to each tool for staging, input, and output as well as other stations which are acceptable if the carriers happen to be there already.

FPSINPUT.MHS_STOCKERS

List of stockers where carriers can be stored.

FPSINPUT.MHS_STOCKER_PORTS

LOCATION

List of stocker input, output, and transfer ports.

FPSINPUT.MHS_VEHICLES

List of all vehicles in the material handling system - including carts in a non-automated MHS. The location of a vehicle should be determined based on the location of the carrier(s) that it is transporting. For carts, this is typically the location of the last carrier that was picked up.

FPSINPUT.MHS_VEHICLES_TRACKING

VEHICLE

List of all vehicles in the material handling system - including carts in a non-automated MHS. The location of a vehicle should be determined based on the location of the carrier(s) that it is transporting. For carts, this is typically the location of the last carrier that was picked up. Also tracks the user that is currently using the cart

FPSINPUT.MHS_VEHICLE_ACTIVE_SUB_ROUTES

FACILITY, VEHICLE, VEHICLE_SUB_ROUTE

This table associated vehicles (carts) to the appropriate sub-routes. See comment in MHS_VEHICLE_ROUTES table for more details.

FPSINPUT.MHS_VEHICLE_ASSIGNMENTS

Contains the vehicle assignments to bay or station. Either bay or station must be populated but not both.

FPSINPUT.MHS_VEHICLE_LOCATIONS

LOCATION

This table is optional and should only be populated if we want to specify multiple locations on a vehicle, usually a cart. If this table is blank then we just consider the vehicle to be the location and the station.

FPSINPUT.MHS_VEHICLE_ROUTES

VEHICLE_ROUTE

Vehicle routes and sub-routes enable routes for NextMove and will enable carriers to be scheduled to a sub routes externally and through MHS_DELIVERY_NEXT logic. These cart routes need to be created to enable routing. 1) Configure routes in MHS_VEHICLE_SUB_ROUTES through ETL, manually, up to client lead. 2) In MHS_VEHICLES carts will need to be assigned to a route. 3) Using the extl procedure or delivery next, schedule lots to sub routes. For example, CART1 can be assigned to BLUE LINE and carriers can be scheduled to any sub route like OHARE or LOOP. A carrier scheduled to OHARE can be only picked up by a cart on the BLUE LINE route and any carrier scheduled to LOOP can be picked by cart on either BLUE LINE or GREEN LINE route.

FPSINPUT.MHS_VEHICLE_SUB_ROUTES

VEHICLE_ROUTE, VEHICLE_SUB_ROUTE

See comments on MHS_VEHICLE_ROUTES table.

FPSINPUT.MHS_WAFERS

LOT, WAFER

Current wafer slot mapping for a given lot. This helps identify where wafers are currently positioned in the carrier for a given lot.

FPSINPUT.MNT_CERTIFICATIONS

CERT

All certifications, or skills possible to perform on a specific Tool, or MNT task, or Event_ID from EQP_MNT_FUTURE.

FPSINPUT.MNT_CERT_ASSIGNMENTS

FACILITY, CERT, EVENT_ID

Relates all Certifications to Event_IDs in EQP_MNT_FUTURE with the idea that one Event_ID could resolve to multiple Event_IDs or many Event_IDs could relate to multiple Certifications

FPSINPUT.MNT_EVENT_PART_ASSIGNMENTS

FACILITY, EVENT_ID, PART_ID

The parts required for an certification/Event_id.

FPSINPUT.MNT_PARTS

PART_ID

Current information on counter-based PMs based on information from EQP_MNT_FUTURE.

FPSINPUT.MNT_TECHNICIANS

MNT_TECH_USERNAME

Maintenance technicians who can perform event_id they have the certifications for.

FPSINPUT.MNT_TECH_CERT_ASSIGNMENTS

MNT_TECH_USERNAME, CERT

The Certifications that the technicians can perform.

FPSINPUT.MNT_TECH_SCHEDULES

SCHEDULE_ID

The possible schedules that a technician could work.

FPSINPUT.MNT_TECH_SCHED_ASSIGNMENTS

MNT_TECH_USERNAME, SCHEDULE_ID

This table links together all schedules that a technicians works on including both their regular/default schedule defined in FPSINPUT.MNT_TECHNICIANS and any other ad-hoc or overtime schedules.

FPSINPUT.MSO_EQP_EVENT_HIST

INST, FACILITY, LOGGED_ENTITY, EVENT

History of all events logged to tools or entities related to MSO rules. Events can either be sent directly to this table or come from EQP_EVENT_HIST.

FPSINPUT.MSO_EXTL_PROCESS_LINK_GROUPS

FACILITY, PROCESS_LINK_GROUP

List of all process link groups created by the ETL.

FPSINPUT.MSO_EXTL_PROCESS_SUB_GROUPS

FACILITY, PROCESS_SUB_GROUP

List of all process link subs created by the ETL.

FPSINPUT.MSO_EXTL_PROC_LINK_GROUP_LINKS

FACILITY, PROCESS_LINK_GROUP, FROM_MSO_PROCESS_NA, TO_MSO_PROCESS_NA

List of all process links that are created through the ETL and grouped by the process link group.

FPSINPUT.MSO_EXTL_PROC_SUB_GROUP_LINKS

List of all additional MSO processes in the process sub group populated through ETL. Group can be assigned to a rule through the MSOUI.

FPSINPUT.MSO_EXTL_RULE_TAG_COND

Assignment of external MSO tag conditions for each sampling rule loaded via an external system.

FPSINPUT.MSO_EXTL_TAG_CONDITIONS

FACILITY, TAG_CONDITION_NAME

Table to provide a list of Metrology Sampling Optimizer tag conditions loaded via an external system.

FPSINPUT.MSO_EXTL_TAG_CONDITION_CTX

This table has the user defined context of the tag condition loaded via an external source. A single tag condition can have multiple conditions defined. Each row for a single tag_condition_name, one case needs to match. For a single row all the defined column values must be true for that context row to be true, where a null value means we ignore that column. When loading at least one of the context columns must be defined.

FPSINPUT.RTG_BANKS

FACILITY, BANK

Information about each bank. Lots must be either on a route with a step or at a bank. If a lot goes to a bank in the middle of the route we do not count that time towards the route cycle time.

FPSINPUT.RTG_COMMON_STEPS

FACILITY, COMMON_STEP

For the Line Viewer and anywhere else when we want to display information on steps across multiple routes (usually by route_group or facility) we need a common_step to be defined with a sort_order to be able to group steps appropriately..

FPSINPUT.RTG_COMMON_STEP_BALANCE

FACILITY, COMMON_START_STEP

Input table for the common step balance configurations which is similar to RTG_STEP_BALANCE but for common step rather than step. This allows to control WIP at the common start step based on how much WIP is in between the start and end common steps (Balance Window), how many wafers to allow to run at the start common step per day, and tool threading calculation at the start common step.

FPSINPUT.RTG_DURABLES

Detailed information about each durable. Durables are either reticles for Litho or probe cards for Wet or Sort. A durable can either be in a carrier or at a location without a carrier.

FPSINPUT.RTG_DURABLE_ASGNS_COMBO

LOT, STEP, TOOL, COMBINATION_ID, DURABLE, ROUTE, FACILITY

This tables stores all durable assignments on the durable level. Users will need to configure on the lot/route/step/tool level only at this moment.

FPSINPUT.RTG_DURABLE_ASSIGNMENTS

This tables stores all durable family assignments. Process is required but tool, step, route, prd, and lot are all optional. These five fields must match if they have a value but are ignored if null. For example, if tool is populated then the durable can only be used on that tool but if tool is blank then it can be used on any tool for the specified process.

FPSINPUT.RTG_DURABLE_CLASSES

FACILITY, DURABLE_CLASS

List of durable classes which are generic values like RETICLE or PROBE_CARD.

FPSINPUT.RTG_DURABLE_FAMILIES

FACILITY, DURABLE_FAMILY

List of durable groups for foreign key.

FPSINPUT.RTG_DURABLE_GROUPS

FACILITY, DURABLE_GROUP

List of durable groups for foreign key.

FPSINPUT.RTG_DURABLE_STATES

List of FPS defined values allowed for the durable state. Restricting durable_state to a value defined in this table allows our applications to make specific references to these values.

FPSINPUT.RTG_LINE_SECTIONS

FACILITY, LINE_SECTION

List of line sections in the facility. If the facility only has one section and we do not want to divide dashboard by section then we should leave this table empty and the LINE_SECTION column blank.

FPSINPUT.RTG_MSO_PROCESSES

Contains the list of allowed processes to be used by the Metrology Sampling Optimizer system its UI. These processes are used to define the main process and/or metrology/skip steps in a process flow. RTG_ROUTE_STEPS has a MSO_PROCESS column that refers to the processes defined in this table, but more can be defined here for cases where a particular process is not part of defined flow. This allows the system to identify a processes for test wafer lots or other scans that can clear a main process tool. Users may want to create rules before a flow exists in FPS, keeping the MSO process list here helps facilitate that as well.

FPSINPUT.RTG_OPERATIONS

FACILITY, OPERATION

Operation is the lowest level of routing in the MES. FPS only allows one tool per step so our step is an even lower level of routing than operation. For facilities which have the same requirement, this entire table can be left blank and we will use step as the operation in RTG_ROUTE_STEPS_PLUS. But for facilities which allow processing on multiple tools within an operation, we will populate this table and use operation as a grouping of step. Note that because operation can include multiple steps and therefore multiple eqp_families we cannot have any association to equipment by operation.

FPSINPUT.RTG_OPERATION_FAMILIES

FACILITY, OPERATION_FAMILY

List of all operation families. This table can be blank if the facility does not require special operation grouping or specific wip_module assignments.

FPSINPUT.RTG_OVR_CS_SORT_RT_FAM_SEG

FACILITY, COMMON_STEP, ROUTE_FAMILY, ROUTE_SEGMENT

This table allows the ETL to override this value which determines the sorting of common steps on the Line Viewer by route family. Our default logic to do this sort is in RTG_ROUTE_STEPS_PLUS and we hope that is sufficient and that this table can be empty.

FPSINPUT.RTG_PLANPRDS

PLANPRD

Prd and planprd have a many-to-many relationship. Multiple prds share the same planprd when those prds are interchangeable to ship to a customer despite their different processing. These prds could use different routes or even be different technologies or have different wafer sizes but if the customer does not care then they share a planprd. On the other hand, a prd can have multiple planprds when there are different varieties based on recipes or durables used at a particular time that matter to the customer.

FPSINPUT.RTG_PRDS

This table lists all prds from the MES regardless of whether or not they are active. This is because we want all prds in the supply chain of an active prd to be active. So we list all prds in this table then RTG_ACTIVE_PRD_ROUTES_BASE logic determine what prds are active then RTG_ACTIVE_PRD_ROUTES logic activates all prds in the supply chain of an active prd based on RTG_PRD_FACILITY_NEXT. Only the active prds are in RTG_PRDS_PLUS which is used in most cases to get information about prds. Note this means that RTG_PRDS is an exception to our normal rule that PLUS objects have the same rows as their parent object.

FPSINPUT.RTG_PRD_CTM_SERIES

PRD, CTM_SERIES

This table stores the list of CTM series for each prd which is used for selection criteria in the Finished Lot Cycle Time application. In theory this could be determined from RTG_PRD_FACILITY_NEXT but there are often exceptions and options in that table which make it difficult. We found it was easier to configure this manually using this table.

FPSINPUT.RTG_PRD_END_BANKS

FACILITY, PRD, BANK

Stores bank(s) where lots will go after finishing main route of facility-prd. This table has two important uses. First it is used together with RTG_PRD_FACILITY_NEXT. If the facility-prd has no records here then lots go directly to the main_route of the next prd. If it has one record then it will go to that bank until started on the next prd. It is possible to have multiple records which would mean the lots would go to multiple banks in sequence but that is unusual. Second it is used in the WLRT trigger to log jumps to WIP_JUMP_HIST. When a lot moves from any step to an end bank, we jump all non-bank steps on the route which are after that step including any steps which occur after the move_to_bank on the route. Recording the jump for all following steps is necessary to calculate est_smp_pct correctly. One example is a packaging route with multiple choices for the end bank. An example route ends with the following five seq_num: process X, process A1, move to end bank B1, process A2, move to end bank B2. All lots go to process X but A1 and A2 are optional! So lots will either go to X->A1->B1 or X->B1 or X->A2->B2 or X->B2. Of course when the lot moves X->B2 we will log jumps over A1 and A2 since those steps are in between X and B2 on the route. And when the lot moves X->A2 (and then to B2) we will jump over A1. But the important logic is that when we move X->B1 or A1->B1 we actually need to log a jump over A2! Even though A1->B1 is a move between sequential steps on the route! This is so that the est_smp_pct for A2 correctly shows this lot "skipping" this step! If we did not have this logic and the split was 50-50 we would calculate est_smp_pct of 50% for A1 and 100% for A2! With this special "move to end bank" logic we correctly calculate 50% for both steps. An important corollary of this logic is that if a bank in the middle of the route is actually an intermediate bank (meaning that lots leave that bank and continue with the following steps) then it is critical to not include that bank in RTG_PRD_END_BANKS.

FPSINPUT.RTG_PRD_FACILITY_NEXT

SOURCE_FACILITY, SOURCE_PRD, DEST_FACILITY, DEST_PRD

Mapping of product routing through multiple facilities including assembly. PK is both source and next facility/prd for two reasons. First is that multiple source prds can be used to make the next prd. This is indicated by all source prds having the same source_prd_num. Also in this case the source prds should have the same planprd. Second is that assembled prds require multiple source prds. This is indicated by each source prd having a different source_prd_num. Note you could have a combination of these two cases as well.

FPSINPUT.RTG_PRD_STEP_OVR

FACILITY, STEP, PRD

Stores information specific to PRD and STEP which for now is only yield. We only have rows in this table if the information overrides the default. Route is not in this table because we know the route for the PRD using the MAIN_ROUTE column in RTG_PRDS.

FPSINPUT.RTG_PROCESSES

Some information about each process. Process defines what occurs at a step so different steps can share the same process -- see the comments in RTG_ROUTE_STEPS for details. Process is a primary key for throughput and for tool assignments and is displayed all over our applications so it is well worth putting some thought into how to define the process for each route-step.

FPSINPUT.RTG_PROCESS_COUNTERS

this table is used to store the information for each process resource counter/target.

FPSINPUT.RTG_PROCESS_COUNTER_ASGNS

this table is used to store the historical run data on resource counter.

FPSINPUT.RTG_PROCESS_FAMILIES

FACILITY, PROCESS_FAMILY

See comments on EQP_TOOLS for detailed information about EQP hierarchy.

FPSINPUT.RTG_PROCESS_GROUPS

Most columns in this table are configuration for the Scheduler. See comments on EQP_TOOLS for detailed information about EQP hierarchy.

FPSINPUT.RTG_QUEUE_TIMERS

Detailed information about all queue timer sequences. We have three types: multi-step timers, single step timers, and minimum wait timers.

FPSINPUT.RTG_QUEUE_TIMERS_LOT_MANUAL

LOT, TIMER_ID

Table allows ETL to manually populate the time when each lot started a queue sequence. If this table has any records then it will be used exclusively. If empty then we will use FPSBASE.RTG_QUEUE_TIMERS_LOT_AUTO.

FPSINPUT.RTG_ROUTES

List of active routes. We define a route as the full sequence of steps that a product must go through in a facility. If a facility is setup such that one product must go through multiple routes to complete processing then we will define the route as the product.

FPSINPUT.RTG_ROUTE_FAMILIES

FACILITY, ROUTE_FAMILY

Information about each route_family.

FPSINPUT.RTG_ROUTE_GROUPS

FACILITY, ROUTE_GROUP

Information about each route_group.

FPSINPUT.RTG_ROUTE_SEGMENT_SORTS

FACILITY, ROUTE_SEGMENT

Route_segment_sort is provided to the Dashboard by route_family+route_segment in the questionably named view DASH_P_ROUTE_SEGMENTS. This table allows us to set the segment_sort for all route segments across the overall facility. If this table is empty (which is common and acceptable) then logic in RTG_REF_ROUTE_STEPS_PLUS will calculate the segment sort for each route family by ordering based on the seq_num of the various routes in the family. But if this table is populated, we will always see the segment chart sorted based on the order in this table at all levels (family, group, facility). It is critical that if you populate this table that you include all route segments on production routes. If it is populated for some segments but not all (which should not happen but could especially for new routes) then the segments with a defined sort will be first in that order followed by the undefined segments. This logic is not perfect is when the same segments are in clearly different order in different families. So in family Eugenia segment A comes before segment B but in family Audelia segment B comes before segment A. In the table, we set the segment_sort for the overall facility as best we can but we have to choose. We choose to sort like Eugenia so when we look at the Line Viewer for any family, we see A before B which meets our customer requirement that all segments are shown in the order defined in the table. But this is out of order for the Audelia family.

FPSINPUT.RTG_ROUTE_STEPS

Contains basic information that is uniquely determined by a ROUTE-STEP combination. We define a STEP as processing on one tool. We realize that different MES define their routings differently so we will often have to do some complex transaction to get their routing model into our format -- particularly for sites where they allow processing on multiple tools like deposition then inspect at the same step. PROCESS defines what occurs at the STEP. It is possible for multiple steps to share the same PROCESS. This can happen within a route, for example, randomize. But it is most common between routes, for example, 2nd Metal Mask could be step 7000 on route A and step 7100 on route B.

FPSINPUT.RTG_ROUTE_STEP_EQPTYPE_OVR

FACILITY, ROUTE, STEP, EQP_TYPE

Table allows you to override the values used in calculating the line balance score/tool utilization numbers

FPSINPUT.RTG_SCHED_GROUPS

Configuration for all sched_groups in the FPS Scheduler. We need the hours/steps_to_schedule for each sched_group in FPSINPUT to use for WIP_STEP_FUTURE. We add all other configuration columns here too since it is best to have all configuration in the same place. This table will only include groups which are being scheduled and therefore will be empty for sites not using the Scheduler at all.

FPSINPUT.RTG_SMP_LINK_STEPS

FACILITY, ROUTE, SMP_STEP, LINK_STEP

Assigns each sampleable step to its relevant linked step which is typically the process step before the metrology step.

FPSINPUT.RTG_STEP_BALANCE

FACILITY, ROUTE, START_STEP

Input table for the step balance configurations. This allows to control WIP at the start step based on how much WIP is in between the start and end step (Balance Window), how many wafers to allow to run at the start step per day, and tool threading calculation at the start step. Configurations in this table will be used over the common step configuration table.

FPSINPUT.RTG_STEP_THREADING

FACILITY, ROUTE, START_STEP, FUTURE_THREAD_STEP, THREAD_TOOL

Input table for steps and tools to be setup for Threading logic which will fix lots to tools at future steps based on what tool processed them at previous steps

FPSINPUT.RTG_TOOL_ASGN_LOT_PRCS_PATH

LOT, PROCESS, FACILITY, TOOL, CH_PATH

List of chamber run paths for a lot-process-tool. When this table is populated for a lot-process-tool then we will use only the paths listed here. When there is no record then we use our default logic from RTG_TOOL_ASGN_LOT_PROCESS using ch_allowed and require_all_chambers to determine the list of paths. If you populate this table then you can leave ch_allowed blank since it will not be used. However there is nothing wrong with populating ch_allowed as a backup plan.

FPSINPUT.RTG_TOOL_ASGN_LOT_PROCESS

LOT, PROCESS, FACILITY, TOOL

Override RTG_TOOL_ASSIGNMENTS for a specific lot/process. This table will be used instead of RTG_TOOL_ASSIGNMENTS_LOT when many route/step values share the same process.

FPSINPUT.RTG_TOOL_ASGN_LOT_RS_PATH

LOT, STEP, ROUTE, FACILITY, TOOL, CH_PATH

List of chamber run paths for a lot-route-step-tool. When this table is populated for a lot-route-step-tool then we will use only the paths listed here. When there is no record then we use our default logic from RTG_TOOL_ASSIGNMENTS_LOT using ch_allowed and require_all_chambers to determine the list of paths. If you populate this table then you can leave ch_allowed blank since it will not be used. However there is nothing wrong with populating ch_allowed as a backup plan.

FPSINPUT.RTG_TOOL_ASGN_ROUTE_STEP

FACILITY, ROUTE, STEP, TOOL

Override RTG_TOOL_ASSIGNMENTS for a specific lot/route/step. If step_order is populated this table will populate WIP_SMP_FUTURE with TAKE for included steps and SKIP for those not included.

FPSINPUT.RTG_TOOL_ASSIGNMENTS

Contains the tools on which each process is allowed to run along with recipe and other relevant information.

FPSINPUT.RTG_TOOL_ASSIGNMENTS_LOT

Override RTG_TOOL_ASSIGNMENTS for a specific lot/route/step. If step_order is populated this table will populate WIP_SMP_FUTURE with TAKE for included steps and SKIP for those not included.

FPSINPUT.THP_EXTERNAL

This table is for throughput values from an automated source which is external to the FPS DWH, for example a simulation model or corporation planning system. These can override calculated times from THP_4WK_AVG and/or external times from THP_EXTERNAL depending on the always_use flag.

FPSINPUT.THP_MANUAL

For users to manually input throughputs which will override calculated times from THP_EQPTYPE_AUTO and/or external times from THP_EXTERNAL.

FPSINPUT.WIP_BADGES

FACILITY, LOT, BADGE_NAME

Table that contains the badges associated to each lot. More than one badge can be applied to a lot, but the badge name must be unique.

FPSINPUT.WIP_CTM_FORECAST

FACILITY, PRD, PERIOD_LABEL

Forecast of total cycle time by prd for upcoming weeks, months, quarters, and/or years. This is specifically to feed the Finished Lot Cycle Time application but could be used for other applications including Capacity Model and WIP Flush in the future.

FPSINPUT.WIP_DEMAND

FACILITY, PLANPRD, LOT_GROUP, DEMAND_INST

Committed demand by planprd. We use this to generate demand dates for each lot. See the extensive comments in the header of the WIP_FLUSH_REORDER_DEMAND procedure for details.

FPSINPUT.WIP_EVENTS

This table is used only to populate the EVENT_TYPE field in WIP_EVENT_HIST. It assigns an FPS event type to each MES event.

FPSINPUT.WIP_EVENT_ERROR_HIST

When ADM_LOAD_EVENT_HIST_VIA_APD fails to insert any record into WIP_EVENT_HIST, it writes the original values from WIP_APD_EVENT_HIST into this table so that we can debug the failure. This also allows us the option to insert the record manually into WIP_EVENT_HIST later if desired. Please note that this table must have the same columns in the same order as WIP_EVENT_HIST. This table has the same PK as WIP_EVENT_HIST so that the columns will be listed in the same order in the GrimRepo snapshot used by DWH_build but the PK is permanently disabled because we never want the insert to fail.

FPSINPUT.WIP_EVENT_HIST

Probably the most important FPSINPUT table records all events for all lots. It includes lot events logged to tools like begin and end as well as lot events without tools like hold and release. A trigger on this table populates WIP_LOTS_REALTIME with the new values then the WIP_LOTS_REALTIME_UPDATE_BEF trigger has the full logic to populate most of its columns which are then written to WIP_LOT_HIST for each event and WIP_STEP_HIST for every move and change in qty.

FPSINPUT.WIP_EVENT_HIST_LOOP

INST, LOT, LOAD_SEQ_WITHIN_SEC

Temporary table to store records to be inserted into WIP_EVENT_HIST. This table is identical to WIP_EVENT_HIST except with fewer constraints since this stores the raw data before many columns are updated by the insert trigger.

FPSINPUT.WIP_EVENT_PARMS_BY_TYPE

EVENT_TYPE

Table to configure the definition of user-defined event_parm and event_inst columns in WIP_EVENT_HIST for each event_type;

FPSINPUT.WIP_GOALS_PER_SHIFT

FACILITY, PRD, PLANPRD, ROUTE, STEP, LOT_TYPE, PLAN_PRIORITY, IS_NONSTD

Goals for the current and upcoming shifts based on whatever logic is desired by the site. For startup, we can use our STD_WIP_REF_GOALS_PER_SHIFT view to get some reasonable goals.

FPSINPUT.WIP_HOLD_FUTURE

LOT, STEP, ROUTE, FACILITY, EVENT_KEY

Future holds for lots including line holds and holds for the specific lot.

FPSINPUT.WIP_HOLD_GROUPS

HOLD_GROUP

List of all possible hold groups. Having hold type and group allows for two categories of grouping.

FPSINPUT.WIP_HOLD_TYPES

List of all possible hold types that can be assigned to various lots on hold.

FPSINPUT.WIP_LOTS_OVR_EST_END_INST

Estimated end process time for lots in process from an external source.

FPSINPUT.WIP_LOTS_STATIC

LOT

Everything you ever wanted to know about each lot that does not relate to the current step. All lot information regarding the current step is gathered from WIP_LOTS_STATIC_REALTIME views through events. The columns in this table will not change when a lot moves to a new step but instead will change only when they have reason to change and therefore this table will have CHGLOG to track changes.

FPSINPUT.WIP_LOTS_VERIFY

This table has information about the current step for each lot from the MES lot table. We get current step information from the events in WIP_EVENT_HIST but we use this table to verify that our events are correct. Because this table changes frequently and should be represented by WIP_EVENT_HIST it will not have a CHGLOG table.

FPSINPUT.WIP_LOT_FAMILIES

LOT_FAMILY

The purpose of lot family is 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.

FPSINPUT.WIP_LOT_GROUPS

LOT_GROUP

The set of possible lot groups that can be assigned to various lot families. We group WIP and moves by lot group on the dashboard so this is important

FPSINPUT.WIP_LOT_PARAMETERS

LOT, PARAMETER_NAME

Table stores MES parameters and the respective value for a lot. Multiple parameters can be stored per lot.

FPSINPUT.WIP_LOT_TYPES

The set of possible lot types that can be assigned to various lots.

FPSINPUT.WIP_OVR_OPER_MOVES_HIST

START_SHIFT, LOT, OPERATION, FACILITY, INST

This table allows us to override oper moves for past shifts with exact data from the client systems.

FPSINPUT.WIP_PARAMETERS

Table stores MES parameters that are tracked for lots. Serves as foreign key for WIP_LOT_PARAMETERS and provides dropdown list for the MSO UI.

FPSINPUT.WIP_PRIORITIES

This table lists the possible set of priorities that can be assigned to lots in the facility with several columns used to properly configure Dashboard, Scheduler, and NextMove for each priority. If we were starting from scratch then we might have many of these columns in WIP_PRTY_CTM_GROUPS rather than WIP_PRIORITIES because it makes little sense to have two priorities in the same prty_ctm_group with different values for hold_prty_group, is_count_priority_pct, is_nmv_priority, is_timer_wip_priority, never_stop_for_queue, proc_time_look_ahead_pct, prty_transport_mode, sched_sort, and timer_prty_xfactor. Having said that, our ETL and our Scheduler views reference these columns in WIP_PRIORITIES so we will keep them in this table. When you are populating the ETL, please keep in mind that while you are technically allowed to have different values for priorities in the same prty_ctm_group that you likely want to keep them the same.

FPSINPUT.WIP_PRTY_CTM_GROUPS

PRTY_CTM_GROUP

The possible set of priority cycle time groups that can be assigned to different prty_ctm_groups. Separate table needed for normalization of prty_ctm_factor.

FPSINPUT.WIP_SAH_TYPES

SAH_TYPE

The set of possible sendahead types that can be assigned to various lots.

FPSINPUT.WIP_SMP_FUTURE

LOT, STEP, ROUTE

Future sampling decisions for lots.

FPSINPUT.WIP_STARTS

LOT_OR_ALT_ID

List of upcoming starts used for Scheduler, Goal Planner, and Capacity Model. This table includes all starts including both near future and distant future. We might know the exact lot and start time or we might just have a quantity to start over a certain time range - but we have various columns to cover all possibilities.

FPSINPUT.WIP_STEP_FUTURE_OVR

LOT, STEP, ROUTE

This table allows us to override the several fields including sched_group, wait_sec_to_sched, and priority for a specific lot-route-oper. As fits the OVR convention in the name of this table, a value of null for any field means no change. For sched_group, we have special logic that you can populate with a value of "blank!" which will clear the normal sched_group and set to null.

FPSINPUT.WIP_STEP_HIST_MANUAL

INST, TOOL, ACTUAL_CH_USED, EST_MACHINE_RECIPE, BEG_PROC_INST

manually store every completed lot that ran on the tool. this is used to the case when some certain lot did not exist in mes

FPSINPUT.WIP_WAFER_ERROR_HIST

INST, LOT, WAFER, LOT_SEQ_WITHIN_SEC

When ADM_LOAD_EVENT_HIST_VIA_APD fails to insert any record into WIP_WAFER_HIST, it writes the original values from WIP_APD_WAFER_HIST into this table so that we can debug the failure. This also allows us the option to insert the record manually into WIP_WAFER_HIST later if desired. Please note that this table must have the same columns in the same order as WIP_WAFER_HIST. This table has the same PK as WIP_WAFER_HIST so that the columns will be listed in the same order in the GrimRepo snapshot used by DWH_build but the PK is permanently disabled because we never want the insert to fail.

FPSINPUT.WIP_WAFER_HIST

INST, LOT, WAFER, LOT_SEQ_WITHIN_SEC

History of wafer begins and ends, most likely on chambers but could be on main tool as well. This table essentially has two primary keys, both including inst and logged_entity. The first adds event which means we cannot log the same event for multiple wafers at the same time. The second adds lot and wafer which means we cannot log multiple events for the same wafer at the same time. The main purpose of this table is for throughput. Ultimately for non-batch tools we need to calculate the unit interval and the first unit times. The ideal way to calculate this is using (last wafer end - first wafer end) / (qty - 1) as the unit interval and (first wafer end - first wafer begin) as the first unit time. Last wafer end should be job end and first wafer time should be job begin so the key event is first wafer end. If we do not have wafer information then we approximate unit interval as job end - prev job end and first unit as (job end - job beg - unit interval * (qty - 1)) so having the real wafer times helps out throughput be more accurate.

FPSINPUT.WIP_WAFER_HIST_LOOP

INST, LOT, WAFER, LOAD_SEQ_WITHIN_SEC

Temporary table to store records to be inserted into WIP_WAFER_HIST. This table is identical to WIP_WAFER_HIST except with fewer constraints since this stores the raw data before many columns are updated by the insert trigger.