Personalizzare ThingWorx Navigate > Creare task personalizzati > Utilizzare i componenti ThingWorx Navigate in un task personalizzato > Personalizzare i componenti > Controllo delle versioni e migrazione
  
Controllo delle versioni e migrazione
Ogni componente di base e implementazione inclusi per impostazione predefinita presentano una versione di configurazione. Le versioni vengono utilizzate per tenere traccia dell'oggetto JSON di configurazione e sono necessarie per garantire che in futuro i componenti personalizzati possano essere migrati in nuove release di ThingWorx Navigate.
Dettagli sul controllo delle versioni
L'oggetto di configurazione JSON contiene due chiavi che tengono traccia della versione: baseConfigurationVersion e implementationConfigurationVersion. Le chiavi sono nascoste nella finestra di dialogo di configurazione in Mashup Builder, ma fanno parte della configurazione restituita dal servizio GetConfigurations.
* 
Per identificare le versioni di configurazione di un componente, eseguire i seguenti servizi sull'oggetto componente:
GetBaseConfigurationVersion, per la versione del componente di base
GetImplementationConfigurationVersion, per la versione dell'implementazione
Chiamata al servizio Migrate
Quando si crea un'implementazione personalizzata per un componente, si crea un modello di oggetto che estende un componente di base o un'implementazione esistente. Qualsiasi servizio nell'implementazione personalizzata che chiama il servizio GetConfigurations deve prima chiamare il servizio Migrate.
Il servizio Migrate presenta quattro parametri:
migrationType - (stringa) Tipo di migrazione, che attualmente supporta solo “Configuration”
data - (JSON) Nome dell'oggetto JSON di configurazione
targeBaseVersion - (stringa) Versione del componente di base
targetImplementationVersion - (stringa) Versione dell'implementazione
Di seguito è riportato un esempio di codice che chiama il servizio Migrate:
var migratedConfig = me.Migrate(
{
"migrationType":"Configuration",
"data":"configuration",
"targetBaseVersion":"9.0.0",
"targetImplementationVersion":"1.0.0"
}
);
Il servizio Migrate confronta il valore di targetBaseVersion con il valore di baseConfiguration dell'oggetto JSON di configurazione e il valore di targetImplementationVersioncon il valore di implementationConfigurationVersion dell'oggetto JSON di configurazione. Se i valori di versione non corrispondono, il servizio Migrate chiama il servizio MigrateBase o il servizio MigrateImplementation, che esegue la migrazione dell'oggetto JSON di configurazione in modo che corrisponda alla versione della base o dell'implementazione di destinazione.
In generale, quando si crea un componente di implementazione della logica aziendale personalizzato, non è necessario chiamare il servizio MigrateImplementation. Tuttavia, se si crea una nuova versione di un'implementazione personalizzata esistente, che utilizza una versione di configurazione diversa, è necessario implementare MigrateImplementation e GetBaseMigrationVersion.
Quando si crea un componente di logica aziendale di base personalizzato, è necessario implementare il servizio MigrateBase.