版本化與移轉
所包括的每個基礎元件與實行預設都有一個組態版本。版本可用來追蹤 JSON 組態物件,且為必要的,以確保將來能夠將自訂元件移轉至新的 ThingWorx Navigate 發行版本。
版本化詳細資訊
JSON 組態物件包含兩個用來追蹤版本的金鑰:baseConfigurationVersionimplementationConfigurationVersion。請注意,這些金鑰在 Mashup Builder 的組態對話方塊中是隱藏的,但屬於從 GetConfigurations 服務傳回的組態。
欲識別元件的組態版本,請對元件物件執行下列服務:
GetBaseConfigurationVersion (針對基礎元件的版本)
GetImplementationConfigurationVersion (針對實行的版本)
* 
ThingWorx Navigate 9.3 開始,所有現成元件組態的版本化皆配置為 nav.<version number>。例如,9.3 中所有現成實體的版本是 nav.1。建立自訂元件組態時,請勿使用此版本化配置;它僅供 ThingWorx Navigate 內部使用。
呼叫移轉服務
建立元件的自訂實行即是建立會延伸現有基礎或實行的物範本。自訂實行中調用 GetConfigurations 服務的任何服務都必須先調用 Migrate 服務。
Migrate 服務有四個參數:
migrationType - 字串;移轉類型,目前僅支援 “Configuration”"Tailoring""Delta"
data - JSON;要移轉的資料。它必須包含 baseConfigurationVersionimplementationConfigurationVersion 欄位
targetBaseVersion - 字串;基礎元件的版本
targetImplementationVersion - 字串;要移轉至的實行版本
以下是調用 Migrate 服務的範例程式碼:
var migratedConfig = me.Migrate(
{
"migrationType":"Configuration",
"data":{"baseConfigurationVersion":{"value":"nav.1"},"implementationConfigurationVersion":{"value":"nav.1"},"maxNumberOfRowsInGrid":{"inTailoring":true,"value":5}},
"targetBaseVersion":"nav.1",
"targetImplementationVersion":"nav.1"
}
);
Migrate 服務會將 targetBaseVersion 的值與 JSON 組態物件中 baseConfiguration 的值進行比較,以及將 targetImplementationVersion 的值與 JSON 組態物件中 implementationConfigurationVersion 的值進行比較。如果版本值不相符,則 Migrate 服務會調用 MigrateBase 服務或 MigrateImplementation 服務,來移轉 JSON 組態物件,使其與目標基礎或目標實行的版本相符。
一般而言,當建立自訂企業邏輯實行元件時,您不需要調用 MigrateImplementation 服務。但是,如果您建立新版本的現有自訂實行,且它使用不同的組態版本,則您需要實行 MigrateImplementationGetBaseMigrationVersion
建立自訂基礎企業邏輯元件時,您必須實行 MigrateBase 服務。
這是否有幫助?