2016-03-21 21 views
1

リスト内のフォルダ内のフォルダからファイルを取得しようとしています。これを行うには、CalmQueryRowLimitを使用してみます。このフォルダにはたくさんのファイルがあるためです。CalmQuery <RowLimit>が動作しない

しかし、私はコードを実行すると、私の行制限が機能しなかったようです。

$list = $context.Web.Lists.GetByTitle($ListName) 
$context.Load($list) 

$query = New-Object Microsoft.SharePoint.Client.CamlQuery 
$query.ViewXml = "<View Scope='RecursiveAll'> " + 
       "<RowLimit>5000</RowLimit>"+ 
       "<Query>" + 
        "<OrderBy>"+ 
        "<FieldRef Name='FileLeafRef' Ascending='True' />"+ 
        "</OrderBy>"+ 
        "<Where>" + 
         "<Eq>"+ 
         "<FieldRef Name='FileLeafRef' />"+ 
         "<Value Type='File'>EDMS API/APICAL Invoice</Value>"+ 
         "</Eq>"+ 
        "</Where>"+ 
       "</Query>"+ 
      "</View>" 
$listItems = $list.getItems($query) 
$context.Load($listItems) 
$context.ExecuteQuery() 

答えて

0

ほとんどの場合、それはRowLimit問題ではなく、むしろQuery式自体ではありません。クエリ:

<Where> 
    <Eq> 
     <FieldRef Name='FileLeafRef' /> 
     <Value Type='File'>{value}</Value> 
    </Eq> 
</Where> 

は、それらの名前が順番に{value}で指定されたURLの特定のフォルダの下にあるファイルを返さない{value}と、一致する項目を返します。

特定のフォルダにあるファイルのみを含める場合は、少なくとも次の2つの方法が考えられます。

$query = New-Object Microsoft.SharePoint.Client.CamlQuery 
$query.ViewXml = "<View Scope='RecursiveAll'> " + 
       "<RowLimit>20</RowLimit>"+ 
       "<Query>" + 
        "<OrderBy>"+ 
        "<FieldRef Name='FileLeafRef' Ascending='True' />"+ 
        "</OrderBy>"+ 
       "</Query>"+ 
      "</View>" 
$query.FolderServerRelativeUrl = "/News/Documents/Archive" 
$listItems = $list.getItems($query) 
$context.Load($listItems) 
$context.ExecuteQuery() 

設定フォルダプロパティCamlQuery.FolderServerRelativeUrl経由:以下の例では、Archiveフォルダからアイテムを含める方法を示しその後

News (sub site) 
    | 
    Documents (library) 
     | 
     Archive (folder) 

は、次のような構造を想定します2 0123でフォルダを設定するプロパティ

$query = New-Object Microsoft.SharePoint.Client.CamlQuery 
$query.ViewXml = "<View Scope='RecursiveAll'> " + 
       "<RowLimit>20</RowLimit>"+ 
       "<Query>" + 
        "<OrderBy>"+ 
        "<FieldRef Name='FileLeafRef' Ascending='True' />"+ 
        "</OrderBy>"+ 
        "<Where>" + 
         "<Eq>"+ 
         "<FieldRef Name='FileDirRef' />"+ 
         "<Value Type='File'>/News/Documents/Archive</Value>"+ 
         "</Eq>"+ 
        "</Where>"+ 
       "</Query>"+ 
      "</View>" 
$listItems = $list.getItems($query) 
$context.Load($listItems) 
$context.ExecuteQuery() 
+1

ありがとうございます。 –

関連する問題