04-22-2020 06:48 AM
I'm using the following endpoint to update a node:
https://api-explorer.alfresco.com/api-explorer/#!/nodes/updateNode
{ "properties": [ "cm:title": "New Title", "cm:description": "New Description", "cm:author": "New Author", ] }
This works fine on nodes without versions. However, if a node has cm:versionable, it only updates cm:author but title and description remain the same. Tagging (which is done in a separate step) also works fine.
I also tried sending cm:versionLabel/versionType along but this also didn't help.
Neither by setting the same or higher version label.
Any help is highly appreciated!
04-23-2020 09:36 AM
Hi,
I've just tried again using the api-explorer - http://localhost/api-explorer/#!/nodes/updateNode.
Using the PUT cmd I've been able to update cm:title & cm:description of a versioned document.
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }' 'http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d'
Request URL:
http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d
Response body:
{ "entry": { "isFile": true, "createdByUser": { "id": "admin", "displayName": "Administrator" }, "modifiedAt": "2020-04-23T13:26:54.465+0000", "nodeType": "cm:content", "content": { "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "mimeTypeName": "Microsoft Word 2007", "sizeInBytes": 48, "encoding": "UTF-8" }, "parentId": "479ec2bc-fb73-4e93-9c44-b36d08ba0446", "aspectNames": [ "rn:renditioned", "cm:versionable", "cm:titled", "cm:auditable", "cm:taggable", "cm:rateable", "cm:likesRatingSchemeRollups", "cm:author", "cm:thumbnailModification" ], "createdAt": "2020-04-03T13:46:54.555+0000", "isFolder": false, "modifiedByUser": { "id": "admin", "displayName": "Administrator" }, "name": "rename file", "id": "3f43567d-a3ae-4b79-b56c-d52157defe9d", "properties": { "cm:title": "My NEW title", "cm:versionType": "MINOR", "cm:versionLabel": "2.1", "cm:author": "BoPeep 3", "cm:likesRatingSchemeTotal": 1, "cm:likesRatingSchemeCount": 1, "cm:lastThumbnailModification": [ "pdf:1587645057519", "doclib:1587645059840" ], "cm:description": "This is an important doc" } } }
Payload body
{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }
What version of Alfresco are you running? I'm running 6.2 GA201911.
04-22-2020 07:11 AM
Hi,
Have you had a look at the Rest API series - part 5 discusses locking & versioning? I believe the correct PUTT call is http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/{id} - more info here.
HTH,
04-22-2020 07:50 AM
Thanks a lot for your reply.
This is actually what I'm currently doing.
The request itself works fine on unversioned nodes and I don't really want to create a new version or anything like that. I just want to update properties of the current version. I also don't get an error back from the API. It just didn't apply some of the properties I sent.
This is the node I PUT to:
{ "isFile": true, "createdByUser": { "id": "U1627", "displayName": "John Doe" }, "modifiedAt": "2020-04-22T11:33:02.817+0000", "nodeType": "cm:content", "content": { "mimeType": "application\/pdf", "mimeTypeName": "Adobe PDF Document", "sizeInBytes": 115669, "encoding": "UTF-8" }, "parentId": "95b9880d-6869-47e2-9353-c878ee7ced60", "aspectNames": [ "rn:renditioned", "cm:versionable", "cm:titled", "cm:auditable", "cm:taggable", "cm:author", "cm:thumbnailModification" ], "createdAt": "2020-01-07T09:37:26.247+0000", "isFolder": false, "modifiedByUser": { "id": "U1627", "displayName": "John Doe" }, "name": "Test.pdf", "id": "c30f7faf-2b5b-454d-aaac-a1e940c7330e", "properties": { "cm:title": "Old Title", "cm:versionType": "MINOR", "cm:versionLabel": "1.3", "cm:author": "New Author", "cm:lastThumbnailModification": [ "doclib:1587546256239", "imgpreview:1587546256672" ], "cm:description": "Old Description", "cm:taggable": [ "db4fccfe-b850-4eff-a5dd-5fcdfb8e15d9" ] } }
This is my payload:
{ "properties": [ "cm:title": "New Title", "cm:description": "New Description", "cm:author": "New Author", ] }
As you can see, cm:author got updated, but title and description are still "old".
04-22-2020 12:45 PM
Hi @sboesch,
I actually experienced the same result as you did with that call.
However, I've just updated a versioned document's cm:title & cm:description using the following API call:
http://localhost/alfresco/s/api/metadata/node/workspace/SpacesStore/3f43567d-a3ae-4b79-b56c-d52157defe9d?alf_ticket=TICKET_007669d537dd0bff8507331d9da1362ed5dcdec4
The node I PUT to is:
{ "nodeRef": "workspace://SpacesStore/3f43567d-a3ae-4b79-b56c-d52157defe9d", "aspects": [ "rn:renditioned", "cm:versionable", "cm:titled", "sys:cascadeUpdate", "cm:auditable", "sys:referenceable", "sys:localized", "cm:taggable", "cm:author", "cm:thumbnailModification" ], "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type": "cm:content", "properties": { "cm:created": "2020-04-03T13:46:54.555Z", "cm:lastThumbnailModification": [ "pdf:1587563780477", "doclib:1587563785658" ], "cm:description": "test desc using ws", "cm:creator": "admin", "sys:node-uuid": "3f43567d-a3ae-4b79-b56c-d52157defe9d", "cm:name": "rename file", "cm:content": "contentUrl=store://2020/4/22/13/56/1189b2f1-23c6-4520-a3eb-4098079935e1.bin|mimetype=application/vnd.openxmlformats-officedocument.wordprocessingml.document|size=3560|encoding=UTF-8|locale=en_US_|id=325", "sys:store-identifier": "SpacesStore", "cm:versionLabel": "2.0", "sys:cascadeCRC": 2463522156, "cm:autoVersion": true, "cm:initialVersion": true, "cm:versionType": "MAJOR", "cm:autoVersionOnUpdateProps": false, "cm:title": "a title updated by API call", "sys:cascadeTx": 101, "cm:taggable": null, "sys:store-protocol": "workspace", "sys:node-dbid": 949, "sys:locale": "en_US", "cm:modifier": "admin", "cm:modified": "2020-04-22T16:26:09.217Z", "cm:author": "Eddie May" } }
My payload was:
{ "properties":{ "cm:name": "rename file", "cm:title": "a title updated by API call", "cm:description": "test desc using ws" } }
I'm not sure if this means you have to use this particular API call to update versioned documents? I'll take a further look around and update if I discover more.
Cheers,
04-22-2020 01:07 PM
Thank you very much for looking into this.
I tried your alternative API call and noticed it only supports POST instead of PUT.
However, I still get the same results - cm:author gets updated, but cm:title and description not.
I'll check it again, to see if I missed something.
04-23-2020 09:36 AM
Hi,
I've just tried again using the api-explorer - http://localhost/api-explorer/#!/nodes/updateNode.
Using the PUT cmd I've been able to update cm:title & cm:description of a versioned document.
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }' 'http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d'
Request URL:
http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d
Response body:
{ "entry": { "isFile": true, "createdByUser": { "id": "admin", "displayName": "Administrator" }, "modifiedAt": "2020-04-23T13:26:54.465+0000", "nodeType": "cm:content", "content": { "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "mimeTypeName": "Microsoft Word 2007", "sizeInBytes": 48, "encoding": "UTF-8" }, "parentId": "479ec2bc-fb73-4e93-9c44-b36d08ba0446", "aspectNames": [ "rn:renditioned", "cm:versionable", "cm:titled", "cm:auditable", "cm:taggable", "cm:rateable", "cm:likesRatingSchemeRollups", "cm:author", "cm:thumbnailModification" ], "createdAt": "2020-04-03T13:46:54.555+0000", "isFolder": false, "modifiedByUser": { "id": "admin", "displayName": "Administrator" }, "name": "rename file", "id": "3f43567d-a3ae-4b79-b56c-d52157defe9d", "properties": { "cm:title": "My NEW title", "cm:versionType": "MINOR", "cm:versionLabel": "2.1", "cm:author": "BoPeep 3", "cm:likesRatingSchemeTotal": 1, "cm:likesRatingSchemeCount": 1, "cm:lastThumbnailModification": [ "pdf:1587645057519", "doclib:1587645059840" ], "cm:description": "This is an important doc" } } }
Payload body
{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }
What version of Alfresco are you running? I'm running 6.2 GA201911.
04-23-2020 10:37 AM
Alright, apparently we are still on Version 5.2.e/f. We'll try to update.
Thanks for your effort.
Explore our Alfresco products with the links below. Use labels to filter content by product module.