sharepoint designer 2013 workflow work with metadata terms and files in a folder

Brass Contributor

Hello, 

 

I test a GET query to have access at the label of 2 metadata fields associate to a content type use to upload files in document set folder. I need to have information from somes fields of the docset too. 

 

 

For testing I use Postman and ie11 to view the result in XML. 

I have create a 2013 workflow with a http web service call  who check in the folder and give the number of files who are present in the folder and the name and the title of each files. 

Now I need to catch the metadata column value. So I have change my URL to this one.

 

http://sharepointURL/sites/cdr/_api/Web/GetFolderByServerRelativeUrl('/sites/cdr/Reclamation/001 - Test de réclamation')/Files $Select=Title,Name,ListItemAllFields/RubriqueReclamation/Label,ListItemAllFields/NoDossier&$expand=ListItemAllFields/RubriqueReclamation/Label,ListItemAllFields/NoDossier

 

Like you could view I use the $EXPAND key and ListItemAllFields to catch value of the folder and the files. If I dont put the &EXPAND and  ListItemAllFields I could just catch the name and the title of the files. 

 

When I run the URL query in postman or ie11 to test. It work and return the good fields like results. 

But in my workflow, If I change my URL in my HTTP service web, the workflow hang and say than one invalid value for a text field is present.

 

I would like put each red value below in a separate string var in my 2013 Workflow. 

 

Yes I use SharePoint Designer 2013 to make my workflow. I'm in Sharepoint 2016 on premise. 

 

 
  <category term="SP.Data.ReclamationItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
  <link rel="edit" href="Web/GetFileByServerRelativeUrl('/sites/cdr/Reclamation/001%20-%20Test%20de%20r%C3%A9clamation/Protocole.docx')/ListItemAllFields" />
  <title />
  <updated>2022-11-08T21:25:53Z</updated>
- <author>
  <name />
  </author>
- <content type="application/xml">
- <m:properties>
  <d:NoDossier>001 - Test de réclamation</d:NoDossier>
- <d:CategorieDocumentReclamation m:type="SP.Taxonomy.TaxonomyFieldValue">
  <d:Label>Courriel</d:Label>
  <d:TermGuid>9d18901e-c872-48c6-acc9-51f9ecd72bc1</d:TermGuid>
  <d:WssId m:type="Edm.Int32">3</d:WssId>
  </d:CategorieDocumentReclamation>
- <d:RubriqueReclamation m:type="SP.Taxonomy.TaxonomyFieldValue">
  <d:Label>Réclamation</d:Label>
  <d:TermGuid>d360bf59-fb41-479e-b2b7-61d1f6973941</d:TermGuid>
  <d:WssId m:type="Edm.Int32">4</d:WssId>
  </d:RubriqueReclamation>
  </m:properties>
  </content>
  </entry>
  </m:inline>
  </link>
  <title />
  <updated>2022-11-08T21:25:53Z</updated>
- <author>
  <name />
  </author>
- <content type="application/xml">
- <m:properties>
  <d:Name>Protocole.docx</d:Name>
  <d:Title>PROTOCOLE D’ENTENTE CONCERNANT L’UTILISATION DU SYSTÈME D’INFORMATION ET DE GESTION DU TERRITOIRE (SIGAT)</d:Title>
  </m:properties>
  </content>
  </entry>
  </feed>

 

 

If I change my URL for 

http://sharepointURL/sites/cdr/_api/Web/GetFolderByServerRelativeUrl('/sites/cdr/Reclamation/001 - Test de réclamation')/Files $Select=Title,Name

I make a d/results/Title  and a d/results/Name  and the right value is put in my var string. 

 

I have try many versions of d/results to read the value of the fields without success. 

 

Ex: d/results/(index value)/ListItemAllFields/RubriqueReclamation/Label

 

Depend of the URL in the HTTP call, I have 2 results. 

 

1. I dont have any errors, but all string associate to the expand value stay empty. 

2. I have the error of bad string  and the workflow stuck. 

 

If I change the URL for the more simple to catch only Title and Name without the Expand value, the workflow work without error, detect the number of files in the folder and give me the name and the title of each files and the other string stay empty like I dont catch the Expand value. 

 

Any hints or example is welcome. 

 

Thank you.

 

 

 

 

1 Reply
Hello,

I always try to get the metadata value from the label.

I found than the problem could be the number of char in my rest api get request.
A maximum of 250 or 255 char are supported. Somes people say than change the request for a POST could be resolve the issue.

So I search a post resquest example for SPD 2013 workflow.

Another way could be to create a workflow activity in visual studio.
I'm not an expert in code, but I have VS 2017 and I try to create a activity.
I fisnish by found enought information to create and try the activity in SPD 2013.
For now my activity test only write a line in the history.
I have found a web site with a step by step example to get Label of metadata.
https://collab365.com/sharepoint-2013-custom-workflow-activity-ot-retrieve-the-value-of/#

But in the example he use the GetCurrentlListId activitys, When I check in my VS2017 toolsbox I dont have this activity in the list. I have found on technet web site the list of activitys and GetCurrentlListId is present. When I have check in my VS2017 it's like I need to update a package or install a patch maybe. When I go in the select elements for toolbox I dont find GetCurrentListId.