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 檔案會透過將使用者、使用者群組與組織匯出合併為單一檔案來取得。
* 
如果您在匯入 Principals.xml 之前錯誤地匯入了 Entities.xml,您可以在匯入 Principals.xml 之後重新匯入 Entities.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 之前的版本中從平台匯出的實體可能包含不再存在於平台中的主參與者 (使用者、使用者群組、組織與組織單位)。匯入這些實體時,安全性記錄檔中可能會出現「遺失主參與者」警告訊息。作為管理員,請檢查記錄檔,並確保遺失的主參與者確實是已刪除的主參與者,且不會略過或跳過任何合法權限。
* 
管理員必須檢查記錄,並新增因遺失主參與者而跳過或略過的合法權限。
* 
即使在警告記錄檔訊息中顯示了具有拒絕、允許或繼承存取權的已刪除主參與者,也會移除使用者、使用者群組與組織權限。每當在平台中重新建立使用者、使用者群組或組織時,都將會根據收集權限指派權限 (除非另有指定)。請確保每當將使用者、使用者群組或組織新增至系統時,會手動指派拒絕、允許與繼承權限。
這是否有幫助?