DPM のカスタマイズ > サービスのカスタマイズ
サービスのカスタマイズ
PTC 構築ブロックで提供されているサービスをカスタマイズして、独自のロジックを実装できます。これには、新しい構築ブロックを PTC 構築ブロックから拡張して作成すること、および新しい構築ブロック用のマネージャ Thing のサービスをオーバーライドすることが必要になります。構築ブロック内のサービスは、構築ブロック用のマネージャ Thing の「サービス」ページに表示できます。
サービスをカスタマイズするときは、次の点に注意してください。
サービスコードを変更すると、長時間実行されるサービスや、集中的な計算が必要となるサービスが発生し、パフォーマンスが低下する可能性があります。
最良事例として、ユーザーインタフェース関連のサービスではなく、バックエンドサービスをカスタマイズします。
サービスのカスタマイズ
サービスをカスタマイズするには、次の手順を実行します。
1. カスタマイズするサービスが含まれている構築ブロックを決定します。これは、サービスが見つかったマネージャ Thing の名前から簡単に決定できます。たとえば、サービスが PTC.StatusImpl.Manager Thing のものである場合、PTC.StatusImpl 構築ブロックの一部です。
2. カスタマイズするサービスが含まれる PTC 構築ブロックから拡張する、新しい構築ブロックを作成します。
新しい構築ブロックを作成するには、次の手順を実行します。
a. 新しいプロジェクトを作成します。会社名など、プロジェクトに一意のプリフィックスを使用します。PTC プレフィックスは、PTC によって提供されるエンティティのために予約されています。この例では、MyCompany.StatusImpl という名前のプロジェクトを作成します。この構築ブロック用に作成する新規 Thing Template、Thing、またはその他のエンティティごとに、そのエンティティの「一般情報」ページの「プロジェクト」値として新規プロジェクトを追加します。
b. プロジェクトにエントリポイント Thing Template を作成します。これは、その「ベース Thing Template」として、PTC 構築ブロックからのエントリポイント Thing Template を使用します。この例では、新規 Thing Template に MyCompany.StatusImpl.EntryPoint_TT という名前を付け、その「ベース Thing Template」として、PTC.StatusImpl.EntryPoint_TT を使用します。
c. プロジェクトに新規 Thing を作成します。これは、その「ベース Thing Template」として、手順 2.b で作成した Thing Template を使用します。この例では、新規 Thing に MyCompany.StatusImpl.EntryPoint という名前を付けます。
d. プロジェクトに新規 Thing Template を作成します。これは、その「ベース Thing Template」として、拡張元の PTC 構築ブロックからのマネージャ Thing Template を使用します。この例では、新規 Thing Template に MyCompany.StatusImpl.Manager_TT という名前を付け、その「ベース Thing Template」として PTC.StatusImpl.Manager_TT を使用します。
e. プロジェクトに新規 Thing を作成します。これは、その「ベース Thing Template」として、手順 2.d で作成した Thing Template を使用します。この例では、新規 Thing に MyCompany.StatusImpl.Manager という名前を付け、その「ベース Thing Template」として MyCompany.StatusImpl.Manager_TT を使用します。
3. 元の UI 構築ブロックにおけるマネージャ Thing のすべてのコンフィギュレーションを、新しい構築ブロック用のマネージャ Thing に追加します。
a. 手順 2.e で作成したマネージャ Thing (この例では、MyCompany.StatusImpl.Manager) に移動します。
b. 「コンフィギュレーション」で、元の構築ブロックのマネージャ Thing (この例では、PTC.StatusImpl.Manager) 用の「コンフィギュレーション」ページにあるものと同じコンフィギュレーションを追加します。
4. 構築ブロックの拡張元である PTC 構築ブロックからのマネージャの代わりに、新しい構築ブロックのマネージャ Thing を、使用するマネージャとして登録します。
a. PTC.Base.Manager Thing に移動します。
b. 「コンフィギュレーション」で「DefaultGlobalManagerConfiguration」コンフィギュレーションテーブルを見つけます。
c. 「編集」アイコン を、構築ブロックの拡張元である PTC 構築ブロックのマネージャと一致する、managerThingName 値を含む行に対してクリックします。
この例では、「編集」アイコン を、PTC.StatusImpl.ManagermanagerThingName 値を含む行に対してクリックします。
d. 編集ウィンドウで、manageThingName フィールドを、手順 2.e で作成した構築ブロック用のマネージャ Thing の名前に設定します。
e. 「設定」をクリックして、新しい値を設定します。
f. 「保存」をクリックして、PTC.Base.Manager Thing に対する変更を保存します。
5. サービスをオーバーライドして、カスタムロジックを実装します。
a. 構築ブロック用のマネージャ Thing Template に移動します。この例では、MyCompany.StatusImpl.Manager_TT Thing Template に移動します。
b. 「サービス」で、カスタマイズするサービスを見つけ、「オーバーライド」アイコン をクリックして、そのサービスをオーバーライドします。
c. スクリプトエディタで、カスタムロジックの実装に必要なコード変更を行います。
d. 「完了」をクリックして、サービスへの変更を保存します。
e. 「保存」をクリックして、マネージャ Thing に対する変更を保存します。
UI 構築ブロックに対するサービスのカスタマイズ
オーバーライドするサービスが UI 構築ブロックのサービスである場合は、次の手順を実行します。
1. PTC 構築ブロック (この例では、PTC.ProductionDashboard 構築ブロック) から拡張する新しい構築ブロックを作成します。
新しい構築ブロックを作成するには、次の手順を実行します。
a. 新しいプロジェクトを作成します。会社名など、プロジェクトに一意のプリフィックスを使用します。PTC プレフィックスは、PTC によって提供されるエンティティのために予約されています。この例では、MyCompany.ProductionDashboard という名前のプロジェクトを作成します。この構築ブロック用に作成する新規 Thing Template、Thing、またはその他のエンティティごとに、そのエンティティの「一般情報」ページの「プロジェクト」値として新規プロジェクトを追加します。
b. プロジェクトに新規 Thing Template を作成します。これは、その「ベース Thing Template」として、PTC.Base.ComponentEntryPoint_TT を使用します。この例では、新規 Thing Template に MyCompany.ProductionDashboard.EntryPoint_TT という名前を付けます。
c. プロジェクトに新規 Thing を作成します。これは、その「ベース Thing Template」として、手順 1.b で作成した Thing Template を使用します。
d. プロジェクトに新規 Thing Template を作成します。これは、その「ベース Thing Template」として、拡張元の PTC 構築ブロックからのマネージャ Thing Template を使用します。この例では、新規 Thing Template に MyCompany.ProductionDashboard.Manager_TT という名前を付け、その「ベース Thing Template」として、PTC.ProductionDashboard.Manager_TT を使用します。
e. プロジェクトに新規 Thing を作成します。これは、その「ベース Thing Template」として、手順 1.d で作成した Thing Template を使用します。この例では、新規 Thing に MyCompany.ProductionDashboard.Manager という名前を付け、その「ベース Thing Template」として、MyCompany.ProductionDashboard.Manager_TT を使用します。
2. サービスをオーバーライドして、カスタムロジックを実装します。
a. 構築ブロック用のマネージャ Thing Template に移動します。この例では、MyCompany.ProductionDashboard.Manager_TT Thing Template に移動します。
b. 「サービス」で、カスタマイズするサービスを見つけ、「オーバーライド」アイコン をクリックして、そのサービスをオーバーライドします。
c. スクリプトエディタで、カスタムロジックの実装に必要なコード変更を行います。
d. 「完了」をクリックして、サービスへの変更を保存します。
e. 「保存」をクリックして、マネージャ Thing に対する変更を保存します。
3. 新しい構築ブロックのマネージャ Thing を指すように、その UI 用のメインマッシュアップの manager プロパティを更新します。これにより、そのメインマッシュアップから呼び出されたマッシュアップは、元の構築ブロックのマネージャではなく、新しいマネージャからサービスを実行するようになります。
メインマッシュアップは、構築ブロック用のメニューアイテムを DPM ナビゲーションメニューから選択するときにロードされるマッシュアップです。メインマッシュアップの名前は、構築ブロックのマネージャ Thing の「コンフィギュレーション」ページで、MenuConfiguration テーブルにあります。それは、menuName 値が MasterMenuNavigation である行からの menuItemMashupName です。たとえば、生産ダッシュボード構築ブロック用のメインマッシュアップは、PTC.ProductionDashboard.MainFrame_MU です。
a. UI 構築ブロック用のメインマッシュアップに移動します。
b. マッシュアップを複製します。たとえば、生産ダッシュボード構築ブロック用のメインマッシュアップを複製する場合は、それに MyCompany.ProductionDashboard.MainFrame_MU という名前を付けます。マッシュアップの「一般情報」ページの「プロジェクト」値を、手順 1.a で作成したプロジェクトに変更します。
c. 「設計」をクリックして、Mashup Builder にマッシュアップを表示します。
d. 「エクスプローラ」で、マッシュアップの最上位レベルを選択します。
e. 「プロパティ」で、手順 1.e で作成した新しい構築ブロックのマネージャを指すように、manager プロパティを変更します。
f. 「保存」をクリックしてマッシュアップを保存します。
4. 元の UI 構築ブロックにおけるマネージャ Thing のすべてのコンフィギュレーションを、新しい構築ブロック用のマネージャ Thing に追加します。
a. 手順 1.e で作成したマネージャ Thing (この例では、MyCompany.ProductionDashboard.Manager) に移動します。
b. 「コンフィギュレーション」で、元の構築ブロックのマネージャ Thing (この例では、PTC.ProductionDashboard.Manager) 用の「コンフィギュレーション」ページにあるものと同じコンフィギュレーションを追加します。特に、MashupConfiguration および DefaultConfiguration テーブルからのコンフィギュレーションを追加します。
5. DPM ナビゲーションメニューから、メニューアイテムを編集して、複製メインマッシュアップを起動します。詳細については、DPM メニューのカスタマイズを参照してください。
6. 元のマッシュアップへのブックマーク、または元のマッシュアップを直接呼び出すサービスやその他のマッシュアップが、手順 3.b で作成した複製マッシュアップを使用するように更新されていることを確認してください。
モデルロジック Thing Shape からのサービスのカスタマイズ
さまざまな構築ブロックの PTC モデルロジック Thing Shape は、設備モデルエンティティ (エンタープライズ、地域、サイト、区分、作業拠点、および作業ユニット) の PTC.MfgModel 構築ブロックの Thing Template によって実装されます。個々の設備 Thing の PTC モデルロジック Thing Shape から継承されるサービスをオーバーライドするか、または、設備モデルタイプに対する Thing Template のサービスをオーバーライドすることにより、その設備モデルタイプのすべての Thing に対するサービスを変更できます。
サービスがモデルロジック Thing Shape から継承されているかどうかを確認するには、そのサービスが見つかった設備タイプに対する PTC 提供の Thing Template の「サービス」ページを確認します。この「サービス」ページでは、サービスの継承元であるエンティティを識別できます。
モデルロジック Thing Shape から継承され、かつ設備タイプの Thing Template に使用されるサービスをオーバーライドするには、次の手順を実行します。
1. PTC 構築ブロック (この例では、PTC.MfgModel 構築ブロック) から拡張する新しい構築ブロックを作成します。
新しい構築ブロックを作成するには、次の手順を実行します。
a. 新しいプロジェクトを作成します。会社名など、プロジェクトに一意のプリフィックスを使用します。PTC プレフィックスは、PTC によって提供されるエンティティのために予約されています。この例では、MyCompany.MfgModel という名前のプロジェクトを作成します。この構築ブロック用に作成する新規 Thing Template、Thing、またはその他のエンティティごとに、そのエンティティの「一般情報」ページの「プロジェクト」値として新規プロジェクトを追加します。
b. プロジェクトに新規 Thing Template を作成します。これは、その「ベース Thing Template」として、PTC.Base.ComponentEntryPoint_TT を使用します。この例では、新規 Thing Template に MyCompany.MfgModel.EntryPoint_TT という名前を付けます。
c. プロジェクトに新規 Thing を作成します。これは、その「ベース Thing Template」として、手順 1.b で作成した Thing Template を使用します。
* 
PTC 構築ブロック用のマネージャ Thing にあるサービスをカスタマイズする場合も、前のセクションで示したそれらのサービスのカスタマイズ手順に従ってください。これには、新しい構築ブロック用のマネージャ Thing Template とマネージャ Thing の作成も含まれています。
2. サービスをオーバーライドする対象の Thing Template の複製を作成します。
a. 元の設備モデル Thing Template (この例では、PTC.MfgModelDefaultWorkunit_TT) に移動します。
b. その Thing Template を複製します。この例では、複製 Thing Template に MyCompany.MfgModelDefaultWorkunit_TT という名前を付けます。マッシュアップの「一般情報」ページの「プロジェクト」値を、手順 1.a で作成したプロジェクトに変更します。
c. 「保存」をクリックして、複製 Thing Template を保存します。
3. サービスをオーバーライドして、カスタムロジックを実装します。
* 
複製 Thing Template のサービスのみをオーバーライドします。PTC.MfgModel 構築ブロック内の Thing Template のサービスは、オーバーライドしたり追加したりしないでください。
a. 手順 2.c で作成した複製 Thing Template で、「サービス」でカスタマイズするサービスを見つけ、「オーバーライド」アイコン をクリックして、そのサービスをオーバーライドします。そのサービスのアイコンが存在しない場合、サービスをオーバーライドすることはできません。
b. スクリプトエディタで、カスタムロジックの実装に必要なコード変更を行います。
c. 「完了」をクリックして、サービスへの変更を保存します。
d. 「保存」をクリックして、Thing Template に対する変更を保存します。
4. 新規 Thing Template を使用するには、モデルタイプコンフィギュレーションを更新します。
a. PTC.MfgModel.Manager Thing に移動します。
b. 「コンフィギュレーション」の下の ModelTypeConfiguration コンフィギュレーションテーブルで、手順 3 で複製した Thing Template の設備モデルタイプ行を見つけ、「編集」アイコン をクリックして、その行を編集します。
c. thingTemplate 値を手順 3 で作成した複製 Thing Template (この例では、MyCompany.MfgModelDefaultWorkunit_TT) に変更します。
d. 「保存」をクリックして、マネージャ Thing に対する変更を保存します。
* 
前述の手順では、特定の設備モデルタイプの Thing に使用される Thing Template を変更しています。変更を有効にするには、そのモデルタイプの既存のすべての設備 Thing を新しいモデルタイプ Thing Template を使用して再作成するか、または個々の設備 Thing に対してサービスもカスタマイズする必要があります。
PTC は、このようなコード変更については、個々の Thing ではなく、Thing Template レベルで加えることを推奨しています。
個々の設備 Thing に対するモデルロジック Thing Shape から継承されたサービスをオーバーライドするには、次の手順を実行します。
1. 設備 Thing に移動します。
2. 「サービス」で、カスタマイズするサービスを見つけ、「オーバーライド」アイコン をクリックして、そのサービスをオーバーライドします。
3. スクリプトエディタで、カスタムロジックの実装に必要なコード変更を行います。
4. 「完了」をクリックして、サービスへの変更を保存します。
5. 「保存」をクリックして、設備 Thing に対する変更を保存します。
これは役に立ちましたか?