Domanda

come faccio a creare una pagina wiki e aggiungere un titolo, così come alcuni contenuti in SharePoint (tramite webservices)?

Questo è il mio messaggio SOAP finora:

  <soapenv:Body>
  <soap:UpdateListItems>

    <soap:listName>Cooking Wiki</soap:listName>

    <soap:updates>
     <Batch OnError="Continue">
      <Method ID="1" Cmd="New">   
       <Field Name="WikiField">Mix two eggs and a cup of milk.</Field>
      </Method>
     </Batch>
    </soap:updates>

   </soap:UpdateListItems>
  </soapenv:Body>

Si crea una nuova pagina, ma non ha contenuto e nessun titolo.

È stato utile?

Soluzione

prendere una copia di SharePoint manager è in grado di mostrare un sacco di informazioni interessanti.

si desidera che il campo Nome (che comprende il "aspx"). Il campo del titolo non è rilevante in un wiki (in bianco), le pagine sono indicizzate da thier nome al posto.

- aggiornamento -

Uso della copy.asmx permette di caricare un nuovo documento. Il modello di pagina è una pagina che è stato scaricato in precedenza (memorizza alcuna informazione, equivalente ad una pagina di layout).

private byte[] GetTemplatePage()
{
    FileStream fs = new FileStream("templatePage.aspx", FileMode.Open);
    byte[] fileContents = new byte[(int)fs.Length];
    fs.Read(fileContents, 0, (int)fs.Length);

    fs.Close();
    return fileContents;
}

private void UploadDoc(string pageName)
{
    byte[] wikiBytes = GetTemplatePage();

    string dest = "http://[website]/wiki/Wiki%20Pages/" + pageName + ".aspx";
    string[] destinationUrlArray = new string[] { dest };

    IntranetCopy.Copy copyService = new IntranetCopy.Copy();
    copyService.UseDefaultCredentials = true;
    copyService.Url = "http://[website]/wiki/_vti_bin/copy.asmx";

    IntranetCopy.FieldInformation fieldInfo = new IntranetCopy.FieldInformation();
    IntranetCopy.FieldInformation[] fields = { fieldInfo };

    IntranetCopy.CopyResult[] resultsArray;
    copyService.Timeout = 600000;

    uint documentId = copyService.CopyIntoItems(dest, destinationUrlArray, fields, wikiBytes, out resultsArray);

}

Poi si può chiamare il Lists.asmx per aggiornare il wikifield. Nota:. Non ho capire come rinominare un documento una volta che è stato caricato tramite webservices

Altri suggerimenti

Dan Winter ha scritto una fantastica applicazione che penso che potrebbe fornire alcuni esempi di codice, date un'occhiata qui:

WikiMigrator

o per ulteriori informazioni, leggere i suoi post sul blog complete .

Se non altro sta lavorando si dovrebbe sviluppare il proprio servizio web per fornire questa funzionalità. Le opzioni out-of-the-box sono notoriamente limitati in termini di funzionalità, ma non c'è nulla ti impedisce di aggiungere ad essi.

Vorrei avvolgere la soluzione di Nat nel codice servizio web.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top