This article provides an explanation about how WATS receives reports, and what happens to the report after it is received.
Insertion
When the report is first received WATS performs a quick sanity check on the report.
WATS adds the user's username as origin to the report if it is missing. When using the WATS Client API the client automatically sets origin as itself. Origin is used to tie the report to a client or web client in system manager, for filtering and restricting access to reports.
If an error occurs at any point during the sanity check, the report insertion, or while saving to storage, the report is not accepted, and the changes made to WATS so far are rolled back.
The report is added queued for processing, the raw report is saved in storage, and the report reception statistics (how many reports and how many bytes per day) are updated.
Processing
The report processing queue is checked every 3 minutes and also every time a new report is received.
If the start date time of the report is in the future, processing will be delayed until the start date time is not in the future anymore. In the mean time, the report can be found in Quarantined reports.
WATS checks if the report already exists; if the report ID exists or if the header data is the same as an existing report, the new report replaces the old report. The header data that is checked is:
- Report type (UUT or UUR)
- Serial number
- Part number
- Process code
- Start date time (+/- 500 ms)
When a report is replaced, it inherits the old reports receive count. If a report has been received more than the maximum 100 times it will not be processed again, which means that only the UUT or UUR report is changed, and the aggregated data will not be changed.
The raw report is unpacked and put into the database so it can be used in analysis. If the report replaced another report, the data for that report is deleted and the data for the new report is added, unless the new report has the exact same header and step data as the old report, then nothing happens as the data for the old and the new report would be identical.
Origin is used to find which client the report belongs to. If origin is a username, that user's web client will be used. If origin is a client MAC address, that client is used. If no client is found, processing ends with an error.
If the report's process code does not exist, processing ends with an error.
Step and measurement data is unpacked and put into the database, but only the top 15 levels. That means that when there are more than 15 nested sequence calls in a row the steps below sequence call number 15 are not used. The steps and measurements that are deeper than 15 are not used in analysis and aggregation, but will still be visible in the UUT or UUR report.
If the report includes used assets, statistics for those assets at that point in time is calculated and stored with the report. If the report is replaced, asset statistics are not recalculated.
If an error occurs during processing, the report is put in quarantine, and will be attempted again later, up to 20 times.
After successful processing, the report shows up in analysis.
Datawarehouse
After processing, report data is added to the aggregated yield and measurement data. Aggregated data is updated about every 1 minute, so there may be delay between a report showing up in Test Reports and that report affecting yield.
Aggregated and report step data is eventually archived, see Archiving data.
Comments
0 comments
Please sign in to leave a comment.