管理與開發 > 整合中心功能 > 功能
  
功能
可以透過允許套用至資源的多種類型的方式,使用物形式的資料形式與服務中的屬性定義功能。例如,"Ownable" 資產資源具有與擁有者相關聯的 "Ownable" 功能。資源也可以有多個功能。
欲將功能套用至資源,資源提供者會以功能的服務實行服務提供者物形式。功能資料形式中的屬性包括在資源資料形式中。功能資料形式應透過以功能服務提供者物形式為基礎的類似慣例命名。例如,當 PTC.Resource.Asset.ThingworxAssetResourceProvider 實行 PTC.Capability.OwnableServiceProvider 物形式時,在 PTC.Capability.OwnableDataShape 中定義的 "Owner" 屬性將包括在PTC.Resource.Asset.ThingworxAssetDataShape 中。此 "Owner" 屬性,與資產資源的其他屬性類似,將依預設在組態表中建立對應。
在功能服務提供者物形式中定義的服務應始終使用名為 “objects” 的 InfoTable 參數,且其代表要對其呼叫之服務的資源。若在物形式上實行了服務,在需要特定實行的情況下,它應對資源保持不可知的狀態,並且對實行資源提供者保持可取代的狀態。
關係
資源之間的關係可以建模為功能。功能資料形式可定義為將外部索引鍵屬性送至關係其中一方的資源。另一個功能資料形式可定義為將 InfoTable 屬性送至關係中另一方的資源,以使其可擴展以將資源與外部索引鍵內嵌在一起。每個功能服務提供者物形式都有更好的服務可以允許從任一方導覽關係。
例如,當資產資源提供者實行前述的 “Ownable” 功能服務提供者物形式時,”Owner” 屬性是資產資源上的外部索引鍵屬性。此外,”GetOwner” 服務可針對 “Ownable” 服務提供者物形式定義,以取得參考的 “owner” 資源。但是,"Owning" 功能服務提供者物形式也可定義為提供可從 "owning" 資源導覽至其參考 "ownable" 資源的 "GetOwnables" 服務。此外,"Ownables" 屬性會在 "Owning" 功能資料形式中定義為在 "owning" 資源上擴展為其 "ownable" 資源之內嵌 InfoTable。但是,此屬性不需要對應至資源提供者上的任何項目。
可對每個物形式實行更佳的服務,以透過在 ResourceManager 中將外部索引鍵屬性名稱與其他服務提供者物形式名稱傳遞至泛用服務,在一個系統內或跨不同系統導覽此類關係。例如,"Ownable" 物形式上的 "GetOwner" 服務會是:
var params = {
objects: objects /* an ownable resource */,
relationship: "PTC.Capability.OwningServiceProvider" /* ThingShape name */,
foreignKey: "Owner" /* foreign key name */
};
// Get the owner resource
var result = Things["PTC.Resource.ResourceManager"].NavigateForeignKeyRelationship(params);
同樣地,"Owning" 物形式上的 "GetOwnables" 服務會是:
var params = {
objects: objects /* an owning resource */,
relationship: "PTC.Capability.OwnableServiceProvider" /* ThingShape name */,
foreignKey: "Owner" /* foreign key name */
};
// Get the ownable resources
var result = Things["PTC.Resource.ResourceManager"].NavigateForeignKeyRelationship(params);