none
Ajouter un item à une External list en utilisant les web services RRS feed

  • Question

  • Bonjour,

     

    J'ai créé une external list dans Sharepoint 2010.

    Mon external list est synchronisé avec mon External Content Type. J'arrive depuis le portail Sharepoint à afficher mon External list, à y ajouter des items, à les supprimer, ...

    Mais en essayant d'ajouter un item par les web service avec la méthode http://msdn.microsoft.com/en-us/library/ms440289.aspx , je reçois l'erreur  0x80070057 Bad parameter passed to Web Server Extensions. Check the information you entered and try again.

    Je me demande si ce n'est pas une limitation dans sharepoint 2010 mais j'aimerais que quelqu'un me confirme.

    Merci d’avance

     


    • Modifié Vincenzo B mardi 26 juillet 2011 11:24 changement de couleur
    mardi 26 juillet 2011 10:05

Toutes les réponses

  • Bonjour,

    Le fait de répondre à votre question par un "oui" ou un "non" me semble un peu prématuré à ce stade...

    Pouvez-vous éventuellement fournir le code? Peut-être s'agit-il d'une petite erreur de codage (si je peux me permettre) ;-)


    Pascal P
    http://sharepoint-afterwork.com
    http://pascalp.dotnet-france.com/
    Twitter: @PascalPoeck
    mardi 26 juillet 2011 18:49
  • oui, bien sûr :)

    mon external list est sous cette forme:

    ProductID | Name | Description

    lorsque je crée un item à partir du portail sharepoint, je dois renseigner obligatoirement les champs ProductID et Name

    Je renseigne l'ID dans mon code car sur le portail Sharepoint, lorsque je crée un item dans mon external list, il me demande de saisir le ProductID manuellement (je sais pas encore ce que j'ai oublié de faire pour auto incrémenter l'id)

    voici mon code (c'est un bouton dans une webpart)

    protected void bExecute_Click(object sender, EventArgs e)
    {
     try
     {
     ws_list.Lists list = new ws_list.Lists();
    
     //list.PreAuthenticate = true;
     //list.Credentials = System.Net.CredentialCache.DefaultCredentials;
     
     list.Credentials = new System.Net.NetworkCredential("Administrator", "P@ssw0rd", "domain.lan");
     
     XmlDocument doc = new XmlDocument();
     XmlElement batch_element = doc.CreateElement("Batch");
     string item = "<Method ID='1' Cmd='New'>" + "<Field Name='ProductID'>9</Field>" + "<Field Name='Name'>La reine rouge</Field>" + "</Method>";
     batch_element.InnerXml = item;
     var action = list.UpdateListItems("Product List", batch_element);
     Controls.Add(new Literal() { Text = "ok" });
     Controls.Add(new Literal() { Text = action.InnerText }); /* là il y a le message:0x80070057 Bad parameter passed to Web Server Extensions. Check the information you entered and try again.*/
    
     }
     catch (Exception ex) /* aucune erreur n'est levée ici */
     {
     string err = ex.Message;
     Controls.Add(new Literal() { Text = err });
    
     } 
    }
    

    Si je prends une custom list et que j'applique  item = "<Method ID='1' Cmd='New'>" + "<Field Name='Title'>La reine rouge</Field>" + "</Method>";

    l'innertext de l'action retourne 0x00000000 et ça rajoute dans la custom list l'item "La reine rouge".





    • Modifié Vincenzo B mercredi 27 juillet 2011 08:58 arrangement
    mercredi 27 juillet 2011 08:52
  • Une première piste...

    http://www.dev4side.com/community/blog/2010/3/3/date-format-using-sharepoint-lists-web-service-and-updatelistitems-method.aspx


    Pascal P
    http://sharepoint-afterwork.com
    http://pascalp.dotnet-france.com/
    Twitter: @PascalPoeck
    mercredi 27 juillet 2011 10:26
  • Merci. J'ai testé avec le code du site mais toujours la même erreur 0x80070057
    protected void bExecute_Click(object sender, EventArgs e)
      {
       ws_list.Lists service = new ws_list.Lists();
       service.Url = "http://sharepoint-srv/_vti_bin/Lists.asmx";
       service.Credentials = CredentialCache.DefaultCredentials;
    
       XmlDocument document = new XmlDocument();
       XmlElement updates = document.CreateElement("Batch");
       updates.InnerXml = string.Format(
        "<Method ID='1' Cmd='New'>" +
        "<Field Name='ProductID'>10</Field>" +
        "<Field Name='Name'><![CDATA[{0}]]></Field>" +
        "<Field Name='Description'>{1}</Field>" +
        "</Method>",
        "la reine rouge", "reine diabolique");
    
       XmlNode node = null;
       node = service.UpdateListItems("Product List", updates);
    
       Controls.Add(new Literal() { Text = node.InnerText.ToString() }); /* 0x80070057Bad parameter passed to Web Server Extensions. Check the information you entered and try again. */
    
      }
    mercredi 27 juillet 2011 13:02
  • personne ne sait?

     

    vendredi 29 juillet 2011 14:14