構築ブロック > データモデルの拡張 > カスタムマネージャの作成
カスタムマネージャの作成
データモデルでは、特定の機能を制御するためにマネージャ Thing を使用します。マネージャ Thing には、任意のデータベーステーブルの作成および更新などの機能を実現するデータベース操作に必要な機能が含まれています。また、関連オブジェクトモデルに関係するサービスを管理するすべての Thing Shape が実装されています。
これらのマネージャ Thing は、PTC.Base.Manager Thing の「コンフィギュレーション」ページで、DefaultGlobalManagerConfiguration テーブルに登録されています。
独自のデータベーステーブルを管理 (作成および更新) するために、カスタムマネージャを作成できます。マネージャ Thing をモデルとして使用します。
次の手順では、UID (プライマリキー、自動生成) と CustomProperty1 (文字列データ型) の 2 つの列を持つデータベーステーブル customdata を管理するマネージャの作成方法について説明しています。customdata テーブルは初期化されており、2 行のデータを含みます。
1. 新規構築ブロックを作成します。
新規構築ブロックを作成するには、次の手順を実行します。
a. 新しいプロジェクトを作成します。会社名など、プロジェクトに一意のプリフィックスを使用します。PTC プレフィックスは、PTC によって提供されるエンティティのために予約されています。この例では、MyCompany.MyBuildingBlock という名前のプロジェクトを作成します。この構築ブロック用に作成する新規 Thing Template、Thing、またはその他のエンティティごとに、そのエンティティの「一般情報」ページの「プロジェクト」値として新規プロジェクトを追加します。
b. プロジェクトに新規エントリポイント Thing Template を作成します。使用する「ベース Thing Template」は、構築ブロックが PTC 構築ブロックから拡張しているかどうかによって異なります。
新規構築ブロックが PTC 構築ブロックから拡張している場合は、PTC 構築ブロックからのエントリポイント Thing Template を使用します。
新規構築ブロックが PTC 構築ブロックから拡張していない場合は、PTC.DefaultConfiguration.EntryPoint_TT を使用します。
この例では、新規 Thing Template に MyCompany.MyBuildingBlock.EntryPoint_TT という名前を付け、その「ベース Thing Template」として、PTC.DefaultConfiguration.EntryPoint_TT を使用します。
c. プロジェクトに新規 Thing を作成します。これは、その「ベース Thing Template」として、手順 1.b で作成した Thing Template を使用します。
2. ThingWorx Composer で、新規データシェイプを作成します。
a. 「名前」で、MyCompany.MyBuildingBlock.CustomData_DS を入力します。
b. 「プロジェクト」で、構築ブロックのプロジェクトを選択します。この例では、MyCompany.MyBuildingBlock です。
c. 「フィールド定義」「追加」をクリックします。
d. 次のフィールドを定義します。
「名前」 - UID と入力します。
「ベースタイプ」 - 「LONG」を選択します。
「プライマリキー」 - チェックボックスをオンにします。
e. 現在のフィールドを追加し、別のフィールドを直ちに追加するためのアイコン をクリックして、最初のフィールドを追加し、別のフィールドを定義します。
「名前」 - CustomProperty1 と入力します。
「ベースタイプ」 - 「STRING」を選択します。
f. 「追加」アイコン をクリックして 2 番目のフィールドを追加します。
g. 「保存」をクリックして、新規データシェイプを保存します。
3. ThingWorx Composer で新しい Thing Template を作成します。
a. 「名前」で、MyCompany.MyBuildingBlock.Manager_TT を入力します。
b. 「ベース Thing Template」で、PTC.Base.CommonManager_TT Thing Template を選択します。新規構築ブロックが PTC 構築ブロックから拡張している場合は、「ベース Thing Template」として、PTC 構築ブロックからのマネージャ Thing Template を使用します。
c. 「実装されたシェイプ」で、PTC.DBConnection.DBManagement_TS をサーチして追加します。マネージャを使用して作成サービスを呼び出す場合は、PTC.DBConnection.ServiceConfiguration_TS も同様にサーチして追加します。
d. 「保存」をクリックして Thing Template を保存します。
4. ThingWorx Composer で新規 Thing を作成します。
a. 「名前」で、MyCompany.MyBuildingBlock.Manager を入力します。
b. 「ベース Thing Template」で、MyCompany.MyBuildingBlock.Manager_TT (手順 3 で作成した Thing Template) をサーチして選択します。
c. 「サービス」で、GetDBInfo サービスをオーバーライドして次のコードを追加し、続いて「完了」をクリックします。
var result = {
dbInfo: [{dataShapeName: "CustomData"}]
};
d. 「サービス」で、InitData サービスをオーバーライドして次のコードを追加し、続いて「完了」をクリックします。
var infoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
infoTableName : "InfoTable",
dataShapeName : "CustomData"
});
infoTable.AddRow({"CustomProperty1":"TestValue1"});
infoTable.AddRow({"CustomProperty1":"TestValue2"});
Things[me.GetDatabaseThingName()].Insert({
infoTable: infoTable,
dataShapeName: "CustomData"
});
e. 「保存」をクリックして Thing を保存します。
5. 新規構築ブロックが PTC 構築ブロックから拡張している場合は、元の構築ブロックのマネージャ Thing から新規構築ブロックのマネージャ Thing に、コンフィギュレーションを追加します。
a. 手順 4 で作成したマネージャ Thing (この例では、MyCompany.MyBuildingBlock.Manager) に移動します。
b. 「コンフィギュレーション」で、元の構築ブロックのマネージャ Thing の「コンフィギュレーション」ページにあるものと同じコンフィギュレーションを追加します。
6. カスタムマネージャを登録します。
a. PTC.Base.Manager Thing に移動します。
b. 「コンフィギュレーション」で、「DefaultGlobalManagerConfiguration」コンフィギュレーションテーブルの「追加」をクリックします。
「名前」で、MyCompany.MyBuildingBlock.Manager などのカスタムマネージャの名前を入力します。
「値」で、手順 4 で作成したカスタムマネージャ Thing をサーチして選択します。
c. 「追加」をクリックして、コンフィギュレーションテーブルにカスタムマネージャを追加します。
d. 「保存」をクリックして、マネージャ Thing への更新を保存します。
7. 手順 4 で作成した MyCompany.MyBuildingBlock.Manager Thing の「サービス」で、CreateTables サービスを実行します。customdata という名前で、2 行のデータを含むデータベーステーブルが作成されます。
8. 外部キーを定義する場合、外部キーの追加または除去を参照してください。
9. String のデータベース列の長さを変更する場合、STRING データベース列の長さの設定を参照してください。
10. 操作前または操作後イベントのディスパッチと検証を設定する場合、操作前、操作中、操作後のイベントのディスパッチと検証を参照してください。
これは役に立ちましたか?