カスタムコンポーネントの作成
コンポーネントアーキテクチャのトピックで説明されているように、各 ThingWorx Navigate コンポーネントは、ユーザーインタフェースサブコンポーネントおよびビジネスロジックサブコンポーネントの 2 つのサブコンポーネントで構成されています。さらに、ビジネスロジックサブコンポーネントはベースビジネスロジックおよびビジネスロジック実装の 2 つの部分で構成されており、このトピックではそれぞれをベースコンポーネントおよび実装と呼びます。
既成では、各ベースコンポーネントに 1 つ以上の実装が付属しています。各実装は、ユーザーインタフェースに特定の情報を表示するように設計されています。別の情報を表示するには、カスタム実装を作成することによってコンポーネントをカスタマイズします。たとえば、既成のアイテムリストベースコンポーネントには、アクティビティ、変更適用アイテム、添付資料、図面、部品構造、およびタスクの 6 つの実装があります。アイテムリストベースコンポーネントのカスタム実装 (部品リストなど) を作成することもできます。
コンポーネントのカスタム実装を作成するには、既存のベースコンポーネントまたは既存の実装を拡張してから必要なサービスをオーバーライドしなければなりません。以下のセクションでは、詳細な手順と例を示します。
* 
既成エンティティのバージョンスキームはすべて nav.<version number> です。たとえば、9.3 におけるすべての既成のコンポーネントコンフィギュレーションに対するバージョンは nav.1 のようになります。カスタムのコンポーネントコンフィギュレーションの作成時には、このバージョンスキームを使用しないでください。これは ThingWorx Navigate の内部でのみ使用されます。
ベースコンポーネントの拡張によるカスタム実装の作成 
既存のベースコンポーネントからカスタム実装を作成するには、次の手順に従います。
1. カスタム実装の開始点として使用する既存のベースコンポーネントを選択します。次のテーブルでベースコンポーネントを検索し、その Thing Template とプロジェクトを確認します。この情報は後で必要になります。
ベースコンポーネント
Thing Template
プロジェクト
属性
PTC.Nav.AttributesBusinessLogicThingTemplate
PTC.Nav.AttributesBusinessLogicProject
アイテム ID
PTC.Nav.ItemIdentityBusinessLogicThingTemplate
PTC.Nav.ItemIdentityBusinessLogicProject
アイテムリスト
PTC.Nav.ItemListBusinessLogicThingTemplate
PTC.Nav.ItemListBusinessLogicProject
進行状況
PTC.Nav.ProgressBusinessLogicThingTemplate
PTC.Nav.ProgressBusinessLogicProject
タイル
PTC.Nav.TilesBusinessLogicThingTemplate
PTC.Nav.TilesBusinessLogicProject
2. カスタム実装のプロジェクトを作成します。「プロジェクト依存」に、手順 1 で確認したプロジェクトを入力します。プロジェクトを保存します。
3. カスタム実装の Thing Template を作成します。「プロジェクト」に、手順 2 で作成したプロジェクトを入力します。「ベース Thing Template」に、手順 1 で確認した Thing Template を入力します。
4. カスタム実装の Thing を作成します。「プロジェクト」に、手順 2 で作成したプロジェクトを入力します。「ベース Thing Template」に、手順 3 で作成した Thing Template を入力します。
5. 作成した Thing で、「サービス」タブをクリックします。次に 鉛筆アイコン をクリックして GetImplementationConfigurationVersion サービスをオーバーライドし、実装のバージョンを設定します。バージョンの値では、user.version をスキームとして使用します。ここで、version は複数のレベルを点で区切って指定でき、usernav に指定することはできません。Thing を保存します。
6. カスタム実装についてオーバーライドする必要のあるサービスを特定します。既成のコンポーネントのサービスの詳細については、拡張するコンポーネントに関するトピックを使用可能なコンポーネントで見つけ、「カスタマイズサービス」テーブルを確認してください。
7. 作成した Thing Template で、「サービス」タブをクリックします。次に 鉛筆アイコン をクリックして、必要なサービスをオーバーライドします。その他のサービスをオーバーライドする前に、GetConfigurations サービスをオーバーライドすることをお勧めします。
GetConfigurations サービスのコードで、implementationConfigurationVersion のバージョンを、手順 5 で GetImplementationConfigurationVersion に対して設定したバージョンと一致するように設定します。この手順をスキップすると、ThingWorx Navigate の今後のリリースで互換性の問題が発生する可能性があります。
8. 残りの必要なサービスをオーバーライドします。コンフィギュレーションをパラメータとして受け取るサービスをオーバーライドする際、まず Migrate サービスをコードで呼び出し、ベースバージョンと実装バージョンを渡します。
Migrate サービスで targetBaseVersion に使用する値を決定するには、手順 4 で作成した Thing で GetBaseConfigurationVersion サービスを実行します。GetBaseConfigurationVersion サービスコードを呼び出してその値を返すことはしないでください。
Migrate サービスで targetImplementationVersion を設定する際、手順 5 で事前に設定したバージョンを使用します。
Migrate サービスの呼び出しの詳細については、バージョン管理と移行のトピックを参照してください。
* 
サービスをオーバーライドするとき、カテゴリ PTC.Nav.Private のサービスまたは廃止予定としてマークされているサービスを呼び出したりオーバーライドしたりしないでください。
9. Thing Template を保存します。これで、カスタム実装を使用できるようになりました。実装を使用するには、マッシュアップを作成します。実装のベースコンポーネントをマッシュアップに追加し、歯車アイコン をクリックします。「コンフィギュレーションタイプ」ドロップダウンメニューで、カスタム実装に属するコンフィギュレーションを選択します。
実装の拡張によるカスタム実装の作成 
既存の実装からカスタム実装を作成するには、次の手順に従います。
1. カスタム実装の開始点として使用する既存の実装を選択します。
既成の実装を使用する場合は、ThingWorx Navigate のバージョンに従って、それを次のテーブルで見つけ、該当する Thing Template とプロジェクトを確認します。この情報は後で必要になります。
カスタム実装を使用する場合は、その Thing Template とプロジェクトを確認します。この情報は後で必要になります。
実装
Thing Template
プロジェクト
アクティビティ
PTC.Nav.ActivityBusinessLogicThingTemplate
PTC.Nav.ActivityBusinessLogicProject
変更適用アイテム
PTC.Nav.AffectedItemsBusinessLogicThingTemplate
PTC.Nav.AffectedItemsBusinessLogicProject
添付資料
PTC.Nav.AttachmentsBusinessLogicThingTemplate
PTC.Nav.AttachmentsBusinessLogicProject
属性ジェネリック
PTC.Nav.AttributesGenericBusinessLogicThingTemplate
PTC.Nav.AttributesGenericBusinessLogicProject
設計ファイル
PTC.Nav.DesignFilesBusinessLogicThingTemplate
PTC.Nav.DesignFilesBusinessLogicProject
ドキュメント ID
PTC.Nav.DocumentIdentityBusinessLogicThingTemplate
PTC.Nav.DocumentIdentityBusinessLogicProject
図面
PTC.Nav.DrawingsListBusinessLogicThingTemplate
PTC.Nav.DrawingsListBusinessLogicProject
部品 ID
PTC.Nav.PartIdentityBusinessLogicThingTemplate
PTC.Nav.PartIdentityBusinessLogicProject
部品構造
PTC.Nav.PartStructureBusinessLogicThingTemplate
PTC.Nav.PartStructureBusinessLogicProject
タスク ID
PTC.Nav.TaskIdentityBusinessLogicThingTemplate
PTC.Nav.TaskIdentityBusinessLogicProject
タスク進行状況
PTC.Nav.TaskProgressBusinessLogicThingTemplate
PTC.Nav.TaskProgressBusinessLogicProject
タスク
PTC.Nav.TaskListBusinessLogicThingTemplate
PTC.Nav.TaskListBusinessLogicProject
タイルジェネリック
PTC.Nav.TilesGenericBusinessLogicThingTemplate
PTC.Nav.TilesGenericBusinessLogicProject
2. カスタム実装のプロジェクトを作成します。「プロジェクト依存」に、手順 1 で確認したプロジェクトを入力します。プロジェクトを保存します。
3. カスタム実装の Thing Template を作成します。「プロジェクト」に、手順 2 で作成したプロジェクトを入力します。「ベース Thing Template」に、手順 1 で確認した Thing Template を入力します。
4. カスタム実装の Thing を作成します。「プロジェクト」に、手順 2 で作成したプロジェクトを入力します。「ベース Thing Template」に、手順 3 で作成した Thing Template を入力します。
5. 作成した Thing で、「サービス」タブをクリックします。
鉛筆アイコン をクリックして、GetBaseMigrationVersion をコンフィギュレーションのバージョンの規則でオーバーライドします。'nav.<version number>' スキームは使用しないでください。
鉛筆アイコン をクリックして、GetImplementationConfigurationVersion をコンフィギュレーションのバージョンの規則でオーバーライドします。バージョンの値では、user.version をスキームとして使用します。ここで、version は複数のレベルを点で区切って指定でき、usernav に指定することはできません。
6. Thing を保存します。
7. カスタム実装についてオーバーライドする必要のあるサービスを特定します。既成のコンポーネントのサービスの詳細については、拡張するコンポーネントに関するトピックを使用可能なコンポーネントで見つけ、「カスタマイズサービス」テーブルを確認してください。
8. 作成した Thing Template で、「サービス」タブをクリックします。次に 鉛筆アイコン をクリックして、必要なサービスをオーバーライドします。その他のサービスをオーバーライドする前に、GetConfigurations サービスをオーバーライドすることをお勧めします。
* 
GetConfigurations サービスをオーバーライドする際、コンフィギュレーション構造をその既成の構造から変更することはサポートされていません。個々の JSON プロパティの値のみを変更します。詳細については、コンフィギュレーションプロパティに対する変更の例のトピックを参照してください。
コンフィギュレーションでは、implementationConfigurationVersion プロパティの値を GetImplementationConfigurationVersion サービスによって返される値と同じになるように設定してください。
9. 残りの必要なサービスをオーバーライドします。コンフィギュレーションをパラメータとして受け取るサービスをオーバーライドする際、まず Migrate サービスをコードで呼び出し、ベースバージョンと実装バージョンを渡します。
Migrate サービスに渡すベースバージョンを決定するには、手順 4 で作成した Thing で GetBaseConfigurationVersion サービスを実行します。GetBaseConfigurationVersion サービスを呼び出してその値を返すことはしないでください。
Migrate サービスに渡す実装バージョンを決定するには、手順 4 で作成した Thing で GetImplementationConfigurationVersion サービスを実行します。GetImplementationConfigurationVersion サービスを呼び出してその値を返すことはしないでください。
Migrate サービスの呼び出しの詳細については、バージョン管理と移行のトピックを参照してください。
* 
サービスをオーバーライドするとき、カテゴリ PTC.Nav.Private のサービスまたは廃止予定としてマークされているサービスを呼び出したりオーバーライドしたりしないでください。
10. Thing Template を保存します。これで、カスタム実装を使用できるようになりました。実装を使用するには、マッシュアップを作成します。実装のベースコンポーネントをマッシュアップに追加し、歯車アイコン をクリックします。「コンフィギュレーションタイプ」ドロップダウンメニューで、カスタム実装に属するコンフィギュレーションを選択します。
例: 部品リスト実装の作成 
次の例は、部品リストと呼ばれるカスタム実装を作成する方法を示しています。これは、アイテムリストベースコンポーネントの実装です。部品リストは、部品を入力として受け取り、そこに含まれている部品の最初のレベルを返します。
* 
この例では、ThingWorx Navigate に対するバージョン管理が適切になっています。前のバージョンの Navigate を使用している場合は、前のセクションの手順に従ってバージョンの値を設定してください。
1. ThingWorx Composer で、Demo.PartsListProject という名前の新規プロジェクトを作成します。「プロジェクト依存」PTC.Nav.ItemListBusinessLogicProject と入力します。
2. Demo.PartsListBusinessLogicThingTemplate という名前の新規 Thing Template を作成します。「プロジェクト」Demo.PartsListProject に設定し、「ベース Thing Template」PTC.Nav.ItemListBusinessLogicThingTemplate に設定します。
3. Demo.PartsListBusinessLogicThing という名前の Thing を作成します。「プロジェクト」Demo.PartsListProject に設定し、「ベース Thing Template」Demo.PartsListBusinessLogicThingTemplate に設定します。
4. 「サービス」タブをクリックして、GetImplementationConfigurationVersion サービスを検索します。サービスをオーバーライドしてバージョンを設定するには、 をクリックします。user.version スキームを使用します。たとえば、次のように値を 1.0.0 に設定します。
result = "1.0.0";
「完了」をクリックします。その後、「保存」をクリックして Thing を保存します。
5. アイテムリストの「カスタマイズサービス」テーブルを確認し、Thing Template でオーバーライドする必要があるサービスを特定します。このカスタム実装では、3 つのサービスをオーバーライドしなければなりません。
GetConfigurations - このサービスは、実装に使用可能なコンフィギュレーションを返します。これを編集して、部品リストのコンフィギュレーションを定義します。
GetImplementationLabel - このサービスは、Mashup Builder に表示される実装の名前を返します。これを Parts List Demo という名前が表示されるように設定します。
GetItems - このサービスは、入力およびコンフィギュレーションをパラメータとして受け取り、CCOフォーマットの JSON を、「アイテムリスト」ユーザーインタフェースに表示するデータとともに返します。ここでは、特定の部品における最初のレベルの部品と、最初のレベルの部品の属性を返すように設定します。
6. Demo.ItemListBusinessLogicThingTemplate Thing Template を開きます。「サービス」タブをクリックします。
7. をクリックして GetConfigurations サービスをオーバーライドします。次のコードをサービスに貼り付けます。このコードには、Mashup Builder と ThingWorx Navigate ユーザーインタフェースの両方で Parts List としてラベル付けされた部品リストの 1 つのコンフィギュレーションが含まれています。
result = {
"partsList": {
"label": "Parts List",
"configuration": {
"selectionType": {
"selectedKey": "single"
},
"waitForInput": {
"value": true
},
"actionBarConfiguration": {
"value": {
"actionBarConfigurationJSON": {
"value": ""
}
}
},
"baseConfigurationVersion": {
"value": "nav.1"
},
"implementationConfigurationVersion": {
"value": "1.0.0"
},
"defaultSortFields": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"additionalData": {
"itemListDefaultSortFieldDefinition": {
"defaultSortDirection": {
"selectedKey": "asc"
}
}
},
"id": "Name"
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"attributes": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Name",
"ordinal": 1
}, {
"id": "State#Display",
"ordinal": 2
}, {
"id": "Version",
"ordinal": 3
}, {
"id": "Number",
"ordinal": 0
}, {
"id": "ID",
"ordinal": 4
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
},
"inTailoring": false
},
"label": {
"value": "Parts List"
},
"showExportAction": {
"value": true
},
"enableSearch": {
"additionalData": {
"itemListSearchDefinition": {
"searchHintText": {
"value": "Find"
}
}
},
"value": true
},
"maxNumberOfRowsInGrid": {
"inTailoring": false,
"value": 50
}
}
}
};
これは、1 つではなく 2 つのコンフィギュレーションが含まれている別の GetConfigurations のサンプルコードです。1 つ目のコンフィギュレーションは、上記のコードと同じコンフィギュレーションです。2 つ目のコンフィギュレーションは、ミニバージョンの部品リストです。3 つの属性と最大 5 つの行だけが表示されます。これは、Mashup Builder では Parts List mini としてラベル付けされ、ThingWorx Navigate ユーザーインタフェースでは Parts List とラベル付けされます。
result = {
"partsList": {
"label": "Parts List",
"configuration": {
"selectionType": {
"selectedKey": "single"
},
"waitForInput": {
"value": true
},
"actionBarConfiguration": {
"value": {
"actionBarConfigurationJSON": {
"value": ""
}
}
},
"baseConfigurationVersion": {
"value": "nav.1"
},
"implementationConfigurationVersion": {
"value": "nav.1"
},
"defaultSortFields": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"additionalData": {
"itemListDefaultSortFieldDefinition": {
"defaultSortDirection": {
"selectedKey": "asc"
}
}
},
"id": "Name"
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"attributes": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Name",
"ordinal": 1
}, {
"id": "State#Display",
"ordinal": 2
}, {
"id": "Version",
"ordinal": 3
}, {
"id": "Number",
"ordinal": 0
}, {
"id": "ID",
"ordinal": 4
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
},
"inTailoring": false
},
"label": {
"value": "Parts List"
},
"showExportAction": {
"value": true
},
"enableSearch": {
"additionalData": {
"itemListSearchDefinition": {
"searchHintText": {
"value": "Find"
}
}
},
"value": true
},
"maxNumberOfRowsInGrid": {
"inTailoring": false,
"value": 50
}
}
},
"partsListMini": {
"label": "Parts List mini",
"configuration": {
"selectionType": {
"selectedKey": "single"
},
"waitForInput": {
"value": true
},
"actionBarConfiguration": {
"value": {
"actionBarConfigurationJSON": {
"value": ""
}
}
},
"baseConfigurationVersion": {
"value": "nav.1"
},
"implementationConfigurationVersion": {
"value": "1.0.0"
},
"defaultSortFields": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"additionalData": {
"itemListDefaultSortFieldDefinition": {
"defaultSortDirection": {
"selectedKey": "asc"
}
}
},
"id": "Name"
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"attributes": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "Name",
"ordinal": 1
}, {
"id": "Version",
"ordinal": 2
}, {
"id": "Number",
"ordinal": 0
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
},
"inTailoring": false
},
"label": {
"value": "Parts List"
},
"showExportAction": {
"value": true
},
"enableSearch": {
"additionalData": {
"itemListSearchDefinition": {
"searchHintText": {
"value": "Find"
}
}
},
"value": true
},
"maxNumberOfRowsInGrid": {
"inTailoring": false,
"value": 5
}
}
}
};
コードを追加した後、「完了」をクリックします。
8. GetImplementationLabel サービスをオーバーライドします。次のコードを使用して実装ラベルを設定します。
result = "Parts List Demo";
「完了」をクリックします。
9. GetItems サービスは、次のプロセスを使用して、Windchill から最初のレベルの部品を読み込みます。
a. 作成する ConvertAttributesToCCO サービスを使用して、コンフィギュレーションの属性部分をCCO構造に変換します。
b. 生成される JSON を、CCOフォーマットで PTC.WCAdapterGetRelatedItems サービスに渡します。このサービスは、データを UsageLink オブジェクトとして取得します。
c. 作成する ConvertUsageLinkToPart サービスを使用して、UsageLink オブジェクトを Part オブジェクトに変換します。
GetItems サービスをオーバーライドする前に、サービス ConvertAttributesToCCOConvertUsageLinkToPart を作成する必要があります。
10. 新規サービスを作成し、それに ConvertAttributesToCCO という名前を付けます。「入力」に、以下の入力を追加します。
configuration - 「JSON」「ベースタイプ」を持ちます。
attributesPrefix - 「STRING」「ベースタイプ」を持ちます。
replaceObjectType - 「STRING」「ベースタイプ」を持ちます。
「出力」で、ドロップダウンメニューから「JSON」を選択します。
11. 次のコードを ConvertAttributesToCCO サービスに貼り付けます。
let attributesData = configuration.attributes.selectedValues;
attributesPrefix = attributesPrefix || "";
let objectType = replaceObjectType || attributesData.data[0].itemListsData[0].objectType;
attributesData.data[0].itemListsData[0].objectType = objectType;
let items = attributesData.data[0].itemListsData[0].items;
let newItems = [];
let newObj = {};
let hasID = false;
//convert to CCO
for(var i = 0; i < items.length; i++) {
let item = items[i];
if (item.id === 'ID') {
hasID = true;
}
newObj[attributesPrefix + item.id] = {"value":""};
}
//add ID if needed
if (!hasID) {
newObj[attributesPrefix + 'ID'] = {"value":""};
}
newItems.push (newObj);
attributesData.data[0].itemListsData[0].items = newItems;
//create date
var dateValue = new Date();
var y = dateValue.getFullYear();
var mo = dateValue.getMonth()+1;
if(mo<10) {mo='0'+mo;}
var d = dateValue.getDate();
if(d<10) {d='0'+d;}
//create time
var h = dateValue.getHours();
if(h<10) {h='0'+h;}
var mi = dateValue.getMinutes();
if(mi<10) {mi='0'+mi;}
var s = dateValue.getSeconds();
if(s<10) {s='0'+s;}
var ms = dateValue.getMilliseconds();
if(ms<10) {ms='00'+ms;} else {if(ms>=10 && ms<100) {ms='0'+ms;}}
attributesData.timeStamp = y + "-" + mo + "-" + d + " " + h + ":" + mi + ":" + s + "." + ms;
attributesData.version = "";
attributesData.statusMessage = "OK";
attributesData.status = "200";
result = attributesData;
「完了」をクリックします。
12. 新規サービスを作成し、それに ConvertUsageLinkToPart という名前を付けます。「入力」に、以下の入力を追加します。
usageLinkCCO - 「JSON」「ベースタイプ」を持ちます。
「出力」で、ドロップダウンメニューから「JSON」を選択します。
13. 次のコードを ConvertUsageLinkToPart サービスに貼り付けます。
let itemListsData = usageLinkCCO.data[0].itemListsData[0];
let tempMetadata = itemListsData.metadata;
let items = itemListsData.items;
//convert metadata
delete tempMetadata.ID;
let newMetadata = {};
for (var key in tempMetadata) {
let newKey = key.replace(/^(Uses\|)/,"");
newMetadata[newKey] = tempMetadata[key];
}
newMetadata['id'] = newMetadata.ID;
itemListsData['metadata'] = newMetadata;
//convert Items
let newItems = [];
for (var i=0 ; i<items.length ; i++) {
let item = items[i];
let newItem = {};
for (key in item) {
let newKey = key.replace(/^(Uses\|)/,"");
newItem[newKey] = item[key];
}
newItem['id'] = newItem.ID;
newItems.push(newItem);
}
itemListsData['items'] = newItems;
itemListsData['objectType'] = 'PTC.ProdMgmt.Part';
//update CCO
let partsListCCO = usageLinkCCO;
partsListCCO.data[0].itemListsData = [itemListsData];
result = partsListCCO;
「完了」をクリックします。
14. をクリックして GetItems サービスをオーバーライドします。次のコードを GetItems サービスに貼り付けます。
var migratedConfig = me.Migrate({
targetImplementationVersion: "nav.1" /* STRING */,
data: configuration /* JSON */,
migrationType: "Configuration" /* STRING */,
targetBaseVersion: "nav.1" /* STRING */
});
var attributesConfigurationCCO = me.ConvertAttributesToCCO({
configuration:migratedConfig /* JSON */,
attributesPrefix: "Uses|" /* STRING */,
replaceObjectType: "PTC.ProdMgmt.PartUse" /* STRING */
});
// result: JSON
var tempResult = Things["PTC.WCAdapter"].GetRelatedItems({
item: input /* JSON */,
relation: {path:"Uses"} /* JSON */,
attributes: attributesConfigurationCCO /* JSON */
});

var convertedResults = me.ConvertUsageLinkToPart({
usageLinkCCO:tempResult /* JSON */
});
var result = convertedResults;
「完了」をクリックします。その後、「保存」をクリックして Thing Template を保存します。
これで、部品リストのカスタム実装とそのコンフィギュレーションが作成され、Mashup Builder で使用できるようになりました。実装を使用するには、アイテムリストベースコンポーネントをマッシュアップに追加し、歯車アイコン をクリックします。「コンフィギュレーションタイプ」ドロップダウンメニューで、Parts Lists Demo - Parts List としてラベル付けされている部品リストのコンフィギュレーションを選択します。
部品リストを使用して、以下のビデオに示すマッシュアップを作成する場合、次の追加コードが必要になります。
属性コンポーネントの設定に使用するコード:
{
"layout": {
"selectedKey": "horizontal",
"additionalData": {
"dimensionDefinition": {
"maxHeight": {
"value": 200,
"version": "1.0.0"
},
"maxWidth": {
"value": 200,
"version": "1.0.0"
}
}
},
"version": "1.0.0"
},
"attributes": {
"sets": [{
"data": {
"selectedValues": {
"data": [{
"itemListsData": [{
"items": [{
"id": "ModifiedBy",
"ordinal": 0
}, {
"id": "GatheringPart",
"ordinal": 1
}, {
"id": "Latest",
"ordinal": 2
}, {
"id": "FolderName",
"ordinal": 3
}
],
"objectType": "PTC.ProdMgmt.Part"
}
],
"adapter": {
"instanceName": "windchill",
"thingName": "PTC.WCAdapter"
}
}
]
}
},
"name": ""
}
],
"inTailoring": true,
"filteredValues": {
"data": [{
"itemListsData": [{
"objectType": ""
}
],
"adapter": {
"instanceName": "",
"thingName": ""
}
}
]
},
"version": "1.0.0"
}
}
マッシュアップの input パラメータに使用するコード。有効な部品 ID を追加してください。
{
"version": "1.0.0",
"data": [{
"adapter": {
"thingName": "PTC.WCAdapter",
"instanceName": "windchill"
},
"itemListsData": [{
"objectType": "PTC.ProdMgmt.Part",
"items": [{
"id": {
"value": ""
}
}
]
}
]
}
]
}
ビデオチュートリアル: 部品リスト実装の作成
次の 2 つのビデオチュートリアルは、部品リストのカスタム実装を作成し、使用する方法を示しています。1 つ目のビデオでは、上記の例の手順に従って、部品リストを作成する方法について説明しています。2 つ目のビデオでは、マッシュアップで部品リストを使用する方法について説明しています。ビデオで使用されるコードはすべて上記の例に含まれています。
* 
これらのチュートリアルは、以前のバージョンの ThingWorx Navigate で作成されているため、表示されているものとは異なるバージョンの値を使用しなければならない場合があることに注意してください。このトピックで説明しているバージョン管理に従って、すべてが正しく機能することを確認してください。
また、2 つ目のチュートリアルでは、以前のバージョンの Navigate と同じように、左側のドックの「マッシュアップ」タブからマッシュアップにアイテムリストが追加されています。Navigate 9.4 以降、アイテムリストはウィジェットであるため、アイテムリストを追加するには、代わりに「ウィジェット」タブに移動します。
ビデオを大きなウィンドウで視聴するには、プレーヤーのタイトルをクリックします。YouTube ビデオが新しいタブで開きます。
これは役に立ちましたか?