none
Microsoft.SharePoint.Client.InvalidClientQueryException lors de l'exécution d'un workflow pour créer un groupe RRS feed

  • Question

  • Bonjour,

                  je travail sur une collection de site dans laquelle je génère via un workflow des sous-sites.

    Après plusieurs essais, j'ai fini par faire fonctionner mon workflow associé à une liste.

    J'utilise la REST API avec une commande d'appel HTTP POST pour générer un sous-site avec le nom entré dans la liste.

    J'utilise le nom ajouté dans la liste, pour nommer le sous-site et une fois la génération complétée, j'ajoute l'adresse complète vers le sous-site dans ma liste sous la forme d'un URL. 

    Jusqu'ici tout fonctionne bien. 

    Maintenant en utilisant la même méthode, j'ai tenté de généré un groupe d'utilisateur qui portera le nom du sous-site. 

    Car les sous-site seront associé à des projets et seul les utilisateurs en lien avec le dit projet auront accès au sou-site correspondant. 

    Du moins c'est mon but... 

    J'ai trouvé sur différent site web la méthode pour créer un groupe via la fonction HTTP POST. 

    C'est sensiblement la même méthode que j'utilise pour généré mon sous-site. 

    Lorsque je lance le workflow, le sous-site est créé dans une première étape d'application. 

    Ensuite, les dictionnaires sont bien généré et la commande pour créer le groupe est assemblé.

    Lorsque le flux de travail s'exécute, j'ajoute les informations dans l'historique afin de suivre la création.

      

    L'URL du sous-site généré :
    ww 
     OK  

    Début de la génération du groupe dans le sous-site  
     2020-04-09 15:50 Commentaire --> Création de l'en-tête
     {"Accept":"application\/json;odata=verbose","Content-Type":"application\/json;odata=verbose"}  
     2020-04-09 15:50 Commentaire --> Sélection du Type à utiliser pour créer le groupe 
     {"Type":"SP.Group"}  
     2020-04-09 15:50 Commentaire  ---> Fusionner le Type et le futur titre du groupe dans les Metadata
     {"__metadata":{"Type":"SP.Group"},"Title":"Titre test"}  
     2020-04-09 15:50 Commentaire --> Génération des paramètres utiliser pour la création du groupe
    parametersgroup -> {"parametres_group":{"__metadata":{"Type":"SP.Group"},"Title":"Titre test"}}

    URL du sous-site --> http://xyz.com/sites/vdrn_projet/ww  
     2020-04-09 15:50 Commentaire --> génération de l'URL utiliser pour la requête HTTP POST

    Appeler le service web HTTP POST avec l'adresse http://xyz.com/sites/vdrn_projet/ww/_api/web/sitegroups  

    J'obtien le résultat ci-dessous au lieu du OK.

    BadRequest

    Je me suis fait envoyé le contenu de l'erreur par courriel. 

    {"error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"fr-FR","value":"Une entrée sans nom de type a été trouvée, mais aucun type attendu n'a été spécifié. Pour accepter les entrées sans informations de type, le type attendu doit également être spécifié lorsque le modèle est spécifié."}}}

    J'avoue que je ne sais pas trop quoi en déduire. 

    J'ai aussi testé une autre méthode avec un webpart script. 

    Le script javascript ci-dessous fonctionne lorsque je place le webparts sur une page au niveau de la collection de site, mais pas au niveau

    du sous-site. dans un autre post sur le forum anglophone, j'ai aussi vu que la fonction SP.Group serait fonctionnelle seulement au niveau de la collection de site, mais lorsque je modifie l'adresse dans mon workflow pour la collection de site au lieu du sous-site j'obtiens tout de même un résultat badrequest comme ci-dessus. 

    <script type="text/javascript">
    <script type="text/javascript" src="../../_catalogs/masterpage/scripts/jquery-2.1.4.min.js"></script>


    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

    <script>

     $(document).ready(function () {  
     $("#btnClick").click(function(){  
     var siteUrl = "http://dev-intranet.rouyn-noranda.ca/sites/vdrn_projet/_api/web/sitegroups";  
    alert(siteUrl);
     var group = $("#txtSingleline").val();  
     alert('You can create Group......');  
      var item = {  
           "__metadata": {  
             "type": "SP.Group"  
           },  
           "Title": $("#txtSingleline").val(),        
         };  
         $.ajax({  
           url: siteUrl,  
           type: "POST",  
           contentType: "application/json;odata=verbose",  
           data: JSON.stringify(item),  
           headers: {  
             "Accept": "application/json;odata=verbose",  
             "X-RequestDigest": $("#__REQUESTDIGEST").val()  
           },  
           success: function (data) {  
             //success(data);  
                         alert('Successfully created group');  
           },  
           error: function (data) {  
             alert('Failed to created group');  
           }  
         });  
          });  
     });  
     </script>  
     <div>  
     <input type="text" name="txtSingleline" class="form-control" id="txtSingleline" />  
     <input type="button" id="btnClick" value="Create SharePoint Group"/>  
     </div>  
     References :  
     https://msdn.microsoft.com/en-us/library/office/dn531432.aspx  

    Toute les idées sont bienvenue ! 

    Merci 

      
    jeudi 9 avril 2020 20:29

Réponses

  • Bonjour, 

                  j'ai fini par faire fonctionner mon flux de travail et je peu maintenant créé des groupes après la génération de mon sous-site !

    J'ai du faire un nouveau flux de travail de zéro et recréer mes dictionnaires. 

    Ensuite j'ai ajouté le nom de mon item dans une variable de type texte que j'ai utilisé dans mon appel HTTP POST. 

    J'ai exécuté manuellement ce flux de travail et le group c'est créé. 

    J'ai ensuite copier-coller le contenu de ce nouveau flux de travail dans mon flux de travail de création de sous-site comme une nouvelle étape. J'ai du réajusté les variables et les dictionnaires. 

    Dans ma première tentative, je réutilisais certain dictionnaire utilisé pour la création du sous-site. 

    Maintenant en plus d'être deux phase séparé dans le flux de travail, j'ai des variable spécifique pour toute les étapes et j'ai aussi mis un pause d'une minute suite à la création du sous-site.

    Car je me suis rendu compte que le groupe tentait de ce créé trop rapidement et SharePoint retournait une erreur comme quoi le sous-site était  introuvable. 

    Je suis maintenant en mesure de créer 2 groupes portant le nom de l'item ajouté dans la liste de départ dans la collection de site. 

    Reste plus qu'à trouver le moyen d'ajouter c'est groupes dans la gestion des accès du sous-site, car lors de la création je transmets la commande que les sous-site n'hérite pas des accès de la collection de site par défaut.

    Voici le lien du même billet que j'ai ouvert en anglais et qui m'a permis de trouver le moyen de faire fonctionner le tout. 

    https://social.technet.microsoft.com/Forums/office/en-US/cd18a7d6-7321-4347-a933-a383a2e94422/microsoftsharepointclientinvalidclientqueryexception-error-when-i-execute-workflow-to-create-a?forum=SP2016#2d05e76e-26f8-49d3-904d-5d2186309b80

    Merci pour votre aide.

     

     


    vendredi 24 avril 2020 13:36

Toutes les réponses

  • Bonjour Marc-Etienne Tremblay,

    Avez-vous trouvé une solution? Si non, veuillez consulter la solution proposée dans le fil ci-dessous.

    Getting this error: An entry without a type name was found, but no expected type was specified

    Je vous remercie par avance pour votre retour.

    Cordialement,

    Biliana


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votreproblème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    lundi 13 avril 2020 15:44
  • Boujour Biliana,

                             merci pour le lien je vais aller le consulter pour voir si je trouve le moyen de le faire fonctionner. 

    Je viens de consulter le site, si je comprends bien, je dois trouver le nom de liste en lien avec les droits d'accès pour l'ajouter au paramètre SP.Group afin que SharePoint sache ou aller créer le groupe vu que je suis dans un sous-site ?


    vendredi 17 avril 2020 14:14
  • Bonjour Marc-Etienne Tremblay

    Exactement. Avez-vous réussi de résoudre le souci en ajoutant l’attribut?

    Je vous remercie par avance pour votre retour.

    Cordialement,

    Biliana



    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votreproblème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 21 avril 2020 08:20
  • Bonjour Biliana, 

                           j'ai tenté de faire l'ajout du nom de la liste, mais je ne suis pas certain d'avoir le bon nom. 

    Comme je souhaites générer un nouveau groupe dans la liste des accès j'ai pris le nom de la page aspx des groupes. 

    La requête généré et envoyé à SharePoint donne ceci.

      {"parametres_group":{"__metadata":{"Type":"SP.Group.groupsListItem"},"Title":"Titre test"}}

    Comme la page des groupe se nomme groups.aspx je me suis basé sur le lien que vous m'avez proposé et j'ai ajouté .groupsListItem, mais je reçois toujours une bad request avec le même message d'erreur. 

    Dans un autre billet, je vu que certain mentionnait que le Type SP.Group ne fonctionnait que dans les collections de site, il serait donc possiblement non fonctionnel pour les sous-site ? 

    Ou le nom de la liste associé a la création d'utilisateur a un nom autre que le nom de la page groups.aspx.

    Je continu mes recherches... 

     
    mercredi 22 avril 2020 18:28
  • Bonjour, 

                  j'ai fini par faire fonctionner mon flux de travail et je peu maintenant créé des groupes après la génération de mon sous-site !

    J'ai du faire un nouveau flux de travail de zéro et recréer mes dictionnaires. 

    Ensuite j'ai ajouté le nom de mon item dans une variable de type texte que j'ai utilisé dans mon appel HTTP POST. 

    J'ai exécuté manuellement ce flux de travail et le group c'est créé. 

    J'ai ensuite copier-coller le contenu de ce nouveau flux de travail dans mon flux de travail de création de sous-site comme une nouvelle étape. J'ai du réajusté les variables et les dictionnaires. 

    Dans ma première tentative, je réutilisais certain dictionnaire utilisé pour la création du sous-site. 

    Maintenant en plus d'être deux phase séparé dans le flux de travail, j'ai des variable spécifique pour toute les étapes et j'ai aussi mis un pause d'une minute suite à la création du sous-site.

    Car je me suis rendu compte que le groupe tentait de ce créé trop rapidement et SharePoint retournait une erreur comme quoi le sous-site était  introuvable. 

    Je suis maintenant en mesure de créer 2 groupes portant le nom de l'item ajouté dans la liste de départ dans la collection de site. 

    Reste plus qu'à trouver le moyen d'ajouter c'est groupes dans la gestion des accès du sous-site, car lors de la création je transmets la commande que les sous-site n'hérite pas des accès de la collection de site par défaut.

    Voici le lien du même billet que j'ai ouvert en anglais et qui m'a permis de trouver le moyen de faire fonctionner le tout. 

    https://social.technet.microsoft.com/Forums/office/en-US/cd18a7d6-7321-4347-a933-a383a2e94422/microsoftsharepointclientinvalidclientqueryexception-error-when-i-execute-workflow-to-create-a?forum=SP2016#2d05e76e-26f8-49d3-904d-5d2186309b80

    Merci pour votre aide.

     

     


    vendredi 24 avril 2020 13:36