This guide explains how to submit repair (UUR) reports to WATS using the .NET API. UUR reports record what was repaired on a unit and link back to the UUT report that failed.
What is a UUR report?
A UUR (Unit Under Repair) report records a repair action performed on a unit that previously failed testing. It links to the original failed UUT report via the unit's serial number and part number. WATS uses UUR data for repair analysis, first-time yield calculations, and traceability.
Prerequisites
- A repair type configured in WATS → Control Panel → Repair Types
- The serial number of the unit that was repaired (must match a UUT report in WATS)
Creating a UUR report
using Virinco.WATS.Interface;
// api is the TDM instance provided to ImportReport(),
// or obtained from a standalone TDM object.
// Create a UUR report — links to the UUT by serial number
UURReport uur = api.CreateUURReport(
operatorName: "Jane Smith", // repair technician
repairType: new RepairType("PCB"), // repair type name from WATS
operationType: new OperationType("Board Repair"), // optional process
serialNumber: "SN-001234", // the unit that was repaired
partNumber: "PCBA-4711",
revisionNumber: "A"
);
uur.StartDateTimeUTC = DateTime.UtcNow;
uur.ExecutionTime = 1800; // 30 minutes in seconds
// Record the failure symptoms found
uur.FailureDescription = "3.3V rail measured at 2.8V; capacitor C12 shorted";
// Record what was done to fix it
uur.RepairDescription = "Replaced C12 (100µF / 16V electrolytic)";
// Record any replaced components
uur.AddReplacedPart("C12", "Capacitor 100µF 16V", "CAP-100U-16V");
// Set overall status
uur.Status = UURStatusType.Repaired;
// Submit
api.Submit(uur);
UURReport properties
| Property | Type | Description |
|---|---|---|
StartDateTimeUTC | DateTime | When repair started (UTC) |
ExecutionTime | double | Repair duration in seconds |
FailureDescription | string | Symptom observed before repair |
RepairDescription | string | What was done to fix the unit |
Status | UURStatusType | Repaired, BeyondRepair, NoFaultFound |
Comment | string | Free-form notes |
UURStatusType values
Repaired— the unit was successfully repaired and is ready for re-testBeyondRepair— the unit cannot be repaired economically; scrap itNoFaultFound— no defect found; unit may have been misidentified
Adding replaced parts
// Record a component replacement
uur.AddReplacedPart(
refDesignator: "C12", // e.g. circuit reference designator
partName: "Capacitor 100µF 16V", // human-readable description
partNumber: "CAP-100U-16V" // part number for inventory tracking
);
// Multiple parts in one repair
uur.AddReplacedPart("U5", "Microcontroller ATmega328P", "MCU-ATM328P");
uur.AddReplacedPart("R42", "Resistor 10kΩ 1%", "RES-10K-1P");
Building a repair converter
If you have a file that records repair data, create an IReportConverter_v2 converter that parses the file and submits UUR reports:
public Report? ImportReport(TDM api, Stream file)
{
// Parse the repair log file
var repairData = ParseRepairFile(file);
foreach (var repair in repairData)
{
UURReport uur = api.CreateUURReport(
operatorName: repair.Technician,
repairType: new RepairType(repair.RepairTypeName),
operationType: new OperationType("Board Repair"),
serialNumber: repair.SerialNumber,
partNumber: repair.PartNumber,
revisionNumber: repair.Revision
);
uur.StartDateTimeUTC = repair.StartTime.ToUniversalTime();
uur.ExecutionTime = repair.DurationSeconds;
uur.FailureDescription = repair.FailureSymptom;
uur.RepairDescription = repair.RepairAction;
uur.Status = repair.Repaired
? UURStatusType.Repaired
: UURStatusType.BeyondRepair;
foreach (var part in repair.ReplacedParts)
uur.AddReplacedPart(part.RefDes, part.Description, part.PartNumber);
api.Submit(uur);
}
return null; // already submitted
}
Linking UUR to an existing UUT
WATS links UUR reports to UUT reports automatically based on matching serial number and part number. Make sure these values in the UUR report exactly match the corresponding UUT report (including case).
Comments
0 comments
Please sign in to leave a comment.