タグのアーカイブ: lists.asmx

Lists.asmx, GetListItems とフォルダー

私は誰が SharePoint の一部として提供されている今日、list.asmx web サービスのいくつかの研究をしていた 2010 (以前のバージョン).  彼女は、ルート フォルダーでリスト アイテムを取得することができた (サブフォルダーの名前を含む), サブフォルダーのアイテムを得ることができなかったが。  私はいくつかのインターネットを見て、それは驚くほど共通の質問です。  まだ, よい解答を簡単な質問を取得できませんでした。, 「私フォルダーを知っている場合, 方法でフォルダーの項目を取得します。?”  正直に言うと, 図のこの 1 つ私自身にはしばらくの間、私は以来私は一生懸命やっていません。 スマイル.

これを設定するには, 「ブログ シナリオ」という名前のサイトと「カスタム リストとサブ フォルダー」という名前のカスタム リストを作成します。  私は、という名前のフォルダーを作成:

  • 年 2005
  • 年 2006
  • 年 2007

」2006 年」のフォルダーにいくつかの項目が追加。  これはどのように見えるです。:

image

私の友人で c# コードを記述はないではなく Java を使用します。, SOAP エンベロープ彼女が本当に必要なので。  取得するには, 私は jQuery のビットを書いて、fiddler を使用して、実際の HTTP 会話をします.

ここでは、関連する jQuery です。 (コピーする場合は、コードを次コピー):

image

最初のキーが両方を含めるには <queryOptions> と <QueryOptions> ノード。  2 番目のキーは、 <フォルダー> ノードは、クライアントがアクセスする URL です。.

これを取得する他の方法がある可能性があります。, しかし、これも私のため jQuery を使用するときに働いた.

ここでは、SOAP エンベロープは、上記の:

<soapenv:封筒 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:体>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <姓>サブ フォルダーのカスタム一覧</姓>
      <viewFields>  
        <ViewFields>
          <FieldRef 名 =' タイトル’ />
          <FieldRef 名 ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <フォルダー>
http://demoserver1/ブログ シナリオ、リスト、カスタム リスト サブ フォルダー年間 2006</フォルダー>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:体>
</soapenv:封筒>

多くの例、このトピックの私はすべて私が必要だったと考えているにつながった <QueryOptions> フォルダー名を指定します。  私, 両方を内部ラップします必要があります。 <queryOptions> 同様、完全修飾 URL を指定するには <フォルダー> ノード.

ここでは、jQuery の AJAX のセットアップ:

$(ドキュメント).準備ができて(関数() {
       var soapEnv =
           "<soapenv:封筒 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:体> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <姓>サブ フォルダーのカスタム一覧</姓> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef 名 =' タイトル’ /> \
                              <FieldRef 名 ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <フォルダー>http://demoserver1/Blogging シナリオ、リスト、カスタム リスト サブ フォルダー年間 2006</フォルダー> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:体> \
           </soapenv:封筒>";

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

Lists.asmx, GetList と「値 null にすることはできません。”

私は今日の発見は、GetList() メソッドで lists.asmx web サービスは、非常に慎重と呼ばれていますをか神秘的な」値は null にすることはできません」例外をスローする傾向があります。 (だとして、さらに悪いことの一般的なエラー メッセージ過去を得ることができます。, "型の例外 ' Microsoft.SharePoint.SoapServer.SoapServerException’ スローされました。")  具体的には, GetList メソッドに任意の種類のプレフィックスを提供できないこと.  次の jQuery のスニペット、ポイントを示しています:

image

する場合, 「値このあたりとしてヌルできませんと「web サービスの応答 fiddler-HTTP コピーを提供:

<?xml のバージョン ="1.0" エンコーディング =「utf-8」?>
  <soap:封筒
     xmlns:soap ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi =」
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <soap:体>
    <soap:障害>
      <faultcode>soap:サーバー</faultcode>
      <違反>
        例外の種類 ' Microsoft.SharePoint.SoapServer.SoapServerException’ スローされました。.
      </違反>
      <詳細>
        <errorstring xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
値を null にすることはできません。.
        </errorstring>
      </詳細>
    </soap:障害>
  </soap:体>
</soap:封筒>

もちろんです, おそらくその「s0」プレフィックスを独自の追加はないです。, しかし、いくつかのツールはそれをする傾向があります。 (Eclipse のような).

これはすべてより多くの混乱 / イライラするので、プレフィックスの他の方法を容認します。  例えば, 、 GetListCollection メソッドの気にしないそれが付いているかどうか, "xyzzy"のようなナンセンス プレフィックスも:

image

これは、「値は、null にできません」そううまく行けばこれが助ける誰か将来の lists.asmx でかなり一般的なようです。.

</終了>

私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin