basicInfo
The basicInfo section provides the core data of a specific part and details its current processing status. By default, a document of type QualityData contains information for a single product. For group-based data processing, the groupFlag parameter in basicInfo is used along with the group section of partDetails to provide information about the group of parts.
Sample XML telegram
This document describes the basicInfo section of XML telegrams used in Part Traceability.
Click to unfold sample XML telegram
<?xml version="1.0" encoding="UTF-8"?>
<documents contentType="QualityData">
<document>
<basicInfo>
<identifier>TEST_A-0001-0033</identifier>
<locationId>00000000888813350001100010004</locationId>
<lastLocation>00000000888813350001100010003</lastLocation>
<typeNo>2265106426</typeNo>
<typeVar>0204</typeVar>
<typeVersion>4</typeVersion>
<nioBits>6</nioBits>
<resultDate>2009-05-12T10:08:44.2031634+01:00</resultDate>
<resultState>1</resultState>
<shift>1</shift>
<typeId/>
<workingCode/>
<batch/>
<workCycleCounter>1</workCycleCounter>
<pStatInterval>4407</pStatInterval>
<procNo>10</procNo>
<partClass/>
<machineId/>
<serialNumber>TestSer4711</serialNumber>
<serialNumberDate>2009-05-12T11:08:44.2031634+01:00</serialNumberDate>
<orderId/>
<release/>
<productFamily/>
<groupFlag/>
</basicInfo>
…
</document>
</documents>
XSD file
A basicInfo XSD file is available for download.
Click to unfold basicInfo XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://opcon.dc.modules.qualitydata/dtos/basic"
xmlns="http://opcon.dc.modules.qualitydata/dtos/basic"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<!-- ===== Common primitives ===== -->
<xs:simpleType name="AllowedUnicodePlus">
<xs:restriction base="xs:string">
<xs:pattern value="[\p{L}\p{N} ._=\$/+%&#*;\-]+"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TypeIdASCII">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Za-z0-9_. ]+"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateTimeWithTZ">
<xs:restriction base="xs:string">
<xs:pattern value="\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+\-]\d{2}:\d{2})"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UIntNonNegative">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NioBitsType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="31"/>
</xs:restriction>
</xs:simpleType>
<!-- FIXED: close restriction properly -->
<xs:simpleType name="ShiftType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="9999"/>
</xs:restriction>
</xs:simpleType>
<!-- Type of the working code -->
<xs:simpleType name="WorkingCodeType">
<xs:restriction base="xs:integer">
<xs:enumeration value="0"/> <!-- Serial Part (A part produced in a standard production process) -->
<xs:enumeration value="1"/> <!-- Test Part (A part used for testing purposes) -->
<xs:enumeration value="2"/> <!-- Example Part (A part used as an example or reference) -->
<xs:enumeration value="3"/> <!-- Reparation Part (A part used for repair purposes) -->
<xs:enumeration value="4"/> <!-- Calibration Part (A part used for calibration of equipment or processes) -->
<xs:enumeration value="5"/> <!-- Master Part (A reference part used as a standard) -->
<xs:enumeration value="6"/> <!-- Stability Part (A part used for stability testing) -->
<xs:enumeration value="7"/> <!-- Change Part (A part used to validate changes in the production process) -->
<xs:enumeration value="8"/> <!-- Data Exchange Part (A part used for data exchange purposes) -->
<xs:enumeration value="9"/> <!-- Empty Part (A placeholder part with no specific attributes) -->
<xs:enumeration value="10"/> <!-- Part for CG Measurement (A part used for CG measurement) -->
<xs:enumeration value="11"/> <!-- Part for SM Measurement (A part used for SM measurement) -->
<xs:enumeration value="12"/> <!-- Audit Part (A part used for audit purposes) -->
<xs:enumeration value="13"/> <!-- Part for GPR Measurement (A part used for GPR measurement) -->
<xs:enumeration value="14"/> <!-- Warm Up Part (A part used for warming up equipment or processes) -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ReleaseType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="999"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ResultStateType">
<xs:restriction base="xs:integer">
<xs:enumeration value="-1"/> <!-- no state -->
<xs:enumeration value="0"/> <!-- not measured -->
<xs:enumeration value="1"/> <!-- OK -->
<xs:enumeration value="2"/> <!-- NOK -->
<xs:enumeration value="3"/> <!-- abort -->
<xs:enumeration value="4"/> <!-- too small -->
<xs:enumeration value="5"/> <!-- too big -->
<xs:enumeration value="6"/> <!-- range too big -->
<xs:enumeration value="7"/> <!-- timeout -->
<xs:enumeration value="8"/> <!-- string comparison wrong -->
<xs:enumeration value="9"/> <!-- measured -->
<xs:enumeration value="12"/> <!-- scrapped -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GroupFlagType">
<xs:restriction base="xs:integer">
<xs:enumeration value="1"/> <!-- Group-related data available -->
<xs:enumeration value="2"/> <!-- Group-related data, with the document containing an INITIAL group/panel (used only for the first station when the group ID is reused with different board combinations) -->
<xs:enumeration value="3"/> <!-- All elements in the results node are removed from the current group -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str80">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="80"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str40">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="40"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str20">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str100">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str32">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="32"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str50">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str3">
<xs:restriction base="AllowedUnicodePlus">
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EmptyString">
<xs:restriction base="xs:string">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr40">
<xs:union memberTypes="Str40 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr20">
<xs:union memberTypes="Str20 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr80">
<xs:union memberTypes="Str80 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr100">
<xs:union memberTypes="Str100 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr32">
<xs:union memberTypes="Str32 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr50">
<xs:union memberTypes="Str50 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrStr3">
<xs:union memberTypes="Str3 EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrAllowedUnicode">
<xs:union memberTypes="AllowedUnicodePlus EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrTypeIdASCII">
<xs:union memberTypes="TypeIdASCII EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrNioBits">
<xs:union memberTypes="NioBitsType EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrShift">
<xs:union memberTypes="ShiftType EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrWorkingCode">
<xs:union memberTypes="WorkingCodeType EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrUIntNonNegative">
<xs:union memberTypes="UIntNonNegative EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrDateTime">
<xs:union memberTypes="DateTimeWithTZ EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrInteger">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:integer"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="EmptyOrRelease">
<xs:union memberTypes="ReleaseType EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrGroupFlag">
<xs:union memberTypes="GroupFlagType EmptyString"/>
</xs:simpleType>
<xs:simpleType name="EmptyOrResultState">
<xs:union memberTypes="ResultStateType EmptyString"/>
</xs:simpleType>
<xs:element name="basicInfo">
<xs:complexType>
<xs:all>
<xs:element name="identifier" type="Str80" minOccurs="0"/> <!-- Unique identifier of a part -->
<xs:element name="locationId" type="Str40" minOccurs="0"/> <!-- Associated station identifier ("Location Identifier") -->
<xs:element name="resultDate" type="DateTimeWithTZ" minOccurs="0"/> <!-- Production date in ISO format 2009-05-12T10:15:44.2031632+01:00 -->
<xs:element name="resultState" type="ResultStateType" minOccurs="0"/> <!-- Result of a process, where the resultState of the last process (process states) also defines the part states of the part. -->
<xs:element name="lastLocation" type="EmptyOrStr40" minOccurs="0"/> <!-- Identifier of the station identifier (locationId). If set, error/nioBits are appended to the last processing result of the part to provide the location value. -->
<xs:element name="typeNo" type="EmptyOrStr20" minOccurs="0"/> <!-- Type number of the part -->
<xs:element name="typeVar" type="EmptyOrStr20" minOccurs="0"/> <!-- Type variant of the part -->
<xs:element name="typeVersion" type="EmptyOrStr20" minOccurs="0"/> <!-- Type version of the part -->
<xs:element name="nioBits" type="EmptyOrNioBits" minOccurs="0"/> <!-- Encoded value of error data -->
<xs:element name="shift" type="EmptyOrShift" minOccurs="0"/> <!-- Identifier of the associated shift -->
<xs:element name="typeId" type="EmptyOrTypeIdASCII" minOccurs="0"/> <!-- Type identifier of the part -->
<xs:element name="workingCode" type="EmptyOrWorkingCode" minOccurs="0"/>
<xs:element name="batch" type="EmptyOrStr80" minOccurs="0"/> <!-- Batch number of the part -->
<xs:element name="workCycleCounter" type="EmptyOrUIntNonNegative" minOccurs="0"/> <!-- Not supported; value is calculated in the database -->
<xs:element name="pStatInterval" type="EmptyOrUIntNonNegative" minOccurs="0"/> <!-- Station cycle time in milliseconds -->
<xs:element name="procNo" type="EmptyOrInteger" minOccurs="0"/> <!-- Process number -->
<xs:element name="partClass" type="EmptyOrStr3" minOccurs="0"/>
<xs:element name="machineId" type="EmptyOrStr100" minOccurs="0"/> <!-- Associated machine identifier -->
<xs:element name="serialNumber" type="EmptyOrStr80" minOccurs="0"/> <!-- Customer serial number of the part -->
<xs:element name="serialNumberDate" type="EmptyOrDateTime" minOccurs="0"/> <!-- Date of serial number application in ISO format 2009-05-12T10:15:44.2031632+01:00 -->
<xs:element name="orderId" type="EmptyOrStr32" minOccurs="0"/>
<xs:element name="release" type="EmptyOrRelease" minOccurs="0"/>
<xs:element name="productFamily" type="EmptyOrStr50" minOccurs="0"/>
<xs:element name="groupFlag" type="EmptyOrGroupFlag" minOccurs="0"/> <!-- Defines whether the document contains group-related data (e.g. panel data) -->
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
|
Time stamps are persisted in the database with a precision of microseconds (6 digits after the decimal point). If a timestamp with higher precision is provided, the additional digits will be truncated to maintain the microsecond precision limit. |