Check Complete (process based)
The Check Complete / Check Complete 2 file is a configuration file for the process based Check Complete Quality Gate check. The schema and example provided illustrates how to structure the Check Complete XML file.
Process based schema
Click to unfold
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ProcessNoTestConfig" targetNamespace="http://tempuri.org/ProcessNoTestConfig.xsd" xmlns:mstns="http://tempuri.org/ProcessNoTestConfig.xsd" xmlns="http://tempuri.org/ProcessNoTestConfig.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="ProcessNoTestConfig" msdata:IsDataSet="true" msdata:Locale="en-US" msprop:Generator_DataSetName="ProcessNoTestConfig" msprop:Generator_UserDSName="ProcessNoTestConfig">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ProcessNo" msprop:Generator_UserTableName="ProcessNo" msprop:Generator_RowEvArgName="ProcessNoRowChangeEvent" msprop:Generator_TableVarName="tableProcessNo" msprop:Generator_TablePropName="ProcessNo" msprop:Generator_RowDeletingName="ProcessNoRowDeleting" msprop:Generator_RowChangingName="ProcessNoRowChanging" msprop:Generator_RowDeletedName="ProcessNoRowDeleted" msprop:Generator_RowEvHandlerName="ProcessNoRowChangeEventHandler" msprop:Generator_TableClassName="ProcessNoDataTable" msprop:Generator_RowChangedName="ProcessNoRowChanged" msprop:Generator_RowClassName="ProcessNoRow" maxOccurs="79228162514264337593543950335">
<xs:complexType>
<xs:sequence>
<xs:element name="ProcessNoID" msprop:Generator_ColumnVarNameInTable="columnProcessNoID" msprop:Generator_ColumnPropNameInRow="ProcessNoID" msprop:Generator_ColumnPropNameInTable="ProcessNoIDColumn" msprop:Generator_UserColumnName="ProcessNoID" type="xs:unsignedLong" />
<xs:element name="ProcessNo" msprop:Generator_ColumnVarNameInTable="columnProcessNo" msprop:Generator_ColumnPropNameInRow="ProcessNo" msprop:Generator_ColumnPropNameInTable="ProcessNoColumn" msprop:Generator_UserColumnName="ProcessNo" type="xs:string" />
<xs:element name="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_UserColumnName="Name" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TestSuite" msprop:Generator_UserTableName="TestSuite" msprop:Generator_RowEvArgName="TestSuiteRowChangeEvent" msprop:Generator_TableVarName="tableTestSuite" msprop:Generator_TablePropName="TestSuite" msprop:Generator_RowDeletingName="TestSuiteRowDeleting" msprop:Generator_RowChangingName="TestSuiteRowChanging" msprop:Generator_RowDeletedName="TestSuiteRowDeleted" msprop:Generator_RowEvHandlerName="TestSuiteRowChangeEventHandler" msprop:Generator_TableClassName="TestSuiteDataTable" msprop:Generator_RowChangedName="TestSuiteRowChanged" msprop:Generator_RowClassName="TestSuiteRow">
<xs:complexType>
<xs:sequence>
<xs:element name="TestSuiteId" msprop:Generator_ColumnVarNameInTable="columnTestSuiteId" msprop:Generator_ColumnPropNameInRow="TestSuiteId" msprop:Generator_ColumnPropNameInTable="TestSuiteIdColumn" msprop:Generator_UserColumnName="TestSuiteId" type="xs:unsignedLong" />
<xs:element name="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_UserColumnName="Name" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Test" msprop:Generator_UserTableName="Test" msprop:Generator_RowEvArgName="TestRowChangeEvent" msprop:Generator_TableVarName="tableTest" msprop:Generator_TablePropName="Test" msprop:Generator_RowDeletingName="TestRowDeleting" msprop:Generator_RowChangingName="TestRowChanging" msprop:Generator_RowDeletedName="TestRowDeleted" msprop:Generator_RowEvHandlerName="TestRowChangeEventHandler" msprop:Generator_TableClassName="TestDataTable" msprop:Generator_RowChangedName="TestRowChanged" msprop:Generator_RowClassName="TestRow">
<xs:complexType>
<xs:sequence>
<xs:element name="TestID" msprop:Generator_ColumnVarNameInTable="columnTestID" msprop:Generator_ColumnPropNameInRow="TestID" msprop:Generator_ColumnPropNameInTable="TestIDColumn" msprop:Generator_UserColumnName="TestID" type="xs:unsignedLong" />
<xs:element name="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_UserColumnName="Name" type="xs:string" minOccurs="0" />
<xs:element name="componentClass" msprop:Generator_ColumnVarNameInTable="columncomponentClass" msprop:Generator_ColumnPropNameInRow="componentClass" msprop:Generator_ColumnPropNameInTable="componentClassColumn" msprop:Generator_UserColumnName="componentClass" type="xs:string" minOccurs="0" />
<xs:element name="DataBase" msprop:Generator_ColumnVarNameInTable="columnDataBase" msprop:Generator_ColumnPropNameInRow="DataBase" msprop:Generator_ColumnPropNameInTable="DataBaseColumn" msprop:Generator_UserColumnName="DataBase" type="xs:unsignedLong" minOccurs="0" />
<xs:element name="TestGroup" msprop:Generator_ColumnVarNameInTable="columnTestGroup" msprop:Generator_ColumnPropNameInRow="TestGroup" msprop:Generator_ColumnPropNameInTable="TestGroupColumn" msprop:Generator_UserColumnName="TestGroup" type="xs:unsignedLong" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DataBase" msprop:Generator_UserTableName="DataBase" msprop:Generator_RowEvArgName="DataBaseRowChangeEvent" msprop:Generator_TableVarName="tableDataBase" msprop:Generator_TablePropName="DataBase" msprop:Generator_RowDeletingName="DataBaseRowDeleting" msprop:Generator_RowChangingName="DataBaseRowChanging" msprop:Generator_RowDeletedName="DataBaseRowDeleted" msprop:Generator_RowEvHandlerName="DataBaseRowChangeEventHandler" msprop:Generator_TableClassName="DataBaseDataTable" msprop:Generator_RowChangedName="DataBaseRowChanged" msprop:Generator_RowClassName="DataBaseRow">
<xs:complexType>
<xs:sequence>
<xs:element name="DataBaseId" msprop:Generator_ColumnVarNameInTable="columnDataBaseId" msprop:Generator_ColumnPropNameInRow="DataBaseId" msprop:Generator_ColumnPropNameInTable="DataBaseIdColumn" msprop:Generator_UserColumnName="DataBaseId" type="xs:unsignedLong" />
<xs:element name="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_UserColumnName="Name" type="xs:string" minOccurs="0" />
<xs:element name="ConnectionString" msprop:Generator_ColumnVarNameInTable="columnConnectionString" msprop:Generator_ColumnPropNameInRow="ConnectionString" msprop:Generator_ColumnPropNameInTable="ConnectionStringColumn" msprop:Generator_UserColumnName="ConnectionString" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TestProcessNo" msprop:Generator_UserTableName="TestProcessNo" msprop:Generator_RowEvArgName="TestProcessNoRowChangeEvent" msprop:Generator_TableVarName="tableTestProcessNo" msprop:Generator_TablePropName="TestProcessNo" msprop:Generator_RowDeletingName="TestProcessNoRowDeleting" msprop:Generator_RowChangingName="TestProcessNoRowChanging" msprop:Generator_RowDeletedName="TestProcessNoRowDeleted" msprop:Generator_RowEvHandlerName="TestProcessNoRowChangeEventHandler" msprop:Generator_TableClassName="TestProcessNoDataTable" msprop:Generator_RowChangedName="TestProcessNoRowChanged" msprop:Generator_RowClassName="TestProcessNoRow">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" msprop:Generator_ColumnVarNameInTable="columnId" msprop:Generator_ColumnPropNameInRow="Id" msprop:Generator_ColumnPropNameInTable="IdColumn" msprop:Generator_UserColumnName="Id" type="xs:unsignedLong" />
<xs:element name="TestID" msprop:Generator_ColumnVarNameInTable="columnTestID" msprop:Generator_ColumnPropNameInRow="TestID" msprop:Generator_ColumnPropNameInTable="TestIDColumn" msprop:Generator_UserColumnName="TestID" type="xs:unsignedLong" minOccurs="0" />
<xs:element name="ProcessNoID" msprop:Generator_ColumnVarNameInTable="columnProcessNoID" msprop:Generator_ColumnPropNameInRow="ProcessNoID" msprop:Generator_ColumnPropNameInTable="ProcessNoIDColumn" msprop:Generator_UserColumnName="ProcessNoID" type="xs:unsignedLong" minOccurs="0" />
<xs:element name="SourceID" msprop:Generator_ColumnVarNameInTable="columnSourceID" msprop:Generator_ColumnPropNameInRow="SourceID" msprop:Generator_ColumnPropNameInTable="SourceIDColumn" msprop:Generator_UserColumnName="SourceID" type="xs:unsignedLong" minOccurs="0" />
<xs:element name="StatusID" msprop:Generator_ColumnVarNameInTable="columnStatusID" msprop:Generator_ColumnPropNameInRow="StatusID" msprop:Generator_ColumnPropNameInTable="StatusIDColumn" msprop:Generator_UserColumnName="StatusID" type="xs:int" minOccurs="0" />
<xs:element name="TargetID" msprop:Generator_ColumnVarNameInTable="columnTargetID" msprop:Generator_ColumnPropNameInRow="TargetID" msprop:Generator_ColumnPropNameInTable="TargetIDColumn" msprop:Generator_UserColumnName="TargetID" type="xs:unsignedLong" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TestGroup" msprop:Generator_UserTableName="TestGroup" msprop:Generator_RowEvArgName="TestGroupRowChangeEvent" msprop:Generator_TableVarName="tableTestGroup" msprop:Generator_TablePropName="TestGroup" msprop:Generator_RowDeletingName="TestGroupRowDeleting" msprop:Generator_RowChangingName="TestGroupRowChanging" msprop:Generator_RowDeletedName="TestGroupRowDeleted" msprop:Generator_RowEvHandlerName="TestGroupRowChangeEventHandler" msprop:Generator_TableClassName="TestGroupDataTable" msprop:Generator_RowChangedName="TestGroupRowChanged" msprop:Generator_RowClassName="TestGroupRow">
<xs:complexType>
<xs:sequence>
<xs:element name="TestGroupId" msprop:Generator_ColumnVarNameInTable="columnTestGroupId" msprop:Generator_ColumnPropNameInRow="TestGroupId" msprop:Generator_ColumnPropNameInTable="TestGroupIdColumn" msprop:Generator_UserColumnName="TestGroupId" type="xs:unsignedLong" />
<xs:element name="Name" msprop:Generator_ColumnVarNameInTable="columnName" msprop:Generator_ColumnPropNameInRow="Name" msprop:Generator_ColumnPropNameInTable="NameColumn" msprop:Generator_UserColumnName="Name" type="xs:string" minOccurs="0" />
<xs:element name="TestSuite" msprop:Generator_ColumnVarNameInTable="columnTestSuite" msprop:Generator_ColumnPropNameInRow="TestSuite" msprop:Generator_ColumnPropNameInTable="TestSuiteColumn" msprop:Generator_UserColumnName="TestSuite" type="xs:unsignedLong" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AdditionalInfo" msprop:Generator_UserTableName="AdditionalInfo" msprop:Generator_RowEvArgName="AdditionalInfoRowChangeEvent" msprop:Generator_TableVarName="tableAdditionalInfo" msprop:Generator_TablePropName="AdditionalInfo" msprop:Generator_RowDeletingName="AdditionalInfoRowDeleting" msprop:Generator_RowChangingName="AdditionalInfoRowChanging" msprop:Generator_RowDeletedName="AdditionalInfoRowDeleted" msprop:Generator_RowEvHandlerName="AdditionalInfoRowChangeEventHandler" msprop:Generator_TableClassName="AdditionalInfoDataTable" msprop:Generator_RowChangedName="AdditionalInfoRowChanged" msprop:Generator_RowClassName="AdditionalInfoRow">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" msprop:Generator_ColumnVarNameInTable="columnId" msprop:Generator_ColumnPropNameInRow="Id" msprop:Generator_ColumnPropNameInTable="IdColumn" msprop:Generator_UserColumnName="Id" type="xs:unsignedLong" />
<xs:element name="TestProcessNoID" msprop:Generator_ColumnVarNameInTable="columnTestProcessNoID" msprop:Generator_ColumnPropNameInRow="TestProcessNoID" msprop:Generator_ColumnPropNameInTable="TestProcessNoIDColumn" msprop:Generator_UserColumnName="TestProcessNoID" type="xs:unsignedLong" minOccurs="0" />
<xs:element name="ParamName" msprop:Generator_ColumnVarNameInTable="columnParamName" msprop:Generator_ColumnPropNameInRow="ParamName" msprop:Generator_ColumnPropNameInTable="ParamNameColumn" msprop:Generator_UserColumnName="ParamName" type="xs:string" minOccurs="0" />
<xs:element name="ParamIntValue" msprop:Generator_ColumnVarNameInTable="columnParamIntValue" msprop:Generator_ColumnPropNameInRow="ParamIntValue" msprop:Generator_ColumnPropNameInTable="ParamIntValueColumn" msprop:Generator_UserColumnName="ParamIntValue" type="xs:int" minOccurs="0" />
<xs:element name="ParamRealValue" msprop:Generator_ColumnVarNameInTable="columnParamRealValue" msprop:Generator_ColumnPropNameInRow="ParamRealValue" msprop:Generator_ColumnPropNameInTable="ParamRealValueColumn" msprop:Generator_UserColumnName="ParamRealValue" type="xs:double" minOccurs="0" />
<xs:element name="ParamStringValue" msprop:Generator_ColumnVarNameInTable="columnParamStringValue" msprop:Generator_ColumnPropNameInRow="ParamStringValue" msprop:Generator_ColumnPropNameInTable="ParamStringValueColumn" msprop:Generator_UserColumnName="ParamStringValue" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RepositoryInfo" msprop:Generator_TableClassName="RepositoryInfoDataTable" msprop:Generator_TableVarName="tableRepositoryInfo" msprop:Generator_TablePropName="RepositoryInfo" msprop:Generator_RowDeletingName="RepositoryInfoRowDeleting" msprop:Generator_RowChangingName="RepositoryInfoRowChanging" msprop:Generator_RowEvHandlerName="RepositoryInfoRowChangeEventHandler" msprop:Generator_RowDeletedName="RepositoryInfoRowDeleted" msprop:Generator_UserTableName="RepositoryInfo" msprop:Generator_RowChangedName="RepositoryInfoRowChanged" msprop:Generator_RowEvArgName="RepositoryInfoRowChangeEvent" msprop:Generator_RowClassName="RepositoryInfoRow">
<xs:complexType>
<xs:sequence>
<xs:element name="revision" msprop:Generator_ColumnVarNameInTable="columnrevision" msprop:Generator_ColumnPropNameInRow="revision" msprop:Generator_ColumnPropNameInTable="revisionColumn" msprop:Generator_UserColumnName="revision" type="xs:string" minOccurs="0" />
<xs:element name="author" msprop:Generator_ColumnVarNameInTable="columnauthor" msprop:Generator_ColumnPropNameInRow="author" msprop:Generator_ColumnPropNameInTable="authorColumn" msprop:Generator_UserColumnName="author" type="xs:string" minOccurs="0" />
<xs:element name="commitDate" msprop:Generator_ColumnVarNameInTable="columncommitDate" msprop:Generator_ColumnPropNameInRow="commitDate" msprop:Generator_ColumnPropNameInTable="commitDateColumn" msprop:Generator_UserColumnName="commitDate" type="xs:string" minOccurs="0" />
<xs:element name="URL" msprop:Generator_ColumnVarNameInTable="columnURL" msprop:Generator_ColumnPropNameInRow="URL" msprop:Generator_ColumnPropNameInTable="URLColumn" msprop:Generator_UserColumnName="URL" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="key4">
<xs:selector xpath=".//mstns:ProcessNo" />
<xs:field xpath="mstns:ProcessNoID" />
</xs:unique>
<xs:unique name="key2">
<xs:selector xpath=".//mstns:TestSuite" />
<xs:field xpath="mstns:TestSuiteId" />
</xs:unique>
<xs:unique name="key3">
<xs:selector xpath=".//mstns:Test" />
<xs:field xpath="mstns:TestID" />
</xs:unique>
<xs:unique name="key1">
<xs:selector xpath=".//mstns:DataBase" />
<xs:field xpath="mstns:DataBaseId" />
</xs:unique>
<xs:unique name="PK_TESTLOCATION" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TestProcessNo" />
<xs:field xpath="mstns:Id" />
</xs:unique>
<xs:unique name="PK_TESTGROUP" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TestGroup" />
<xs:field xpath="mstns:TestGroupId" />
</xs:unique>
<xs:unique name="PK_ADDITIONALINFO">
<xs:selector xpath=".//mstns:AdditionalInfo" />
<xs:field xpath="mstns:Id" />
</xs:unique>
<xs:keyref name="Rel_TestProcessNo_AdditionalInfo" refer="PK_TESTLOCATION" msprop:rel_Generator_UserChildTable="AdditionalInfo" msprop:rel_Generator_ChildPropName="GetAdditionalInfoRows" msprop:rel_Generator_UserRelationName="Rel_TestProcessNo_AdditionalInfo" msprop:rel_Generator_RelationVarName="relationRel_TestProcessNo_AdditionalInfo" msprop:rel_Generator_UserParentTable="TestProcessNo" msprop:rel_Generator_ParentPropName="TestProcessNoRow">
<xs:selector xpath=".//mstns:AdditionalInfo" />
<xs:field xpath="mstns:TestProcessNoID" />
</xs:keyref>
<xs:keyref name="Rel_TestSuite_TestGroup" refer="key2" msprop:rel_Generator_UserChildTable="TestGroup" msprop:rel_Generator_ChildPropName="GetTestGroupRows" msprop:rel_Generator_UserRelationName="Rel_TestSuite_TestGroup" msprop:rel_Generator_RelationVarName="relationRel_TestSuite_TestGroup" msprop:rel_Generator_UserParentTable="TestSuite" msprop:rel_Generator_ParentPropName="TestSuiteRow" msdata:AcceptRejectRule="Cascade">
<xs:selector xpath=".//mstns:TestGroup" />
<xs:field xpath="mstns:TestSuite" />
</xs:keyref>
<xs:keyref name="Rel_Test_TestLocations" refer="key3" msprop:rel_Generator_UserChildTable="TestProcessNo" msprop:rel_Generator_ChildPropName="GetTestProcessNoRows" msprop:rel_Generator_UserRelationName="Rel_Test_TestProcessNo" msprop:rel_Generator_RelationVarName="relationRel_Test_TestProcessNo" msprop:rel_Generator_UserParentTable="Test" msprop:rel_Generator_ParentPropName="TestRow" msdata:RelationName="Rel_Test_TestProcessNo">
<xs:selector xpath=".//mstns:TestProcessNo" />
<xs:field xpath="mstns:TestID" />
</xs:keyref>
<xs:keyref name="Rel_ProcesNo_TestProcessNo" refer="key4" msprop:rel_Generator_UserChildTable="TestProcessNo" msprop:rel_Generator_ChildPropName="GetTestProcessNoRows" msprop:rel_Generator_UserRelationName="Rel_ProcesNo_TestProcessNo" msprop:rel_Generator_RelationVarName="relationRel_ProcesNo_TestProcessNo" msprop:rel_Generator_UserParentTable="ProcessNo" msprop:rel_Generator_ParentPropName="ProcessNoRow" msdata:AcceptRejectRule="Cascade">
<xs:selector xpath=".//mstns:TestProcessNo" />
<xs:field xpath="mstns:ProcessNoID" />
</xs:keyref>
<xs:keyref name="Rel_TestGroup_Test" refer="PK_TESTGROUP" msprop:rel_Generator_UserChildTable="Test" msprop:rel_Generator_ChildPropName="GetTestRows" msprop:rel_Generator_UserRelationName="Rel_TestGroup_Test" msprop:rel_Generator_RelationVarName="relationRel_TestGroup_Test" msprop:rel_Generator_UserParentTable="TestGroup" msprop:rel_Generator_ParentPropName="TestGroupRow" msdata:AcceptRejectRule="Cascade">
<xs:selector xpath=".//mstns:Test" />
<xs:field xpath="mstns:TestGroup" />
</xs:keyref>
<xs:keyref name="Rel_DataBase_Test" refer="key1" msprop:rel_Generator_UserChildTable="Test" msprop:rel_Generator_ChildPropName="GetTestRows" msprop:rel_Generator_UserRelationName="Rel_DataBase_Test" msprop:rel_Generator_RelationVarName="relationRel_DataBase_Test" msprop:rel_Generator_UserParentTable="DataBase" msprop:rel_Generator_ParentPropName="DataBaseRow" msdata:AcceptRejectRule="Cascade">
<xs:selector xpath=".//mstns:Test" />
<xs:field xpath="mstns:DataBase" />
</xs:keyref>
</xs:element>
</xs:schema>
Process based example
Click to unfold
<?xml version="1.0" standalone="yes"?>
<ProcessNoTestConfig xmlns="http://tempuri.org/ProcessNoTestConfig.xsd">
<ProcessNo>
<ProcessNoID>0</ProcessNoID>
<ProcessNo>455</ProcessNo>
<Name>305_455 AOI Taumelkreis</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>1</ProcessNoID>
<ProcessNo>911</ProcessNo>
<Name>310_911 Plasma</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>2</ProcessNoID>
<ProcessNo>834</ProcessNo>
<Name>315_834 DS Spring</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>3</ProcessNoID>
<ProcessNo>1164</ProcessNo>
<Name>320_1164 Asym Spring</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>4</ProcessNoID>
<ProcessNo>277</ProcessNo>
<Name>325_277 Sym Spring</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>5</ProcessNoID>
<ProcessNo>835</ProcessNo>
<Name>330_835 X Spring</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>6</ProcessNoID>
<ProcessNo>469</ProcessNo>
<Name>335_469 AOI Vision Spring</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>7</ProcessNoID>
<ProcessNo>276</ProcessNo>
<Name>340_276 PCB Placement</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>8</ProcessNoID>
<ProcessNo>279</ProcessNo>
<Name>345_279 PCB PressIn</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>9</ProcessNoID>
<ProcessNo>457</ProcessNo>
<Name>355_457_AOI_DSK</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>10</ProcessNoID>
<ProcessNo>914</ProcessNo>
<Name>360_914 PressIn Lid</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>11</ProcessNoID>
<ProcessNo>295</ProcessNo>
<Name>365_295 Cover Placement</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>12</ProcessNoID>
<ProcessNo>266</ProcessNo>
<Name>370_266 LDS</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>14</ProcessNoID>
<ProcessNo>912</ProcessNo>
<Name>300_912 In-Station</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>15</ProcessNoID>
<ProcessNo>1455</ProcessNo>
<Name>305_1455 AOI Taumelkreis Vision</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>16</ProcessNoID>
<ProcessNo>1163</ProcessNo>
<Name>315_1163 DS Spring Vision</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>17</ProcessNoID>
<ProcessNo>78</ProcessNo>
<Name>340_78 PCB Entnahme</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>18</ProcessNoID>
<ProcessNo>1457</ProcessNo>
<Name>355_1457_AOI_DSK Vision</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>19</ProcessNoID>
<ProcessNo>992</ProcessNo>
<Name>300_992 In-Station</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>20</ProcessNoID>
<ProcessNo>1914</ProcessNo>
<Name>365_1914_Q-Gate Ende LT4</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>21</ProcessNoID>
<ProcessNo>1912</ProcessNo>
<Name>280_1912_Q-Gate Ende LT2</Name>
</ProcessNo>
<ProcessNo>
<ProcessNoID>22</ProcessNoID>
<ProcessNo>485</ProcessNo>
<Name>340_485_ElkoTesting</Name>
</ProcessNo>
<TestSuite>
<TestSuiteId>0</TestSuiteId>
<Name>TestSuite</Name>
</TestSuite>
<Test>
<TestID>1</TestID>
<Name>Test_LT1_bis_LT3</Name>
<componentClass />
<DataBase>0</DataBase>
<TestGroup>0</TestGroup>
</Test>
<Test>
<TestID>2</TestID>
<Name>LID</Name>
<componentClass>LID</componentClass>
<DataBase>0</DataBase>
<TestGroup>1</TestGroup>
</Test>
<Test>
<TestID>4</TestID>
<Name>PCB</Name>
<componentClass>PCB</componentClass>
<DataBase>0</DataBase>
<TestGroup>2</TestGroup>
</Test>
<DataBase>
<DataBaseId>0</DataBaseId>
<Name>OLTP</Name>
<ConnectionString>data Source=OLTP;user id=some_user;password=some_password</ConnectionString>
</DataBase>
<TestProcessNo>
<Id>19</Id>
<TestID>1</TestID>
<ProcessNoID>0</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>20</Id>
<TestID>1</TestID>
<ProcessNoID>2</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>21</Id>
<TestID>1</TestID>
<ProcessNoID>3</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>22</Id>
<TestID>1</TestID>
<ProcessNoID>7</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>23</Id>
<TestID>1</TestID>
<ProcessNoID>9</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>25</Id>
<TestID>1</TestID>
<ProcessNoID>12</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>26</Id>
<TestID>1</TestID>
<ProcessNoID>8</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>28</Id>
<TestID>1</TestID>
<ProcessNoID>15</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>29</Id>
<TestID>1</TestID>
<ProcessNoID>18</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>30</Id>
<TestID>1</TestID>
<ProcessNoID>6</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>33</Id>
<TestID>2</TestID>
<ProcessNoID>20</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>34</Id>
<TestID>1</TestID>
<ProcessNoID>21</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestProcessNo>
<Id>35</Id>
<TestID>4</TestID>
<ProcessNoID>22</ProcessNoID>
<StatusID>1</StatusID>
</TestProcessNo>
<TestGroup>
<TestGroupId>0</TestGroupId>
<Name>TestGroup</Name>
<TestSuite>0</TestSuite>
</TestGroup>
<TestGroup>
<TestGroupId>1</TestGroupId>
<Name>TestGroupComponentLID</Name>
<TestSuite>0</TestSuite>
</TestGroup>
<TestGroup>
<TestGroupId>2</TestGroupId>
<Name>TestGroupComponentPCB</Name>
<TestSuite>0</TestSuite>
</TestGroup>
<AdditionalInfo>
<Id>30</Id>
<TestProcessNoID>19</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>31</Id>
<TestProcessNoID>19</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>8</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>32</Id>
<TestProcessNoID>20</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>33</Id>
<TestProcessNoID>20</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>3</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>34</Id>
<TestProcessNoID>21</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>35</Id>
<TestProcessNoID>21</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>3</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>36</Id>
<TestProcessNoID>22</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>37</Id>
<TestProcessNoID>22</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>38</Id>
<TestProcessNoID>23</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>39</Id>
<TestProcessNoID>23</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>3</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>42</Id>
<TestProcessNoID>25</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>43</Id>
<TestProcessNoID>25</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>44</Id>
<TestProcessNoID>26</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>45</Id>
<TestProcessNoID>26</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>47</Id>
<TestProcessNoID>28</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>48</Id>
<TestProcessNoID>29</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>49</Id>
<TestProcessNoID>30</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>50</Id>
<TestProcessNoID>30</TestProcessNoID>
<ParamName>MaxCycle</ParamName>
<ParamIntValue>3</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>53</Id>
<TestProcessNoID>33</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>54</Id>
<TestProcessNoID>34</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
<AdditionalInfo>
<Id>55</Id>
<TestProcessNoID>35</TestProcessNoID>
<ParamName>FinalState</ParamName>
<ParamIntValue>1</ParamIntValue>
</AdditionalInfo>
</ProcessNoTestConfig>
Description
This section provides details about the configuration files used for the Quality Gate Checks.
ProcessNo element
The ProcessNo
element describes the specification of a process with the following sub-elements:
Parameter | Data Type | Description |
---|---|---|
|
int |
Unique ID for the process. The content of this element must be unique within the configuration. |
|
int |
Specifies the process number. |
|
string |
Process name. |
The |
DataBase element
The DataBase
element configures a data source. Within the Test Specification, multiple data sources can be assigned at the test level, which means that quality data from different sources can be utilized. The DataBase
element must include all the parameters necessary to establish the database connection.
Parameter | Data Type | Description |
---|---|---|
|
unsignedLong |
Unique ID for the data source. The content of this element must be unique within the configuration. |
|
string |
Descriptive name for the data source. |
|
string |
The connection string used for establishing the connection. |
TestGroup element
The TestGroup
element defines a test group. Within the configuration, TestGroup serves as a grouping element for the various tests.
Parameter | Data Type | Description |
---|---|---|
|
unsignedLong |
Unique ID for the test group. The content of this element must be unique within the configuration. |
|
string |
Descriptive name of the test group. |
|
unsignedLong |
Reference to a TestSuite element that contains the test suite for the test group. |
Test element
The Test
element defines a test. It is a central element within the configuration as it serves as a grouping element for individual rules. Moreover, through this element, the origin of the data and the selection of the component to be checked are determined.
A test without configured rules (see subsequent chapter) is not applicable and will therefore be ignored. Such tests are not included in the test evaluation!
Parameter | Data Type | Description |
---|---|---|
|
unsignedLong |
Unique ID of the test. The content of this element must be unique within the configuration. |
|
string |
Descriptive name of the test. |
|
string |
Defines the component for which the test is to be performed. It is mandatory to define componentClass. |
|
unsignedLong |
Reference to a <DataBase> element that configures the database to be used. |
|
unsignedLong |
Reference to a <TestGroup> element that contains the test group for the test. |
In a database, result data for multiple components may exist. Therefore, it is imperative to specify the correct component class. If multiple components with the same classification are identified, the most recently installed component is used. If the test is to be performed for a main part, the component class must be set to an empty string (""). |
TestProcessNo element
The TestProcessNo
element assigns a process to a test. This is referred to as a rule.
Parameter | Data Type | Description |
---|---|---|
|
unsignedLong |
Unique ID for the rule. The ID must be unique within the configuration. |
|
unsignedLong |
ID of the test element to which the rule is assigned. |
|
string |
Name of the process to which the rule applies. |
|
unsignedLong |
ID of the ProcessNo element that defines the preceding process. |
|
unsignedLong |
ID of the ProcessNo element that defines the subsequent process. |
|
int |
Expected processing status of the process to be verified. |
If the preceding process should not be checked, the |
AdditionalInfo element
The AdditionalInfo
element allows additional conditions to be attached to a rule. These conditions are checked when the rule is applied. If any of the additional conditions fails, the rule is considered violated.The element has the following sub-elements:
Parameter | Data Type | Description |
---|---|---|
|
unsignedLong |
Unique ID for the additional condition. This value must be unique within the configuration. |
|
unsignedLong |
Reference to the TestProcessNo element that contains the rule for the additional condition. |
|
string |
Keyword that defines the additional condition. |
|
int |
Default value as an integer, depending on the keyword used. |
|
double |
Default value as a real number, depending on the keyword used. |
|
string |
Default value as a string, depending on the keyword used. |
Following keywords can be used for the additional conditions:
Keyword | Configuration Parameter | Description |
---|---|---|
|
ParamIntValue |
Checks whether the final state of the part (the last station result) matches the status defined in the rule. Allowed values: (null) or 0: additional condition disabled; 1: additional condition enabled. |
|
ParamIntValue |
Specifies the state in which the part must be. This condition refers to the overall part state of the main part. |
|
ParamIntValue |
Specifies the state in which the part must not be. This condition refers to the overall part state of the main part. |
|
ParamStringValue |
Defines the timestamp after which the part is considered valid. |
|
ParamIntValue |
Defines the minimum number of times a part must be processed at a station, regardless of its status. |
|
ParamIntValue |
Defines the maximum number of times a part may be processed at a station, regardless of its status. |
|
ParamIntValue |
Specifies the minimum processing time at a station. |
|
ParamIntValue |
Specifies the maximum processing time at a station. |
|
ParamIntValue |
Defines the maximum number of cycles permitted at a station, depending on the part’s status. |
|
ParamIntValue |
Defines the minimum number of cycles required at a station, depending on the part’s status. |
|
ParamIntValue (single value) or ParamStringValue (multiple values) |
Specifies forbidden states within the process results. For a single value, e.g. 12 indicates scrapped. For multiple values, list them separated by commas (e.g., 2,12,30). |
|
ParamIntValue |
Boolean value provided as an integer. A value of 0 indicates that the part is packaged; any other value indicates that it is not packaged. |
Without specifying additional conditions, no specific check is performed. In that case, the mere presence of the dataset, as defined in the rule, is accepted. Note that it is not possible to define multiple PartStateEqual or PartStateNotEqual conditions for a single rule. The overall result within test groups is determined by a logical OR of the contained tests. If multiple tests within a test group fail, the error message cannot be clearly assigned. Therefore, it is recommended to define a separate test group for timing conditions (MinTimer and MaxTimer). |