Hi all,
did anybody of you tried to update the metadata of a document in a document library with REST Webservice in a Nintex Workflow?
I did create a workflow and it works fine with the syntax of the article above - except for the managed metadata column. This column is always ignored by the web service. Is there any other Syntax compared to a list item??
Hi Christof,
To update a managed metadata field, the body of your request should look like this :
{
'__metadata': {'type':'yourListItemEntityTypeFullName'},
'yourManagedMetadataColumnName': {
'__metadata': {'type':'SP.Taxonomy.TaxonomyFieldValue'},
'Label':'YourTermLabel',
'TermGuid':'YourTermGuid',
'WssId':id
}
}
As far as I know, updating a multiple managed metadata field using SP2013 REST API is currently not supported. I use the "Update multiple items" action in Nintex Workflow using the following field value:
FirstTermId;#FirstTermLabel|FirstTermGuid;#SecondTermId;#SecondTermLabel|SecondTermGuid
Hope this helps
Hi Caroline,
thanks for your post.
I use exactly the syntax you posted. But on my environment it only works for list items, not for documents in a document library. Do you have other experiences? Does this syntax works for documents on your System?
Best regards
Christof
hi Need help create global navigation in SharePoint on prime using nintex workflow + Rest api
The 'Accept' header must be modified using the appropriate property or method.
Parameter name: name
I am getting this error
You can try to execute your web request without the "Accept" header that you've added.
Hope this helps
Yes its working thanks your help .
Does this work in Nintex Workflow online?
Yes it works in Nintex Workflow online. I've just noticed that building Json request body (when performing POST requests) is a bit tricky. I've explained a workaround here :
https://community.nintex.com/message/34252?commentID=34252#comment-34390
Hope this helps
Hi Caroline,
thank you very much for this great article about how to execute a SP2013 REST API request with Nintex Workflow.
I tried to execute your post request code. However the workflow throws an System.UnauthorizedAccessException in the first action by trying to get the contextinfo. In the SharePoint Environment we use ADFS and premise (SharePoint Enterprise2016). I used the normal login credentials (active Directory) for authentication. The user has site collection administrator permission on the site where the list workflow executes.
Fehler beim Ausführen der Webanforderung. <?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code>-2147024891, System.UnauthorizedAccessException</m:code><m:message xml:lang="de-DE">Z
Maybe you can give me a hint.
Thank you and kind regards
Andy
Andy,
Good Morning! I am not sure the settings in SP2016. Did you have any thing in Site features called "Workflow Can use App Permissions". if it is, Try activating that feature. Looks like the workflow is not able to read due to insufficient permissions.
Thanks,
Vinay.
Hi Andreas,
To get the complete error message, you can send you an email in Plain text mode with the error message which you can store in a variable in Error Handling section of the Web request action. You can also test your web request in Nintex Workflow editor, when configuring the web request action, you can click on "Run now" button in the ribbon. It will simulate the execution of the web request.
Can you then share the complete error message you get?
Have a nice day
Hi Caroline,
Does this work for creating a document set automatically from a list item? I've been trying to figure out how to get this to happen and it kind of sounds like I would use a REST API to accomplish it but I'm not quite sure how.
Hi Caroline,
I'm hoping you can help me out - I'm trying to use a web request action in 365 to create a subsite, I have provided the X-RequestDigest value, but am still receiving the The security validation for this page is invalid and might be corrupted error. Is there something else I need to do (other than to give the workflow app full permission) that can resolve this issue?
Secondly, how did you manage to enter content straight into the web request action? Anytime I do that, the workflow suspends with 'Request body cannot be empty'.
Thanks,
Katherine
Hi Katherine,
Regarding the security issue, can you send to yourself via the workflow the value of the request digest that you provide in the query?
There's nothing else to perform regarding security.
In O365, it's a bit tricky to be able to build the body of the web request. I've described in this discussion how to do it:
https://community.nintex.com/message/34286#comment-34390
Hope this helps
Hi Terek,
I haven't tried to, but it seems possible using listdata.svc:
https://sharepoint.stackexchange.com/questions/114882/is-it-possible-to-create-a-document-set-using-rest-api
It should be possible to perform the query from a workflow using the web request.
Tell me if you managed to create a document set with the web request action.
Hi Caroline,
I've got the workflow logging the request digest value, and emailing me the authenticated header (content type, accept and request digest) in an email. Although, I thought if I used web request and provided an email and password it would create the authentication for the header?
I've just run a test without the username and password and received an 'access denied' message. I have however, managed to add the body of the request straight into the action which makes it a little easier to see what's going on.
Thanks for your help
Hello,
I have a list that has a field called "codroject".
When this field is filled the workflow should update the commitemnets field of one other list in another site.
I need create web request to do this.
Who do this?
Hi Katherine,
Great that you managed to build the body . Regarding authentication, did you finally make it working?
Is the request digest value in the correct format?
The request to perform to get the request digest has to be a POST one and not GET.
I maybe forgot to mention that usename and password are mandatory otherwise the web request won't work.
Have a nice day,
Caroline
Hi Jose,
You can follow the example written in this blog post to update a list item.
Tell me if you have issues or problems.
Hope this helps
Hi Caroline,
I still can't get it to work - I've got the request digest as part of the header for the web request, the request digest is in the same format I used during testing for site creation using Postman. The workflow app has elevated permissions and the web request action is in an app step. There's a username and password added to the action.
Is there anything else for authentication that I need to include? Would it be better to run this using the call http web service action?
Hi Katherine,
Can you send me the url that you've populated in the web request, the headers you've added and the body?
Then it will be easier for me to give you advices.
If you're using SharePoint REST API, then http web service action won't work.
Hi Caroline,
The web request: https://<tenant>.sharepoint.com/sites/<sitecollection>/_api/web/webinfos/add
Method: Post
Header:
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
X-RequestDigest: (calculated by the workflow) e.g.: 0x7B2DCD41DA731F0B58ED0CE2F7677469F897E46A31E386319C49C812AD3E19B1D96CD6500C71F9BF3487706DDBE26C8605E7679285681FC90E97BF0F0A78D871,13 Jun 2017 06:43:02 -0000
Body:
{"parameters": "Url": "choc","Title":"choc - Chocolate","Description": "created by workflow","Language": 1033,"WebTemplate": "STS#0","UseUniquePermissions": true}}
Thanks for your help - I'm way out of ideas
Hi Katherine,
There are few things missing in the body.
Can you try with the following body (I've underlined missing caracters)?
{"parameters": { '__metadata': {'type': 'SP.WebInfoCreationInformation' },"Url": "choc","Title":"choc - Chocolate","Description": "created by workflow","Language": 1033,"WebTemplate": "STS#0","UseUniquePermissions": true}}
I hope it will work
Hey Caroline,
I have followed the same steps as you mentioned here for GET request. I got the XML response from web request as below:
Response status code: 200
Response content:
<?xml version="1.0" encoding="utf-8"?><entry xml:base="http://brvm153:45438/sites/devs/tb/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:etag=""2""><id>d8d7b397-ba4c-48ac-8e1e-474c4fcb3a8b</id><category term="SP.Data.UserList2ListItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /><link rel="edit" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FirstUniqueAncestorSecurableObject" type="application/atom+xml;type=entry" title="FirstUniqueAncestorSecurableObject" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/FirstUniqueAncestorSecurableObject" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/RoleAssignments" type="application/atom+xml;type=feed" title="RoleAssignments" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/RoleAssignments" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/AttachmentFiles" type="application/atom+xml;type=feed" title="AttachmentFiles" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/AttachmentFiles" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ContentType" type="application/atom+xml;type=entry" title="ContentType" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/ContentType" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesAsHtml" type="application/atom+xml;type=entry" title="FieldValuesAsHtml" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/FieldValuesAsHtml" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesAsText" type="application/atom+xml;type=entry" title="FieldValuesAsText" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/FieldValuesAsText" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesForEdit" type="application/atom+xml;type=entry" title="FieldValuesForEdit" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/FieldValuesForEdit" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/File" type="application/atom+xml;type=entry" title="File" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/File" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Folder" type="application/atom+xml;type=entry" title="Folder" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/Folder" /><link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ParentList" type="application/atom+xml;type=entry" title="ParentList" href="Web/Lists(guid'1ba7f9ac-9097-438d-b079-9677419b0917')/Items(9)/ParentList" /><title /><updated>2017-06-13T12:08:59Z</updated><author><name /></author><content type="application/xml"><m:properties><d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType><d:Id m:type="Edm.Int32">9</d:Id><d:ContentTypeId>0x010046DB9F9D7073D346A45596CDAB523B8A</d:ContentTypeId><d:Title m:null="true" /><d:EventsId m:type="Edm.Int32">6</d:EventsId><d:Employee_x0020_Name>Raj</d:Employee_x0020_Name><d:Employee_x0020_Email>raj@vol.com</d:Employee_x0020_Email><d:No_x002e__x0020_of_x0020_Guests m:type="Edm.Double">567</d:No_x002e__x0020_of_x0020_Guests><d:Dietary_x0020_restrictions><div class="ExternalClass19FEE4156E8A451EB9E052C78EB40793"><p>non-vol</p></div></d:Dietary_x0020_restrictions><d:Volunteer_x0020_Events><div class="ExternalClass8DC76AA6EC7643928AEE26A459CD4143"><p>Guj</p></div></d:Volunteer_x0020_Events><d:T_x002d_shirt_x0020_Size m:type="Edm.Double">20</d:T_x002d_shirt_x0020_Size><d:Business_x0020_Unit>3</d:Business_x0020_Unit><d:No_x002e__x0020_of_x0020_tickets m:type="Edm.Double">56</d:No_x002e__x0020_of_x0020_tickets><d:Volunter_x0020_EvntsId m:type="Edm.Int32">2</d:Volunter_x0020_EvntsId><d:DeleteEv m:null="true" /><d:Archivin m:null="true" /><d:OData__dlc_ExpireDate m:type="Edm.DateTime">2017-03-21T11:10:03Z</d:OData__dlc_ExpireDate><d:Test m:type="Edm.DateTime">2017-03-18T18:30:00Z</d:Test><d:SharePoi m:type="Edm.Int32">5</d:SharePoi><d:ID m:type="Edm.Int32">9</d:ID><d:Modified m:type="Edm.DateTime">2017-03-20T10:44:44Z</d:Modified><d:Created m:type="Edm.DateTime">2017-03-20T10:44:44Z</d:Created><d:AuthorId m:type="Edm.Int32">1</d:AuthorId><d:EditorId m:type="Edm.Int32">1</d:EditorId><d:OData__UIVersionString>1.0</d:OData__UIVersionString><d:Attachments m:type="Edm.Boolean">false</d:Attachments><d:GUID m:type="Edm.Guid">0174edce-3aa7-445c-a5b9-1845aaa58068</d:GUID></m:properties></content></entry>
When I use this XML in Query XML action I am getting XPATH as :
/defaultNS:entry/defaultNS:content/defaultNSproperties/defaultNS:d:Employee_x0020_Name
The problem is this is not working as expected (as shown in scree-shot in blog). It does not return me the name of the employee but returns me same XML.
Kindly guide me where I am going wrong.
I am using SharePoint on-premises