Документация для разработчиков
Темная тема

batch

Права на выполнение: для всех

Описание

Выполнение пакета запросов.

В некоторых случаях возникает необходимость отправить несколько запросов подряд. Для оптимизации процесса можно использовать пакетное выполнение запросов.

Параметры

Параметр Описание
halt Определяет прерывать ли последовательность запросов в случае ошибки.
cmd Массив запросов стандартного вида (следует помнить про квотирование данных запросов; получается, что данные для подзапросов должны пройти двойное квотирование).

Примечание: Количество запросов в пакете ограничено 50.

Массив запросов может быть как с числовыми ключами, так и ассоциативным. В параметрах каждого последующего запроса можно использовать данные предыдущих запросов в таком виде:

$result[идентификатор_запроса][поле_ответа]

где идентификатором запроса служит его ключ в массиве запросов.

С версии rest 24.0.0 для метода batch запрещена вложенность (при вызове метода batch нельзя вызывать внутри другой batch).

Пример

https://my.bitrix24.ru/rest/batch.xml?auth=d161f25928c3184678924ec127edd29a&halt=0&cmd[get_user]=user.current%3F&cmd[get_department]=department.get%3FID%3D%2524result%255Bget_user%255D%255BUF_DEPARTMENT%255D

Обратите внимание, что параметры URL-кодированы. Рекомендация кодировать параметры - обязательна, в противном случае корректность результата не гарантируется.

Ответ XML

<response>
	<result>
		<result>
			<get_user>
				<ID>1</ID>
				<LOGIN>admin</LOGIN>
				<ACTIVE>1</ACTIVE>
				<EMAIL>sigurd@example.com</EMAIL>
				<NAME>Одмин</NAME>
				<LAST_NAME/>
				<SECOND_NAME/>
				<PERSONAL_GENDER/>
				<PERSONAL_PROFESSION/>
				<PERSONAL_WWW/>
				<PERSONAL_BIRTHDAY>1955-04-10T00:00:00+03:00</PERSONAL_BIRTHDAY>
				<PERSONAL_PHOTO>/upload/main/80c/44169_C5_PrimalWaterE500CC.jpg</PERSONAL_PHOTO>
				<PERSONAL_ICQ/>
				<PERSONAL_PHONE/>
				<PERSONAL_FAX/>
				<PERSONAL_MOBILE/>
				<PERSONAL_PAGER/>
				<PERSONAL_STREET/>
				<PERSONAL_CITY/>
				<PERSONAL_STATE/>
				<PERSONAL_ZIP/>
				<PERSONAL_COUNTRY>0</PERSONAL_COUNTRY>
				<WORK_COMPANY/>
				<WORK_POSITION/>
				<UF_DEPARTMENT>
				<item>128</item>
				</UF_DEPARTMENT>
				<UF_INTERESTS/>
				<UF_SKILLS/>
				<UF_WEB_SITES/>
				<UF_XING/>
				<UF_LINKEDIN/>
				<UF_FACEBOOK/>
				<UF_TWITTER/>
				<UF_SKYPE/>
				<UF_DISTRICT/>
				<UF_PHONE_INNER/>
			</get_user>
			<get_department>
				<item>
					<ID>128</ID>
					<NAME>ИТ-отдел</NAME>
					<SORT>500</SORT>
					<PARENT>114</PARENT>
					<UF_HEAD>255</UF_HEAD>
				</item>
			</get_department>
		</result>
		<result_error/>
		<result_total>
			<get_department>1</get_department>
		</result_total>
		<result_next/>
	</result>
</response>

Пример строки json для помещения в тело POST запроса для метода batch.

BX24.callMethod(
	'batch',
	{
		'halt': 0,
		'cmd': {
			'user': 'user.get?ID=1',
			'first_lead': 'crm.lead.add?fields[TITLE]=Test Title',
			'user_by_name': 'user.search?NAME=Test2',
			'user_lead': 'crm.lead.add?fields[TITLE]=Test Assigned&fields[ASSIGNED_BY_ID]=$result[user_by_name][0][ID]',
		}
	},
	function(result)
	{
		console.log(result.answer);
	}
);

В результате:

  • user - вернёт пользователя с ID = 1
  • first_lead - создаст лид
  • user_by_name - найдёт пользователя с именем "Test2"
  • user_lead - создаст лид с ответственным пользователем, найденным в user_by_name

На PHP рекомендуется использовать CRest::callBatch()

Смотрите также



© «Битрикс», 2001-2024, «1С-Битрикс», 2024