Bonjour,
Nous avons la configuration ci-dessous :
Sharepoint 2016 on premise
Sharepoint designer 2013.
J'ai un site dans lequel j'ai une liste contenant des dossiers de type "document set". Dans ces dossiers, les utilisateurs déposent des documents associés à un type de contenu qui comporte 2 champs de type "metadata". Le département qui utilise ce site, souhaiterait archiver les dossiers dans une autre liste.
J'ai donc créé une nouvelle liste nommée "archive" dans le site. Puis, je tente de créer un workflow 2013 pour copier le document et sélectionner tout son contenu dans la liste archive. Pour ce faire, j'ai ajouté une case à cocher nommée "archivé" et je valide dans le workflow que la case est bien activée. Si c'est le cas, je me connecte sur la liste archive et je créé un nouveau dossier de type "document set" à partir du même type de contenu que la liste originale. Je parcours les propriétés du dossier de la liste originale afin de copier dans des variables les différentes informations. De cette manière j'ai été en mesure de créer un "document set" vide dans la liste archive contenant l'ensemble des propriétés du dossier original.
Je tente maintenant de récupérer toutes les propriétés des fichiers contenus dans le dossier original pour les envoyer eux aussi dans des variables afin de pouvoir
copier le ou les fichiers du dossier original vers le dossier créé en archive. Pour le moment j'arrive à récupérer le Titre et le Nom des documents qui se trouvent dans le dossier en plus de savoir le nombre de document. Pour ce faire j'utilise les rest api avec la requête http ci-dessous :
http://mon_site/sites/cdr/_api/Web/GetFolderByServerRelativeUrl('/sites/cdr/Reclamation/001%20-%20Test%20de%20réclamation')/Files?$Select=Title,Name
J'ai testé beaucoup de manières pour tenter d'aller récupérer les 2 champs de type "metadata". Lorsque je modifie le /Files pour ceci, j'arrive à récupérer le label d'un des champs.
/Files?$Select=ListItemAllFields/RubriqueReclamation/Label&$expand=ListItemAllFields/RubriqueReclamation/Label
Si je teste la même structure avec le second champ, le workflow est suspendu avec une erreur de texte "Valeur de texte non valide. Un champ texte contient des données non valides. Vérifiez la valeur, puis réessayez." À force de chercher et de tester, j'en suis venu à la conclusion que le problème était la longueur totale de la requête HTTP. Lorsque je la copie dans Internet Explorer ou Google Chrome, elle fonctionne je vois les informations listées. Mais dans mon workflow, elle tombe en erreur.
Y a-t-il moyen d'écrire les requêtes autrement afin que le système les accepte avec plus de 250 caractères ?
J'ai tenté de changer la requête pour celle-ci :
_api/Web/Lists(guid'E6399960-643D-4E63-8F10-51371C3E9AFC')/Items(16)/RubriqueReclamation/Label
Mais elle aussi semble trop longue.
Merci.