Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden.
Siehe Verbindung zum TIA Portal aufbauen -
Sie haben mit Ihrer TIA Portal Openness-Anwendung ein Projekt geöffnet.
Siehe Öffnen eines Projekts
Einleitung
Sie können mit TIA Portal Openness Typen auf Inkonsistenzen prüfen. Die Typen können einen unterschiedlichen Konsistenzstatus haben. Der Typ ist konsistent, wenn der abhängige Typ die Standardversion des Abhängigkeitstyps verwendet. Der Typ ist inkonsistent, wenn der abhängige Typ nicht die Standardversion des Abhängigkeitstyps verwendet.
Der Konsistenzstatus des Ordners zeigt an, ob ein Typ unter der Struktur konsistent oder inkonsistent ist.
Die Status API gehört zur Klasse Siemens.Engineering.Library.Types.LibraryTypeund Siemens.Engineering.Library.Types.LibraryTypeFolderund hat den Typ ConsistencyStatus.
Damit ein Benutzer von TIA Portal Openness den Konsistenzstatus eines Typs/Ordners prüfen kann, wird das Attribut "Status" für folgende Elemente eingeführt:
-
Systemordner
-
Benutzerdefinierter Ordner
-
Typ
Damit können Sie eine Liste inkonsistenter Typen erstellen, um bestimmte Operationen mit ihnen auszuführen:
|
var listOfInconsistentTypes = Folder.Types.Where(x => x.Status == ConsistencyStatus.DefaultVersionInconsistent); |
Enum ConsistencyStatus unterstützt die folgenden Werte:
|
Wert |
Beschreibung |
|---|---|
|
DefaultVersionInConsistent |
Abhängige Typen verwenden nicht die Standardversion von Abhängigkeitstypen |
|
Consistent |
Abhängige Typen verwenden die Standardversion von Abhängigkeitstypen |
Programmcode
Ändern Sie folgenden Programmcode, um das Statusattribut für den Systemordner "Types" in der Projektbibliothek zu lesen:
|
... ILibrary myProjectLibrary = Project.ProjectLibrary; LibraryTypeSystemFolder typeFolder = myProjectLibrary.TypeFolder; var systemTypeFolderConsistencyStatus = typeFolder.Status; if(systemTypeFolderConsistencyStatus == ConsistencyStatus.DefaultVersionInConsistent) { //Do something. } // List of InConsistentType var listOfInCosistentTypes = typeFolder.Types.Where(x => x.Status == ConsistencyStatus.InConsistent); foreach(var type in listOfInCosistentTypes) {// From type, user can get details like Author, Guid etc var nameOfType = type.LibraryTypeName; var guid = type.Guid; var authorOfTheVersion = type.Author; var status = type.State; } ... |
Ändern Sie folgenden Programmcode, um das Statusattribut für "UserFolder" in der Projektbibliothek zu lesen:
|
... ILibrary myProjectLibrary = Project.ProjectLibrary; LibraryTypeUserFolder userFolder = myProjectLibrary.TypeFolder.Folders.Find("folder1"); var userTypeFolderConsistencyStatus = userFolder.Status; if(userTypeFolderConsistencyStatus == ConsistencyStatus.DefaultVersionInConsistent) { //Do something. } ... |
Ändern Sie folgenden Programmcode, um das Statusattribut für "Individual Type" in der Projektbibliothek zu lesen:
|
... ILibrary myProjectLibrary = Project.ProjectLibrary; LibraryTypeUserFolder userFolder = myProjectLibrary.TypeFolder.Folders.Find("folder1"); ILibraryType blockType = userFolder.Types.Find("block1"); var blockTypeConsistencyStatus = blockType.Status; if(blockTypeConsistencyStatus == ConsistencyStatus.DefaultVersionInConsistent) { //Do something. } ... |
|
Hinweis Dieses Attribut kann auch in der globalen Bibliothek auf die gleiche Weise verwendet werden. |
Ausnahmebehandlung
Ist einer der ausgewählten Typen oder Ordner Null oder nicht Teil der Quellbibliothek, wird eine Ausnahme ArgumentNullException ausgegeben.
|
var projectLibrary = Project.ProjectLibrary; var type1 = projectLibrary.Types.FindType("Type1"); var status = typeFolder.Status; // throws ArgumentNullException |
Siehe auch