Erste Schritte mit ThingWorx > In ThingWorx importieren und exportieren > Entitäten in 9.2 und höher importieren
Entitäten in 9.2 und höher importieren
Aufgrund von Verbesserungen an ThingWorx Berechtigungen und dem Sicherheitsmodell wurden erhebliche Änderungen in Bezug auf die Speicherung von Berechtigungen in ThingWorx 9.2.0 und höher vorgenommen. Diese Verbesserungen haben Auswirkungen darauf, wie Entitäten aus älteren Versionen in ThingWorx 9.2.0 und höher importiert werden. Vor ThingWorx 9.2.0 war es möglich, Entitäten mit Berechtigungen unter Verwendung von Prinzipalen (Benutzer, Benutzergruppen, Organisationen und Organisationseinheiten), die noch nicht in die Plattform importiert wurden, zu importieren. Prinzipale konnten später importiert werden. In 9.2.0 und höher verlieren Entitäten mit Berechtigungen, die Referenzen zu derzeit nicht in der Plattform befindlichen Prinzipalen haben oder die nicht Teil derselben Importdatei sind, die ihnen zugewiesenen Berechtigungen.
Insbesondere das Importieren von Entitäten aus älteren Versionen in ThingWorx 9.2.0 und höher kann zu Fehlern aufgrund der folgenden fehlenden Prinzipalszenarien führen:
Gelöschte Prinzipale, die noch in der Berechtigungs-JSON vorhanden sind, die mit der Entität persistent gemacht wird
Mit gültigen Prinzipalen importierte Entitäten, die sich derzeit nicht im System befinden, jedoch zu einem späteren Zeitpunkt importiert werden
Zum Vermeiden dieser Fehler müssen Sie zunächst alle Benutzer, Benutzergruppen und Organisationen (Principals.xml) importieren, auf die in Ihrem Entitäten-Export verwiesen wird, und dann die Entitäten (Entities.xml) importieren. Dadurch wird sichergestellt, dass die Benutzer, Benutzergruppen, Organisationseinheiten und Organisationen in der Plattform vorhanden sind, bevor Entitäten importiert werden, die diese Prinzipale in ihren Berechtigungen referenzieren. Die Datei principals.xml wird abgerufen, indem die Benutzer-, Benutzergruppen- und Organisationsexporte in einer einzelnen Datei kombiniert werden.
* 
Wenn Sie die Datei Entities.xml versehentlich vor der Datei Principals.xml importieren, so können Sie die Datei Entities.xml nach dem Import der Datei Principals.xml erneut importieren, um die Berechtigungen auf die Entitäten anzuwenden.
Entitäten und Prinzipale in derselben XML-Datei kombinieren
Sie können die Entitäten und Prinzipale auch in derselben Importdatei kombinieren. Die Reihenfolge muss innerhalb derselben Importdatei nicht beibehalten werden, da die Plattform die Prinzipale vor den Entitäten importiert. Beispiel: Die nachfolgende Datei AllEntities.xml funktioniert in 9.2.0 und höher:
//AllEntities.xml
<Entities build="latest" majorVersion="0" minorVersion="0"
revision="0" schemaVersion="940">
<Things>
<Thing effectiveThingPackage="ConfiguredThing" enabled="true" homeMashup=""
identifier="" lastModifiedDate="2017-04-10T14:15:07.346-04:00" name="TestThing-WithPermissions"
projectName="" published="false" tags=""
thingTemplate="GenericThing" valueStream="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions>
<Permissions resourceName="*">
<PropertyRead />
<PropertyWrite />
<ServiceInvoke>
<Principal isPermitted="true" name="New-TestUser"
type="User" />
</ServiceInvoke>
<EventInvoke />
<EventSubscribe />
</Permissions>
</RunTimePermissions>
<VisibilityPermissions>
<Visibility>
<Principal isPermitted="true" name="New-TestOrg"
type="Organization" />
</Visibility>
</VisibilityPermissions>
<ConfigurationTables />
<ConfigurationChanges />
</Thing>
</Things>
<Users>
<User description="" documentationContent="" enabled="true" name="New-TestUser" projectName="" tags="">
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions />
</User>
</Users>
<Organizations>
<Organization description="Organization for Visibility Permissios tests"
name="New-SystemOrg" projectName="" tags="">
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables />
<loginImage />
<Connections>
<Connection from="" to="New-SystemOrgUnit" />
</Connections>
<OrganizationalUnits>
<OrganizationalUnit description="top of the food chain"
name="New-SystemOrgUnit">
<Members>
<Members>
<Member name="System" type="User" />
</Members>
</Members>
</OrganizationalUnit>
</OrganizationalUnits>
</Organization>
<Organization name="New-TestOrg" projectName="" tags="">
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables />
<loginImage />
<Connections>
<Connection from="" to="New-TestOrgUnit" />
</Connections>
<OrganizationalUnits>
<OrganizationalUnit description=""
name="New-TestOrgUnit">
<Members>
<Members>
<Member name="New-TestUser" type="User" />
</Members>
</Members>
</OrganizationalUnit>
</OrganizationalUnits>
<ConfigurationChanges>
</ConfigurationChanges>
</Organization>
</Organizations>
<Menus />
<Resources />
<DataTags />
<ThingShapes />
<Subsystems />
</Entities>
Fehler bezüglich fehlender Prinzipale
Entitäten, die von der Plattform auf Versionen vor 9.2.0 exportiert wurden, können Prinzipale (Benutzer, Benutzergruppen, Organisationen und Organisationseinheiten) enthalten, die in der Plattform nicht mehr vorhanden sind. Werden diese Entitäten importiert, enthält das Sicherheitsprotokoll möglicherweise eine Warnmeldung, dass Prinzipale fehlen. Der Administrator muss die Protokolle prüfen und sicherstellen, dass es sich bei den fehlenden Prinzipalen in der Tat um gelöschte Prinzipale handelt und keine legitimen Berechtigungen ignoriert oder übersprungen wurden.
* 
Legitime Berechtigungen, die aufgrund eines fehlenden Prinzipals übersprungen oder ignoriert wurden, müssen vom Administrator hinzugefügt werden.
* 
Selbst wenn der gelöschte Prinzipal mit Berechtigungen für Verweigern oder Zulassen oder mit geerbten Berechtigungen als Warnung im Protokoll angezeigt wird, werden die Berechtigungen für Benutzer, Benutzergruppe und Organisation entfernt. Jedes Mal wenn ein Benutzer, eine Benutzergruppe oder eine Organisation auf der Plattform neu erstellt wird, werden die Berechtigungen auf Grundlage der Sammlungsberechtigung zugewiesen (sofern nicht anders angegeben). Stellen Sie sicher, dass die Berechtigungen für Verweigern, Zulassen sowie die geerbten Berechtigungen manuell zugewiesen werden, wenn Benutzer, Benutzergruppen oder Organisationen zum System hinzugefügt werden.
War dies hilfreich?