Community email notifications are disrupted. While we are working to resolve, please check on your favorite boards regularly to keep up with your conversations and new topics.
Hello everyone!
Please tell me how can I get the values of global attributes in a WTDocument using OData?
Version of Windchill REST Services - 1.4.
Now I can only get attributes such as number and name.
Thanks in advance.
Regards!
Solved! Go to Solution.
Hi VladiSlav,
Please refer to this helpful article :
https://www.ptc.com/en/support/article/CS304928
If you have a simple IBA, you just have to add in Parts.json the following :
{
"name":"IBA",
"internalName":"IBA",
"type":"String"
}
Create an entry in Parts.json, specifying a new attribute. As it is an enumeration, I will add the following :
{
"name": "EnumString",
"internalName": "EnumString",
"type": "PTC.EnumType"
}
In Parts.json, findable in codebase\rest\ptc\domain\ProdMgmt\v2\entity\Parts.json
Then it will look like this :
{
"name":"Part",
"collectionName":"Parts",
"type":"wcType",
"wcType":"wt.part.WTPart",
"description":"Parts",
"operations":"CREATE,UPDATE,DELETE",
"attributes":[
{
"name":"Name",
"internalName":"name",
"type":"String",
"required":true
}, {
"name":"Number",
"internalName":"number",
"type":"String"
}, {
"name":"EndItem",
"internalName":"endItem",
"type":"Boolean",
"driver":true
}, {
"name":"TypeIcon",
"internalName":"type_icon",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"Identity",
"internalName":"identity",
"type":"String",
"readOnly":true
}, {
"name":"GeneralStatus",
"internalName":"statusFamily_General",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"ShareStatus",
"internalName":"statusFamily_Share",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"ChangeStatus",
"internalName":"statusFamily_Change",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"Supersedes",
"internalName":"statusFamily_Supersede",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"AssemblyMode",
"internalName":"partType",
"type":"PTC.EnumType",
"required":true
}, {
"name":"DefaultUnit",
"internalName":"defaultUnit",
"type":"PTC.EnumType",
"required":true
}, {
"name":"DefaultTraceCode",
"internalName":"defaultTraceCode",
"type":"PTC.EnumType",
"required":true
}, {
"name":"Source",
"internalName":"source",
"type":"PTC.EnumType",
"required":true
}, {
"name":"ConfigurableModule",
"internalName":"genericType",
"type":"PTC.EnumType"
}, {
"name":"GatheringPart",
"internalName":"hidePartInStructure",
"type":"Boolean",
"required":true
}, {
"name":"PhantomManufacturingPart",
"internalName":"phantom",
"type":"Boolean",
"required":true
}, {
"name":"BOMType",
"internalName":"variation1",
"type":"PTC.EnumType"
}, {
"name":"AlternateNumber",
"internalName":"variation2",
"type":"PTC.EnumType"
},{
"name": "EnumString",
"internalName": "EnumString",
"type": "PTC.EnumType"
}
],
"inherits":[
{
"name": "versioned"
}, {
"name": "contextManaged"
}, {
"name": "lifecycleManaged"
}, {
"name": "viewManageable"
}, {
"name": "workable"
}, {
"name": "representable"
}, {
"name": "organizationOwned"
}, {
"name": "foldered"
}
],
"navigations":[
{
"name":"Uses",
"target":"PartUses",
"type":"PartUse",
"isCollection":true,
"containsTarget":true
}, {
"name":"UsedBy",
"target":"Parts",
"type":"Part",
"isCollection":true
}, {
"name":"DescribedBy",
"target":"PartDescribeLinks",
"type":"PartDescribeLink",
"isCollection":true,
"containsTarget":true
}, {
"name":"References",
"target":"PartReferenceLinks",
"type":"PartReferenceLink",
"isCollection":true,
"containsTarget":true
}
],
"functions":[],
"actions":[
{
"name":"GetBOM",
"description":"Get Bill Of Materials",
"parameters": [{
"name":"part",
"type":"Part",
"isNullable":false,
"isCollection":false
}, {
"name":"navigationCriteriaId",
"type":"String",
"isNullable":true,
"isCollection":false
}],
"returnType": {
"type":"BOM",
"isCollection":false
}
}
]
}
Without restarting Windchill :
GET http://pdm10.de/Windchill/servlet/odata/ProdMgmt/Parts('VR:wt.part.WTPart:2874036') In Postman
Give this output :
{
"@odata.context": "http://pdm10.de/Windchill/servlet/odata/v2/ProdMgmt/$metadata#Parts",
"@odata.type": "#PTC.ProdMgmt.AsArticle",
"ID": "OR:wt.part.WTPart:2874037",
"Name": "MyPar",
"Number": "0000071301",
"EndItem": false,
"TypeIcon": {
"Path": "http://pdm10.de/Windchill/netmarkets/images/config_part.gif",
"Tooltip": "Configurable Module"
},
"Identity": "0000071301, MyPar, Demo Organization, A (Design)",
"GeneralStatus": {
"Path": "http://pdm10.de/Windchill/com/ptc/core/htmlcomp/images/checkedout_byyou9x9.gif",
"Tooltip": "Working copy, checked-out to you"
},
"ShareStatus": null,
"ChangeStatus": null,
"Supersedes": null,
"AssemblyMode": {
"Value": "separable",
"Display": "Separable"
},
"DefaultUnit": {
"Value": "ea",
"Display": "each"
},
"DefaultTraceCode": {
"Value": "0",
"Display": "Untraced"
},
"Source": {
"Value": "make",
"Display": "Make"
},
"ConfigurableModule": {
"Value": "dynamic",
"Display": "Yes"
},
"GatheringPart": false,
"PhantomManufacturingPart": false,
"BOMType": null,
"AlternateNumber": null,
"EnumString": {
"Value": "SteelSheets",
"Display": "Steel Sheets"
},
"View": "Design",
"CheckoutState": "Working copy, checked-out to you",
"CheckOutStatus": "cat-working-copy",
"Comments": null,
"State": {
"Value": "INWORK",
"Display": "In Work"
},
if it does not work please expose here how you are driving this use case.
best regards
Hicham
Hi VladiSlav,
Please refer to this helpful article :
https://www.ptc.com/en/support/article/CS304928
If you have a simple IBA, you just have to add in Parts.json the following :
{
"name":"IBA",
"internalName":"IBA",
"type":"String"
}
Create an entry in Parts.json, specifying a new attribute. As it is an enumeration, I will add the following :
{
"name": "EnumString",
"internalName": "EnumString",
"type": "PTC.EnumType"
}
In Parts.json, findable in codebase\rest\ptc\domain\ProdMgmt\v2\entity\Parts.json
Then it will look like this :
{
"name":"Part",
"collectionName":"Parts",
"type":"wcType",
"wcType":"wt.part.WTPart",
"description":"Parts",
"operations":"CREATE,UPDATE,DELETE",
"attributes":[
{
"name":"Name",
"internalName":"name",
"type":"String",
"required":true
}, {
"name":"Number",
"internalName":"number",
"type":"String"
}, {
"name":"EndItem",
"internalName":"endItem",
"type":"Boolean",
"driver":true
}, {
"name":"TypeIcon",
"internalName":"type_icon",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"Identity",
"internalName":"identity",
"type":"String",
"readOnly":true
}, {
"name":"GeneralStatus",
"internalName":"statusFamily_General",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"ShareStatus",
"internalName":"statusFamily_Share",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"ChangeStatus",
"internalName":"statusFamily_Change",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"Supersedes",
"internalName":"statusFamily_Supersede",
"type":"PTC.Icon",
"readOnly":true
}, {
"name":"AssemblyMode",
"internalName":"partType",
"type":"PTC.EnumType",
"required":true
}, {
"name":"DefaultUnit",
"internalName":"defaultUnit",
"type":"PTC.EnumType",
"required":true
}, {
"name":"DefaultTraceCode",
"internalName":"defaultTraceCode",
"type":"PTC.EnumType",
"required":true
}, {
"name":"Source",
"internalName":"source",
"type":"PTC.EnumType",
"required":true
}, {
"name":"ConfigurableModule",
"internalName":"genericType",
"type":"PTC.EnumType"
}, {
"name":"GatheringPart",
"internalName":"hidePartInStructure",
"type":"Boolean",
"required":true
}, {
"name":"PhantomManufacturingPart",
"internalName":"phantom",
"type":"Boolean",
"required":true
}, {
"name":"BOMType",
"internalName":"variation1",
"type":"PTC.EnumType"
}, {
"name":"AlternateNumber",
"internalName":"variation2",
"type":"PTC.EnumType"
},{
"name": "EnumString",
"internalName": "EnumString",
"type": "PTC.EnumType"
}
],
"inherits":[
{
"name": "versioned"
}, {
"name": "contextManaged"
}, {
"name": "lifecycleManaged"
}, {
"name": "viewManageable"
}, {
"name": "workable"
}, {
"name": "representable"
}, {
"name": "organizationOwned"
}, {
"name": "foldered"
}
],
"navigations":[
{
"name":"Uses",
"target":"PartUses",
"type":"PartUse",
"isCollection":true,
"containsTarget":true
}, {
"name":"UsedBy",
"target":"Parts",
"type":"Part",
"isCollection":true
}, {
"name":"DescribedBy",
"target":"PartDescribeLinks",
"type":"PartDescribeLink",
"isCollection":true,
"containsTarget":true
}, {
"name":"References",
"target":"PartReferenceLinks",
"type":"PartReferenceLink",
"isCollection":true,
"containsTarget":true
}
],
"functions":[],
"actions":[
{
"name":"GetBOM",
"description":"Get Bill Of Materials",
"parameters": [{
"name":"part",
"type":"Part",
"isNullable":false,
"isCollection":false
}, {
"name":"navigationCriteriaId",
"type":"String",
"isNullable":true,
"isCollection":false
}],
"returnType": {
"type":"BOM",
"isCollection":false
}
}
]
}
Without restarting Windchill :
GET http://pdm10.de/Windchill/servlet/odata/ProdMgmt/Parts('VR:wt.part.WTPart:2874036') In Postman
Give this output :
{
"@odata.context": "http://pdm10.de/Windchill/servlet/odata/v2/ProdMgmt/$metadata#Parts",
"@odata.type": "#PTC.ProdMgmt.AsArticle",
"ID": "OR:wt.part.WTPart:2874037",
"Name": "MyPar",
"Number": "0000071301",
"EndItem": false,
"TypeIcon": {
"Path": "http://pdm10.de/Windchill/netmarkets/images/config_part.gif",
"Tooltip": "Configurable Module"
},
"Identity": "0000071301, MyPar, Demo Organization, A (Design)",
"GeneralStatus": {
"Path": "http://pdm10.de/Windchill/com/ptc/core/htmlcomp/images/checkedout_byyou9x9.gif",
"Tooltip": "Working copy, checked-out to you"
},
"ShareStatus": null,
"ChangeStatus": null,
"Supersedes": null,
"AssemblyMode": {
"Value": "separable",
"Display": "Separable"
},
"DefaultUnit": {
"Value": "ea",
"Display": "each"
},
"DefaultTraceCode": {
"Value": "0",
"Display": "Untraced"
},
"Source": {
"Value": "make",
"Display": "Make"
},
"ConfigurableModule": {
"Value": "dynamic",
"Display": "Yes"
},
"GatheringPart": false,
"PhantomManufacturingPart": false,
"BOMType": null,
"AlternateNumber": null,
"EnumString": {
"Value": "SteelSheets",
"Display": "Steel Sheets"
},
"View": "Design",
"CheckoutState": "Working copy, checked-out to you",
"CheckOutStatus": "cat-working-copy",
"Comments": null,
"State": {
"Value": "INWORK",
"Display": "In Work"
},
if it does not work please expose here how you are driving this use case.
best regards
Hicham
Thank you very much for your reply!
I added these lines to Documents.json:
{
"name":"IBA",
"internalName":"IBA",
"type":"String"
}, {
"name": "EnumString",
"internalName": "EnumString",
"type": "PTC.EnumType"
}
And I get these answers to the request:
<d:EnumString m:null="true"/>
<d:IBA m:null="true"/>
here is the main part of my request:
Windchill/servlet/odata/v1/DocMgmt/Documents
What am I doing wrong?
Thanks in advance!
Hi,
But what are the internal names of your global attributes ? (in type and attribute manager)
Hicham
oh sure!
Now everything worked, thanks a lot!
One more question if you can)
I used to think that enumerations have only one name and several values.
But in your example it looks like a key - value.
"EnumString": {
"Value": "SteelSheets",
"Display": "Steel Sheets"
}
Do I understand correctly?
How can I do it?
Thanks in advance!
HI, follow these screenshots :
create an IBA and add constraint enumeration
the global enumeratoin to be added into the IBA
after creating a part and added a value to the attribute
Postman response
Hope this is now clear 🙂
Best reagrds,
Hicham
Thank you so much!