• Модуль: messageservice
  • Путь к файлу: ~/bitrix/modules/messageservice/lib/message.php
  • Класс: BitrixMessageServiceMessage
  • Вызов: Message::updateWithSendResult
public function updateWithSendResult(ResultSendMessage $result, DateTime $nextExec): void
{
	$toUpdate = ['SUCCESS_EXEC' => 'E', 'DATE_EXEC' => new DateTime()];
	if ($result->isSuccess())
	{
		$toUpdate['SUCCESS_EXEC'] = 'Y';
		if ($result->getExternalId() !== null)
		{
			$toUpdate['EXTERNAL_ID'] = $result->getExternalId();
		}
		if ($result->getStatus() !== null)
		{
			$toUpdate['STATUS_ID'] = $result->getStatus();
		}
	}
	elseif ($result->getStatus() === MessageStatus::DEFERRED)
	{
		$toUpdate = array(
			'SUCCESS_EXEC' => 'N',
			'NEXT_EXEC' => $nextExec,
			'STATUS_ID' => MessageStatus::DEFERRED
		);
	}
	else
	{
		$toUpdate['STATUS_ID'] = MessageStatus::ERROR;
	}

	$errors = $result->getErrorMessages();
	if ($errors)
	{
		$toUpdate['EXEC_ERROR'] = implode(PHP_EOL, $errors);
	}

	$this->update($toUpdate);
}