SOAP를 통해 목록을 페이징하는 데 문제가 있습니다.SharePoint 2010을 통한 페이징 SOAP를 통한 목록
목록을 검색 할 수 있지만 처음 30 개 항목 만 반환합니다. (기본보기의 설정).
$methodName = 'GetListItems';
$listName = '{259134c5-fa87-441e-8c31-641b51193710}';
$camlQuery="";
$paging = urlencode('Paged=TRUE&p_ID=30');
$xmlAction =
'<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>' . $listName . '</listName>
<query>' . $camlQuery . '</query>
<queryOptions>
<QueryOptions>
<Paging ListItemCollectionPositionNext="' . $paging . '" />
</QueryOptions>
</queryOptions>
</GetListItems>';
echo '<hr><h1>My Action is:</h1><pre>' . htmlentities($xmlAction) . '</pre>';
$client = new Nusoap_Client($wsdl,true);
$response = $client->call($methodName,$xmlAction);
echo '<hr><h1>Response:</h1><pre>' . htmlentities(print_r($response,true)) . '</pre>';
이렇게하면 30 개의 항목이 있다는 점만 제외하면 다음과 같은 응답이 반환됩니다.
Response:
Array
(
[GetListItemsResult] => Array
(
[listitems] => Array
(
[data] => Array
(
[row] => Array
(
[0] => Array
(
[!ows_Region] => 7
[!ows_District_x0020_ID] => 1902
[!ows_District] => SOME ISD
[!ows_Campus_x0020_ID] => 1902001
[!ows_Campus] => MY H S
[!ows_Grade_x0020_Range] => 09-12
[!ows_FileRef] => 30;#sites/ti/Lists/Schools/30_.000
[!ows_MetaInfo] => 30;#
)
)
[!ItemCount] => 30
[!ListItemCollectionPositionNext] => Paged=TRUE&p_ID=30
)
)
)
)
다음 페이지를 얻기 위해, 나는 다시 "ListItemCollectionPositionNext"쿼리에서 반환 된 값을 제공해야합니다. 이것이 위의 작업이며 30 개의 동일한 레코드가 반환됩니다. 이 목록에는 26K 개의 항목이 있습니다.
권한 문제가 아닙니다. 저는이 목록에 대한 관리자이고 sharepoint 웹 GUI를 통해이를 조작 할 수 있습니다.
내가 누락 된 사람은 무엇입니까?