Reports in the WATS Standard JSON Format can be submitted to WATS by calling this method with a WSJF report in the body of the request:
POST https://your-wats-server.com/api/report/wsjf
NOTE: This method is available from server version 20.2.
The method returns OK 200 if the report was received and validated successfully, or 400 Bad Request along with a validation error text if the report does not validate.
This method can be used to submit Test reports or Repair reports.
Read more about WJSF here: https://virinco.zendesk.com/hc/en-us/articles/360015705199
NOTE: The validation rules and required fields for submitting with the rest API are different from the requirements of the WATS Client converter. The rest API requirements are listed below. See the PDF in the article linked above for the converter requirements.
The following is a description of what properties are used in this format.
report
The root object is the report object.
Properties |
Data type |
Required |
id |
Guid |
Yes |
location |
String (100) |
Yes |
machineName |
String (100) |
Yes |
pn |
String (100) |
Yes |
purpose |
String (100) |
Yes |
result |
Character (P, F, E, T) |
Yes |
rev |
String (100) |
Yes |
sn |
String (100) |
Yes |
start |
DateTime |
Yes |
startUTC |
DateTime |
Yes |
type |
Character (T, R) |
Yes |
processName |
String |
No |
processCode |
Number |
Yes |
processCodeFormat |
String |
No |
root |
step object, only if type is T |
If type is T, yes |
uut |
uut object, only if type is T |
If type is T, yes |
uur |
uur object, only if type is R |
If type is R, yes |
miscInfos |
Array of miscInfo |
No |
subUnits |
Array of subUnit |
If type is R, yes |
assets |
Array of assets |
No |
assetStats |
Array of assetStats |
Output Only |
binaryData |
Array of binaryData, only if type is R |
No |
origin |
String |
Output only |
productName |
String |
Output only |
Validation Rules
- processCode and processName are required to be valid values.
- processName is case sensitive.
miscInfo
Properties |
Data type |
Required |
description |
String |
Yes |
numeric |
Number |
If no text, yes |
numericFormat |
String |
No |
text |
String (100) |
If no numeric, yes |
typedef |
String (30) |
No |
Validation Rules
- If type is R, description is required to be a valid value.
subUnit
Properties |
Data type |
Required |
partType |
String (50) |
Yes |
sn |
String (100) |
Yes |
pn |
String (100) |
Yes |
rev |
String (100) |
No |
idx |
Number, only if type is R |
If type is R, yes |
parentIdx |
Number, only if type is R |
No |
position |
Number, only if type is R |
No |
replacedIdx |
Number, only if type is R |
No |
failures |
Array of failure, only if type is R |
If type is R, yes |
Validation rules
- When type is R, one subUnit is required to have idx = 0, it is required to have pn, sn, and rev equal to report, and it cannot have parentIdx.
- idx is required to be unique.
- parentIdx cannot be the same as idx.
- parentIdx must refer to an idx.
- replacedIdx cannot be the same as idx or parentIdx.
- replacedIdx must refer to an idx.
asset
Properties |
Data type |
Required |
assetSN |
String (100) |
Yes |
usageCount |
Number |
Yes |
usageCountFormat |
String |
No |
assetStats
Properties |
Data type |
Required |
assetSN |
String (100) |
Output only |
runningCount |
Number |
Output only |
runningCountExceeded |
Number |
Output only |
totalCount |
Number |
Output only |
totalCountExceeded |
Number |
Output only |
daysSinceCalibration |
Number |
Output only |
calibrationDaysOverdue |
Number |
Output only |
daysSinceMaintenance |
Number |
Output only |
maintenanceDaysOverdue |
Number |
Output only |
message |
String |
Output only |
uut
Properties |
Data type |
Required |
batchFailCount |
Number |
No |
batchFailCountFormat |
String |
No |
batchLoopIndex |
Number |
No |
batchLoopIndexFormat |
String |
No |
batchSN |
String (100) |
No |
comment |
String (5000) |
No |
errorCode |
Number |
No |
errorCodeFormat |
String |
No |
errorMessage |
String |
No |
execTime |
Number |
No |
execTimeFormat |
String |
No |
fixtureId |
String (100) |
No |
stepIdCausedUUTFailure |
Number |
Output only |
testSocketIndex |
Number |
No |
testSocketIndexFormat |
String |
No |
user |
String (100) |
Yes |
step
Properties |
Data type |
Required |
group |
Character (S, M, C) |
Yes |
name |
String (100) |
Yes |
status |
Character (P, F, E, T, S) |
Yes |
stepType |
String |
Yes |
id |
Number |
If on one step, required for all |
interactiveExeNum |
Number |
No |
interactiveExeNumFormat |
String |
No |
reportText |
String |
No |
start |
DateTime |
No |
causedSeqFailure |
Bool |
No |
causedUUTFailure |
Bool |
No |
errorCode |
Number |
No |
errorCodeFormat |
String |
No |
errorMessage |
String |
No |
totTime |
Number |
No |
totTimeFormat |
String |
No |
tsGuid |
String (30) |
No |
seqCall |
seqCall object |
No |
numericMeas |
Array of numericMeas |
No |
stringMeas |
Array of stringMeas |
No |
booleanMeas |
Array of booleanMeas |
No |
chart |
chart object |
No |
attachment |
attachment object |
No |
loop |
loopInfo object |
No |
steps |
step object |
No |
callExe |
callExe object |
No |
messagePopup |
messagePopup object |
No |
Validation Rules
- The first step's status is required to match report status and have a seqCall.
- id is required to be unique.
- At least one of seqCall, numericMeas, stringMeas, booleanMeas, chart, attachment or additionalResults is required.
- Can only have one of seqCall, numericMeas, stringMeas, or booleanMeas.
- step can only have value if seqCall also has value, and at least one step is required if seqCall has value.
- Can only have one of chart or attachment.
- If one numericMeas, stringMeas, or booleanMeas; status and numericMeas, stringMeas, or booleanMeas status is required to match.
- If multiple numericMeas, stringMeas, or booleanMeas; status cannot be F unless at least one of the numericMeas, stringMeas, or booleanMeas have status F.
- If multiple numericMeas, stringMeas, or booleanMeas, status cannot be P unless none of the numericMeas, stringMeas, or booleanMeas have status F.
- numericMeas, stringMeas, or booleanMeas name is required be unique within a step.
- step name within a step is required to be unique.
- If status is S (Skipped), numericMeas, stringMeas, booleanMeas, callExe, messagePopup, chart, attachment, additionalResults and steps will be ignored. This provides better analysis of skipped steps.
- stepType is the icon displayed in WATS. Possible values: SequenceCall, NumericLimitTest, ET_NLT, ET_MNLT, StringValueTest, ET_SVT, ET_MSVT, PassFailTest, ET_PFT, ET_MPFT, Action, ET_A, Label, CallExecutable, MessagePopup.
seqCall
Properties |
Data type |
Required |
path |
String (500) |
Yes |
name |
String (200) |
Yes |
version |
String (30) |
Yes |
numericMeas
numericMeas is a measurement, where the measurement is a number.
Properties |
Data type |
Required |
compOp |
Enum (LOG, EQ, NE, LT, LE, GT, GE, LTGT, LTGE, LEGT, LEGE, GTLT, GTLE, GELT, GELE) |
Yes |
highLimit |
Number |
If compOp is dual limit, yes |
highLimitFormat |
String |
No |
lowLimit |
Number |
If compOp is single or dual limit, yes |
lowLimitFormat |
String |
No |
name |
String (100) |
If multiple numericMeas, yes |
value |
Number |
Yes |
valueFormat |
String |
No |
status |
Character (P, F, S) |
Yes |
unit |
String (20) |
Yes |
Validation Rules
- LOG is a none limit compOp; when used, lowLimit and highLimit are not supported.
- EQ, NE, LT, LE, GT, and GE are single limit compOp; when used, lowLimit is required and highLimit is not supported.
- LTGT, LTGE, LEGT, LEGE, GTLT, GTLE, GELT, GELE are dual limit compOp; when used, lowLimit and highLimit are required. lowLimit and highLimit are misnamed, think of them as limit1 and limit2 respectively.
stringMeas
stringMeas is a measurement, where the measurement is text.
Properties |
Data type |
Required |
compOp |
Enum (LOG, EQ, NE, CASESENSIT, IGNORECASE) |
Yes |
limit |
String (100) |
If compOp is single limit, yes |
value |
String (100) |
Yes |
name |
String (100) |
If multiple stringMeas, yes |
status |
Character (P, F, S) |
Yes |
Validation Rules
- LOG is a none limit compOp; when used,limit is not supported.
- EQ, NE, CASESENSIT, and IGNORECASE are single limit compOp; when used, limit is required.
booleanMeas
booleanMeas is a measurement, where the measurement is true or false.
Properties |
Data type |
Required |
name |
String (100) |
If multiple booleanMeas, yes |
status |
Character (P, F, S) |
Yes |
chart
Properties |
Data type |
Required |
chartType |
Enum (Line, LineLogXY, LineLogX, LineLogY) |
Yes |
label |
String (100) |
Yes |
xLabel |
String (50) |
Yes |
xUnit |
String (20) |
Yes |
yLabel |
String (50) |
Yes |
yUnit |
String (20) |
Yes |
series |
Array of series |
Yes |
Validation Rules
- Cannot have more than 10 series.
- Cannot have more than 10000 data points total.
series
Properties |
Data type |
Required |
dataType |
Enum (XYG) |
Yes |
name |
String (100) |
Yes |
xdata |
String |
No |
ydata |
String |
Yes |
Validation Rules
- The text in xdata and ydata is a semicolon separated list of numbers.
attachment
Properties |
Data type |
Required |
contentType |
MIME type (string) (100) |
Yes |
name |
String (100) |
Yes |
data |
Base64 encoded string |
Yes |
loopInfo
Properties |
Data type |
Required |
idx |
Number |
If step is an index in a loop, yes |
endingIndex |
Number |
If step is a summary step, yes |
num |
Number |
If step is a summary step, yes |
passed |
Number |
If step is a summary step, yes |
failed |
Number |
If step is a summary step, yes |
Validation Rules
- Steps that are part of the same loop is required to have the same name.
- One step in a loop is required to be a summary step.
- endingIndex in summary step is required to be the same as the index in the last index step.
- passed in a summary step is required to match the number of index steps with status passed.
- failed in a summary step is required to match the number of index steps with status failed.
- num is required to match the number of index steps.
- index in an index step is required to be unique within a loop.
- A seqCall, numericMeas, stringMeas, booleanMeas, or step within an index step is required to have a matching seqCall, numericMeas, stringMeas, booleanMeas, or step, respectively, in the summary step.
- A seqCall, numericMeas, stringMeas, booleanMeas, or step within a summary step is required to have a matching seqCall, numericMeas, stringMeas, booleanMeas, or step, respectively, in each index step.
- The last index step is required to have matching statuses and measurement values as well.
callExe
Properties |
Data type |
Required |
exitCode |
Number |
Yes |
exitCodeFormat |
String |
No |
messagePopup
Properties |
Data type |
Required |
button |
Number |
Yes |
buttonFormat |
String |
No |
response |
String (200) |
Yes |
uur
Properties |
Data type |
Required |
active |
Bool |
Yes |
confirmDate |
DateTime |
Yes |
execTime |
Number |
Yes |
execTimeFormat |
String |
No |
finalizeDate |
DateTime |
Yes |
parent |
GUID |
No |
refUUT |
GUID |
Yes |
user |
String (100) |
Yes |
comment |
String (5000) |
No |
processName |
String |
No |
processCode |
Number |
Yes |
processCodeFormat |
String |
No |
failures
Properties |
Data type |
Required |
artNumber |
String (100) |
No |
artVendor |
String (500) |
No |
artRev |
String (100) |
No |
artDescription |
String (500) |
No |
category |
String |
Yes |
code |
String |
Yes |
comRef |
String (50) |
Yes |
funcBlock |
String (100) |
No |
comment |
String |
No |
refStepId |
Number |
No |
attachments |
Array of binaryData |
No |
Validation Rules
- category and code are required to be valid values.
binaryData
Properties |
Data type |
Required |
contentType |
MIME type (string) (100) |
Yes |
name |
String |
Yes |
data |
Base64 encoded string |
Yes |
Comments
0 comments
Please sign in to leave a comment.