公用通信对象结构
公用通信对象 (Common Communication Object),也称为 CCO,是用于在 Windchill Navigate 中管理数据传输的 JSON 结构。其常见用例之一是包含一个或多个后端系统实例的数据和元数据,以及从这些系统检索的对象。
CCO 同时支持以单级列表显示数据和以层次结构显示数据。但是,层次结构数据需要包括一些附加键,如下表所示。
单级数据的 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":""
}
层次结构数据的 CCO 结构
{
"version":"1.0.0",
"data":[
{
"adapter":{
"thingName":"",
"instanceName":""
},
"itemListsData":[
{
"objectType":"",
"items":[
{
"id":{
"value":""
},
"Name":{
"value":""
},
"PTC.Nav.Descendants":{
"items":[
{
"id":{
"value":""
},
"Name":{
"value":""
}
}
]
}
}
],
"metadata":{
"id":{
"label":"",
"type":""
},
"Name":{
"label":"",
"type":""
}
},
"typeData":{

}
}
]
}
],
"status":"",
"statusMessage":"",
"timeStamp":""
}
属性名称
说明
version
使用的 CCO 结构版本。
属性类型为字符串。
data
从后端系统检索到的信息。
属性类型为字符串。
adapter
包含从其中检索数据的后端系统实例的相关信息。
thingName
表示 Windchill Navigate 中后端系统的适配器事物的名称。
属性类型为字符串。
instanceName
后端系统的特定实例的名称。
属性类型为字符串。
ItemListsData
项和元数据的列表。列表中每个实例内的项必须是相同的对象类型。
objectType
items 数组的对象类型。
属性类型为字符串或对象。也可接受字符串化的其他类型,如整数或布尔型。
items
项、项属性和属性值的列表。
value
特定属性和项的值。
属性类型为字符串或对象。
PTC.Nav.Descendants
包含项的所有后代 (即子项、子项的子项等) 的数组。
* 
此属性仅适用于层次结构数据。
metadata
关于属性的信息,通用于所有项。metadata 下的项可具有 type 字符串,包括字符串化的 "INTEGER""BOOLEAN"。它们也可以具有 type 对象 NAV.OBJECT
hasChildren
特定于 Windchill 的属性,用于指示特定项是否具有子项。仅适用于部件或 CAD 文档。
属性类型为布尔型。
* 
此属性仅适用于层次结构数据。
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"
}
5. 以下示例包括不同的对象类型,例如 "string"、字符串化的 "hyperlink"NAV.OBJECT
{
"timeStamp":"2021-10-18 17:14:05.445",
"data":[
{
"itemListsData":[
{
"metadata":{
"method":{
"label":"method",
"type":"string"
},
"body":{
"label":"body",
"type":"NAV.OBJECT"
},
"url":{
"label":"url",
"type":"hyperlink"
}
},
"items":[
{
"method":{
"value":"post"
},
"body":{
"value":{
"Variables":[

],
"UserEventList":[
"Approve"
],
"AutomateFastTrack":false,
"VoteAction":"",
"task_id":"OR:wt.workflow.work.WorkItem:408170",
"WorkitemComment":"",
"redirect_url":"",
"Name":"Conduct Online CRB Review"
}
},
"url":{
"value":""
}
}
],
"objectType":"PTC.Navigate.ESignInvoke.Adapter"
}
],
"adapter":{
"instanceName":"windchill",
"thingName":"PTC.WCAdapter"
}
}
],
"version":"1.0.0",
"statusMessage":"OK",
"status":"200"
}
6. 以下示例包括层次结构数据:
{
"version": "1.0.0",
"data": [
{
"adapter": {
"thingName": "PTC.WCAdapter",
"instanceName": "windchill"
},
"itemListsData": [
{
"objectType": "PTC.ProdMgmt.PartStructureItem",
"items": [
{
"id": {
"value": "PartId1"
},
"Name": {
"value": "Part1"
},
"PTC.Nav.Descendants": {
"items": [
{
"id": {
"value": "PartId2"
},
"Name": {
"value": "Part2"
}
},
{
"id": {
"value": "PartId3"
},
"Name": {
"value": "Part3"
}
}
]
}
},
{
"id": {
"value": "PartId4"
},
"Name": {
"value": "Part4"
}
}
],
"metadata": {
"id": {
"label": "Id",
"type": "string"
},
"Name": {
"label": "Name",
"type": "string"
}
}
}
]
}
],
"status": "200",
"statusMessage": "OK",
"timeStamp": " 2019-01-02 06:43:19.77"
}
这对您有帮助吗?