バージョン管理と移行
既成で含まれている基本コンポーネントおよび実装ごとにコンフィギュレーションバージョンがあります。バージョンは、JSON コンフィギュレーションオブジェクトを追跡するために使用されるので、後でカスタムコンポーネントを新しい ThingWorx Navigate リリースに移行できるようにする必要があります。
バージョン管理の詳細
JSON コンフィギュレーションオブジェクトには、バージョンを追跡する baseConfigurationVersionimplementationConfigurationVersion の 2 つのキーが含まれています。これらのキーは Mashup Builder のコンフィギュレーションダイアログボックスでは非表示になっていますが、GetConfigurations サービスから返されたコンフィギュレーションの一部であることに注意してください。
コンポーネントのコンフィギュレーションバージョンを特定するには、コンポーネント Thing に対して次のサービスを実行します。
GetBaseConfigurationVersion - ベースコンポーネントのバージョン
GetImplementationConfigurationVersion - 実装のバージョン
* 
ThingWorx Navigate 9.3 以降では、既成のすべてのコンポーネントコンフィギュレーションのバージョンスキームは nav.<version number> です。たとえば、9.3 のすべての既成エンティティのバージョンは nav.1 のようになります。カスタムのコンポーネントコンフィギュレーションの作成時には、このバージョンスキームを使用しないでください。これは ThingWorx Navigate の内部でのみ使用されます。
移行サービスの呼び出し
コンポーネントのカスタム実装を作成する場合、既存のベースコンポーネントまたは実装を拡張する Thing Template を作成します。GetConfigurations サービスを呼び出すカスタム実装内のすべてのサービスは、最初に Migrate サービスを呼び出す必要があります。
この Migrate サービスには次の 4 つのパラメータがあります。
migrationType- 文字列。移行のタイプ。現在 “Configuration”"Tailoring""Delta" のみをサポート
data - JSON。移行するデータ。baseConfigurationVersion および implementationConfigurationVersion フィールドが含まれている必要があります。
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 サービスを呼び出す必要はありません。ただし、既存のカスタム実装の新しいバージョンを作成し、別のコンフィギュレーションバージョンを使用する場合は、MigrateImplementation および GetBaseMigrationVersion を実装する必要があります。
カスタムのベースビジネスロジックコンポーネントを作成する場合は、MigrateBase サービスを実装する必要があります。
これは役に立ちましたか?