pythonapirestcadptc-windchill

PTC Windchill WRS API Can't add attributes to WTParts on creation


How can I add data to our custom attributes via the WRS API? We have an attribute for WTParts called "CAT_CODE" and I want to add data to it via the CreatePart command (http://##.###.#.###:##/Windchill/servlet/odata/v5/ProdMgmt/Parts). My data is:

{
    "DefaultUnit":{},
    "EndItem":False,
    "GatheringPart":False,
    "DefaultTraceCode":{},
    "PhantomManufacturingPart":False,
    "ConfigurableModule":{},
    "Name":"pyapitest",
    "Source":{},
    "AssemblyMode":{},
    "Uses@odata.bind":[],
    "DescribedBy@odata.bind":[],
    "References@odata.bind":[],
    "PartDocAssociations@odata.bind":[],
    "Context@odata.bind":"Containers('OR:wt.pdmlink.PDMLinkProduct:109352')",
    "Folder@odata.bind":"Containers('OR:wt.folder.SubFolder:155247')",
    "CAT_CODE": "52",
}

The error code I get when running the POST command is {"error":{"code":null,"message":"'CAT_CODE' can not be mapped as a property or an annotation."}}


Solution

  • Apparently, the underscore in CAT_CODE is not passed into the IBA attribute. So deleting the underscore fixed it. The correct data is

    {
        "DefaultUnit":{},
        "EndItem":False,
        "GatheringPart":False,
        "DefaultTraceCode":{},
        "PhantomManufacturingPart":False,
        "ConfigurableModule":{},
        "Name":"pyapitest",
        "Source":{},
        "AssemblyMode":{},
        "Uses@odata.bind":[],
        "DescribedBy@odata.bind":[],
        "References@odata.bind":[],
        "PartDocAssociations@odata.bind":[],
        "CATCODE":"520000",
        "Context@odata.bind":"Containers('OR:wt.inf.library.WTLibrary:110138')",
        "Folder@odata.bind":"Folders('OR:wt.folder.SubFolder:155247')",
    }
    

    Also, I noticed an issue with the Folder@odata.bind path which was malformed.