- Модуль: webservice
- Путь к файлу: ~/bitrix/modules/webservice/classes/general/sharepoint/client.php
- Класс: CSPListsClient
- Вызов: CSPListsClient::GetListItemChangesSinceToken
public function GetListItemChangesSinceToken($listName, $arParams = array())
{
$arMethodParams = array('listName' => $listName);
if ($arParams['TOKEN'])
$arMethodParams['changeToken'] = $arParams['TOKEN'];
if ($arParams['NUM_ROWS'])
$arMethodParams['rowLimit'] = intval($arParams['NUM_ROWS']);
$queryOptions = new CXMLCreator('QueryOptions');
if (isset($arParams['PAGING']))
{
$queryOptions->addChild(CXMLCreator::createTagAttributed('Paging ListItemCollectionPositionNext="'.htmlspecialchars($arParams['PAGING']).'"'));
}
$arMethodParams['queryOptions'] = $queryOptions;
if (is_array($arParams['FIELDS']))
{
$viewFields = new CXMLCreator('ViewFields');
$viewFields->setAttribute('Properties', 'TRUE');
foreach ($arParams['FIELDS'] as $fld)
$viewFields->addChild(CXMLCreator::createTagAttributed('FieldRef Name="'.$fld.'"'));
$arMethodParams['viewFields'] = $viewFields;
}
if (
$this->__initialize()
&& $this->Call('GetListItemChangesSinceToken', $arMethodParams)
&& ($DOM = $this->RESPONSE->DOMDocument)
)
{
$RESULT = array();
// $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/sp_client1.log', 'a');
// fwrite($fp, $this->getRawRequest());
// fwrite($fp, $this->getRawResponse());
// fwrite($fp, "n==========================================nn");
// fclose($fp);
$CHANGES = $DOM->elementsByName('Changes');
$RESULT['MORE_ROWS'] = false;
if (is_array($CHANGES) && count($CHANGES) > 0)
{
$CHANGES = $CHANGES[0];
$RESULT['TOKEN'] = $CHANGES->getAttribute('LastChangeToken');
$RESULT['MORE_ROWS'] |= ($CHANGES->getAttribute('MoreChanges') == 'TRUE');
}
$DATA_NODE = $DOM->elementsByName('data');
if (is_array($DATA_NODE) && count($DATA_NODE) > 0)
{
$DATA_NODE = $DATA_NODE[0];
$RESULT['COUNT'] = $DATA_NODE->getAttribute('ItemCount');
$RESULT['PAGING'] = $DATA_NODE->getAttribute('ListItemCollectionPositionNext');
$RESULT['MORE_ROWS'] |= ($RESULT['PAGING'] <> '');
$RESULT['DATA'] = $this->ConvertRows($DATA_NODE);
if (count($RESULT['DATA']) <= 0)
$RESULT['MORE_ROWS'] = false;
}
return $this->GetListItemChangesSinceTokenProcessResult($RESULT);
}
return false;
}