• Модуль: webservice
  • Путь к файлу: ~/bitrix/modules/webservice/classes/general/sharepoint/client.php
  • Класс: CSPListsClient
  • Вызов: CSPListsClient::UpdateListItems
public function UpdateListItems($listName, $arChanges)
{
	$arMethodParams = array('listName' => $listName);

	$updates = CXMLCreator::createTagAttributed('Batch OnError="Continue" DateInUtc="TRUE" Properties="TRUE"');

	$i = 0;

	foreach ($arChanges as $row)
	{
		$obRow = CXMLCreator::createTagAttributed('Method ID="'.($i++).'"');

		if ($ID = intval($row['ID']))
		{
			$obRow->setAttribute('Cmd', 'Update');
		}
		else
		{
			$obRow->setAttribute('Cmd', 'New');

			unset($row['ID']);

			$obRow->addChild(CXMLCreator::createTagAttributed('Field Name="ID"', 'New'));
			$obRow->addChild(CXMLCreator::createTagAttributed('Field Name="MetaInfo" Property="ReplicationID"', $row['ReplicationID']));
			unset($row['ReplicationID']);
		}

		foreach ($row as $fld => $value)
		{
			if (mb_substr($fld, 0, 9) == 'MetaInfo_')
			{
				$obRow->addChild(CXMLCreator::createTagAttributed('Field Name="MetaInfo" Property="'.CXMLCreator::xmlspecialchars(mb_substr($fld, 9)).'"', $value));
			}
			else
			{
				if ($fld)
				{
					$obRow->addChild(CXMLCreator::createTagAttributed('Field Name="'.CXMLCreator::xmlspecialchars($fld).'"', $value));
				}
			}
		}

		$updates->addChild($obRow);
	}

	$arMethodParams['updates'] = $updates;

	$RESULT = false;

	if (
		$this->__initialize()
		&& $this->Call('UpdateListItems', $arMethodParams)
		&& ($DOM = $this->RESPONSE->DOMDocument)
	)
	{
		$RESULT = array();

		$arResults = $DOM->elementsByName('Result');

		foreach ($arResults as $resultNode)
		{
			$arRes = array(
				'ErrorCode' => $resultNode->children[0]->textContent(),
				'Row' => $this->ConvertRows($resultNode),
			);

			if ($arRes['Row']) $arRes['Row'] = $arRes['Row'][0];

			$RESULT[] = $arRes;
		}

	}

	$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/sp_client5.log', 'a');
	fwrite($fp, $this->getRawRequest());
	fwrite($fp, $this->getRawResponse());
	fwrite($fp, "n==========================================nn");
	fclose($fp);


	return $RESULT;
}