• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/timeline/activityentry.php
  • Класс: Bitrix\Crm\Timeline\ActivityEntry
  • Вызов: ActivityEntry::create
static function create(array $params)
{
	[$authorId, $created, $settings, $bindings] = self::fetchParams($params);
	$entityId = self::fetchEntityId($params);
	$activityTypeId = isset($params['ACTIVITY_TYPE_ID']) ? (int)$params['ACTIVITY_TYPE_ID'] : 0;
	if ($activityTypeId <= 0)
	{
		throw new Main\ArgumentException('Activity Type ID must be greater than zero.', 'activityTypeID');
	}

	$activityProviderId = $params['ACTIVITY_PROVIDER_ID'] ?? '';

	$data = [
		'TYPE_ID' => TimelineType::ACTIVITY,
		'TYPE_CATEGORY_ID' => $activityTypeId,
		'CREATED' => $created,
		'AUTHOR_ID' => $authorId,
		'ASSOCIATED_ENTITY_TYPE_ID' => \CCrmOwnerType::Activity,
		'ASSOCIATED_ENTITY_CLASS_NAME' => $activityProviderId,
		'ASSOCIATED_ENTITY_ID' => $entityId,
	];

	if (isset($params['SOURCE_ID']))
	{
		$data['SOURCE_ID'] = (string)$params['SOURCE_ID'];
	}

	$result = TimelineTable::add($data);
	if (!$result->isSuccess())
	{
		return 0;
	}

	$createdId = $result->getId();

	self::registerBindings($createdId, $bindings);
	self::buildSearchContent($createdId);

	return $createdId;
}