4

Wikiページを作成し、タイトルと、SharePointのコンテンツ(Webサービス経由)を追加するにはどうすればよいですか?

これはこれまでの私のSOAPメッセージです:

  <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>

新しいページを作成しますが、コンテンツもタイトルもありません。

4

4 に答える 4

4

SharePoint Managerのコピーを入手すると、興味深い情報の山が表示されます。

[名前]フィールドが必要です(「.aspx」が含まれています)。タイトルフィールドはウィキ(空白)には関係ありません。代わりに、ページはその名前でインデックス付けされます。

- アップデート -

copy.asmxを使用すると、新しいドキュメントをアップロードできます。テンプレートページは、以前にダウンロードされたページです(レイアウトページと同等の情報は保存されません)。

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);

}

次に、lists.asmxを呼び出してwikifieldを更新できます。注:Webサービスを使用してアップロードしたドキュメントの名前を変更する方法がわかりません。

于 2009-06-09T23:22:35.127 に答える
2

このページをチェックしてください:

Webサービスを介したSharePointWikiでのコンテンツの作成

于 2009-06-11T19:11:15.233 に答える
1

Dan Winterは、サンプルコードを提供できると思う素晴らしいアプリケーションを作成しました。ここで、それを見てください。

WikiMigrator

または、詳細については、彼の包括的なブログ投稿をお読みください

于 2009-06-17T15:44:29.310 に答える
1

他に何も機能していない場合は、この機能を提供する独自のWebサービスを開発する必要があります。すぐに使用できるオプションは機能が制限されていることで有名ですが、追加することを妨げるものは何もありません。

NatのソリューションをWebサービスコードにラップします。

于 2009-06-18T15:01:04.220 に答える