Common Communication Object 結構
Common Communication Object (CCO) 是用來在 ThingWorx Navigate 中管理資料傳輸的 JSON 結構。其中包含有關後端系統之一或多個實例的資料與中繼資料,以及從這些系統中擷取的物件。
CCO 結構
{
"version":"1.0.0",
"data":[
{
"adapter":{
"thingName":"",
"instanceName":""
},
"itemListsData":[
{
"objectType":"",
"items":[
{
"id":{
"value":""
},
"Name":{
"value":""
}
}
],
"metadata":{
"id":{
"label":"",
"type":""
},
"Name":{
"label":"",
"type":""
}
},
"typeData":{
}
}
]
}
],
"status":"",
"statusMessage":"",
"timeStamp":""
}
屬性名稱
描述
version
所用 CCO 結構的版本。
內容類型為字串。
data
從後端系統中擷取的資訊。
內容類型為字串。
adapter
包含從中擷取資料的後端系統實例的相關資訊。
thingName
用來表示 ThingWorx Navigate 後端系統之轉接器物件的名稱。
內容類型為字串。
instanceName
後端系統之特定實例的名稱。
內容類型為字串。
ItemListsData
項目與中繼資料的清單。此清單中每個實例內的項目都必須具有相同的物件類型。
objectType
所擷取物件的類型。
內容類型為字串。
items
項目與項目值的清單。
value
特定項目的值。
內容類型為字串。
metadata
關於屬性的資訊,通用於所有項目。
typeData
關於 objectType 的其他資訊。僅在極少數情況下使用。
內容類型為 JSON 物件。
status
資料擷取的狀況。
內容類型為字串。
statusMessage
關於資料擷取狀況的訊息。
內容類型為字串。
timeStamp
資料擷取的時間戳記。
內容類型為字串。
CCO 結構範例
1. 下列範例包含一個具有一種物件類型的項目。
{
"version":"1.0.0",
"data":[
{
"adapter":{
"thingName":"PTC.WCAdapter",
"instanceName":"windchill"
},
"itemListsData":[
{
"objectType":"PTC.ChangeMgmt.ChangeRequest",
"items":[
{
"id":{
"value":"OR:wt.change2.WTChangeRequest2:258323"
},
"Name":{
"value":"CR"
}
}
],
"metadata":{
"id":{
"label":"Id",
"type":"string"
},
"Name":{
"label":"Change Request Name",
"type":"string"
}
}
}
]
}
],
"status":"200",
"statusMessage":"OK",
"timeStamp":" 2019-01-02 06:43:19.77"
}
2. 下列範例包含一個具有兩種不同物件類型的項目。由於每個 items 陣列都僅包含一個物件,因此有一個項目。
{
"version":"1.0.0",
"data":[
{
"adapter":{
"thingName":"PTC.WCAdapter",
"instanceName":"windchill"
},
"itemListsData":[
{
"objectType":"PTC.ChangeMgmt.ChangeRequest",
"items":[
{
"id":{
"value":"OR:wt.change2.WTChangeRequest2:258323"
},
"Name":{
"value":"CR"
}
}
],
"metadata":{
"id":{
"label":"Id",
"type":"string"
},
"Name":{
"label":"Change Request Name",
"type":"string"
}
}
},
{
"objectType":"PTC.Workflow.WorkItem",
"items":[
{
"Category#Display":{
"value":"Cost Reduction"
},
"RequestPriority#Display":{
"value":"Low"
}
}
],
"metadata":{
"Category#Display":{
"label":"Category",
"type":"string"
},
"RequestPriority#Display":{
"label":"Request Priority",
"type":"string"
}
}
}
]
}
],
"status":"200",
"statusMessage":"OK",
"timeStamp":" 2019-01-02 06:43:19.77"
}
3. 下列範例包括兩個具有一種物件類型的項目。由於每個 items 陣列都包含兩個物件,因此有兩個項目。
{
"version":"1.0.0",
"data":[
{
"adapter":{
"thingName":"PTC.WCAdapter",
"instanceName":"windchill"
},
"itemListsData":[
{
"objectType":"PTC.ChangeMgmt.ChangeRequest",
"items":[
{
"id":{
"value":"OR:wt.change2.WTChangeRequest2:258323"
},
"Name":{
"value":"CR1"
}
},
{
"id":{
"value":"OR:wt.change2.WTChangeRequest2:32456"
},
"Name":{
"value":"CR2"
}
}
],
"metadata":{
"id":{
"label":"Id",
"type":"string"
},
"Name":{
"label":"Change Request Name",
"type":"string"
}
}
}
]
}
],
"status":"200",
"statusMessage":"OK",
"timeStamp":" 2019-01-02 06:43:19.77"
}
4. 下列範例包括兩個具有兩種物件類型的項目。由於每個 items 陣列都包含兩個物件,因此有兩個項目。
{
"version":"1.0.0",
"data":[
{
"adapter":{
"thingName":"PTC.WCAdapter",
"instanceName":"windchill"
},
"itemListsData":[
{
"objectType":"PTC.ChangeMgmt.ChangeRequest",
"items":[
{
"id":{
"value":"OR:wt.change2.WTChangeRequest2:258323"
},
"Name":{
"value":"CR"
}
},
{
"id":{
"value":"OR:wt.change2.WTChangeRequest2:32456"
},
"Name":{
"value":"CR2"
}
}
],
"metadata":{
"id":{
"label":"Id",
"type":"string"
},
"Name":{
"label":"Change Request Name",
"type":"string"
}
}
},
{
"objectType":"PTC.Workflow.WorkItem",
"items":[
{
"Category#Display":{
"value":"Cost Reduction"
},
"RequestPriority#Display":{
"value":"Low"
}
},
{
"Category#Display":{
"value":"Cost Reduction"
},
"RequestPriority#Display":{
"value":"High"
}
}
],
"metadata":{
"Category#Display":{
"label":"Category",
"type":"string"
},
"RequestPriority#Display":{
"label":"Request Priority",
"type":"string"
}
}
}
]
}
],
"status":"200",
"statusMessage":"OK",
"timeStamp":" 2019-01-02 06:43:19.77"
}
這是否有幫助?