Primeros pasos en ThingWorx > Importación y exportación en ThingWorx > Importación de entidades en 9.2 y versiones posteriores
Importación de entidades en 9.2 y versiones posteriores
Debido a las mejoras realizadas en los permisos y el modelo de seguridad de ThingWorx, se han realizado cambios sustanciales en la forma en que se almacenan los permisos en ThingWorx 9.2.0 y versiones posteriores. Estas mejoras afectan al proceso de importación de entidades de versiones anteriores a ThingWorx 9.2.0 y versiones posteriores. Antes de ThingWorx 9.2.0, era posible importar entidades con permisos que utilizaban identidades (usuarios, grupos de usuarios, organizaciones y unidades de organización) que todavía no se habían importado a la plataforma. Las identidades se podían importar más tarde. En 9.2.0 y versiones posteriores, las entidades con permisos que tienen referencias a identidades que no se encuentran actualmente en la plataforma, o que no formen parte del mismo fichero de importación, perderán los permisos asignados.
Concretamente, la importación de entidades de versiones anteriores a ThingWorx 9.2.0 y versiones posteriores puede provocar fallos debido a los siguientes escenarios de identidades faltantes:
Identidades borradas que siguen presentes en el JSON de permisos que se almacena con la entidad.
Entidades importadas con identidades válidas que no están actualmente en el sistema, pero que se importarán posteriormente.
Para evitar estos fallos, primero se deben importar todos los usuarios, grupos de usuarios y organizaciones (Principals.xml) a los que se hace referencia en la exportación de entidades y, a continuación, importar las entidades (Entities.xml). De este modo, se garantiza que los usuarios, los grupos de usuarios, las unidades de organización y las organizaciones existen en la plataforma antes de importar las entidades que hacen referencia a estas identidades en sus permisos. El fichero principals.xml se obtiene mediante la combinación de las exportaciones de usuarios, grupos de usuarios y organizaciones en un único fichero.
* 
Si se importa por error Entities.xml antes de importar Principals.xml, se puede volver a importarEntities.xml después de importar Principals.xml para aplicar los permisos a las entidades.
Combinación de entidades e identidades en el mismo fichero XML
También se pueden combinar las entidades y las identidades en el mismo fichero de importación. No es necesario conservar el orden en el mismo fichero de importación, ya que la plataforma importará las identidades antes de importar cualquier otra entidad. Por ejemplo, el siguiente fichero AllEntities.xml funcionará en 9.2.0 y versiones posteriores:
//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>
Errores de identidades faltantes
Las entidades exportadas de la plataforma en versiones anteriores a 9.2.0 pueden contener identidades (usuarios, grupos de usuarios, organizaciones y unidades de organización) que ya no están presentes en la plataforma. Cuando se importan estas entidades, puede haber mensajes de aviso de "identidades faltantes" en el registro de seguridad. Como administrador, examine los registros y asegúrese de que las identidades faltantes se borren realmente y de que no se desestime u omita ningún permiso legítimo.
* 
El administrador debe examinar los registros y añadir los permisos legítimos que se han omitido o desestimado debido a la identidad faltante.
* 
Incluso si la identidad borrada con acceso de denegación, permiso o heredado aparece en el mensaje del registro de avisos, se quitan los permisos de usuario, grupo de usuarios y organización. Siempre que se vuelva a crear un usuario, un grupo de usuarios o una organización en la plataforma, los permisos se asignarán según el permiso de recopilación (a menos que se especifique lo contrario). Asegúrese de que los permisos de denegación, permiso y heredados se asignen manualmente siempre que el usuario, el grupo de usuarios o la organización se añada al sistema.
¿Fue esto útil?