Начало работы с ThingWorx > Импорт и экспорт в ThingWorx > Импорт сущностей в версию 9.2 и более поздние
Импорт сущностей в версию 9.2 и более поздние
Из-за улучшений, внесенных в разрешения ThingWorx и модель безопасности, были внесены существенные изменения в способ хранения разрешений в ThingWorx 9.2.0 и более поздних версий. Эти улучшения влияют на процесс импорта сущностей из старых выпусков в ThingWorx 9.2.0 и более поздних версий. До выпуска Thingworx 9.2.0 можно было импортировать сущности с разрешениями участников (пользователей, групп пользователей, организаций и подразделений), которые еще не были импортированы в платформу; участники могли импортироваться позже. Начиная с выпуска 9.2.0, сущности с разрешениями, имеющими привязки к участникам, которые не находятся в настоящее время в платформе или не являются частью того же самого файла импорта, будут терять назначенные им разрешения.
В частности, импорт сущностей из старых выпусков в Thingworx 9.2.0 и более поздних версий может привести к сбоям из-за отсутствия следующих сценариев участников:
Удаленные участники, которые все еще присутствуют в JSON разрешений, сохраняющихся с сущностью.
Сущности, импортированные с действительными участниками, которые в данный момент не находятся в системе, но будут импортированы позже.
Чтобы избежать этих сбоев, необходимо сначала импортировать всех пользователей, группы пользователей и организации (Principals.xml), на которые ссылается экспорт сущностей, а затем импортировать сущности (Entities.xml). Это гарантирует, что пользователи, группы пользователей, подразделения и организации существуют в платформе перед импортом сущностей, которые ссылаются на этих участников в своих разрешениях. Файл principals.xml получается путем комбинирования экспорта пользователя, группы пользователей и организации в один файл.
* 
Если случайно файл entities.xml был импортирован перед импортом principals.xml, можно повторно импортировать entities.xml после импорта principals.xml, чтобы применить разрешения к сущностям.
Комбинирование сущностей и участников в одном и том же XML-файле
Можно также комбинировать сущности и участников в одном и том же файле импорта. Нет необходимости поддерживать порядок в одном файле импорта, так как платформа будет импортировать участников перед импортом любых других сущностей. Например, следующий файл AllEntities.xml будет работать в версии 9.2.0 и более поздних:
//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>
Ошибки отсутствия участников
Сущности, экспортированные из платформы в версиях, предшествующих 9.2.0, могут содержать участников (пользователей, группы пользователей, организации и подразделения), которые больше не присутствуют в платформе. При импорте этих сущностей в журнале безопасности может появиться сообщение об отсутствии участников. В качестве администратора проверьте журналы и убедитесь, что отсутствующие участники действительно являются удаленными участниками и что вы не игнорируете или не пропускаете законные разрешения.
* 
Администратор должен исследовать журналы и добавить законные разрешения, которые были пропущены или игнорировались из-за отсутствия участника.
* 
Даже если в сообщении журнала предупреждений отображается удаленный участник с запрещенным, разрешенным или унаследованным доступом, будут удалены разрешения пользователя, группы пользователей и организации. Всякий раз, когда пользователь, группа пользователей или организация воссоздаются в платформе, эти разрешения будут назначаться для разрешения набора (если не указано иное). Убедитесь, что при добавлении пользователя, группы пользователей или организации в систему вручную назначаются запрет, разрешение и наследование разрешений.
Было ли это полезно?