← К заметкам

Заметки

Как отлаживать PHP-код внутри бизнес-процесса

Начните отладку PHP-действия с сообщения в журнале БП. Оно покажет, дошёл ли процесс до этого участка:

$this->WriteToTrackingService('Начало проверки DealId');

$deal_id = (int) $this->GetRootActivity()->GetVariable('DealId');

if ($deal_id <= 0) {
    $this->WriteToTrackingService('DealId не заполнен');
    throw new RuntimeException('Не передан DealId.');
}

$this->WriteToTrackingService('DealId получен: ' . $deal_id);

Пишите короткие сообщения о выбранной ветке и результате операции. Полный объект карточки в журнале затрудняет поиск ошибки и может раскрыть данные, не нужные для диагностики.

Если сообщение перед кодом есть, а после него нет, проверьте исключение и PHP-журнал. Если нет даже первого сообщения, смотрите условия перехода к действию и синтаксис PHP.

Ошибка до записи результата — отдельный случай. Код выше предназначен для действия «PHP-код» коробочного БП, без открывающего тега.

Если два PHP-действия работают отдельно, но падают при последовательном запуске, ищите в серверной ошибке Cannot redeclare. Причиной может быть одна и та же именованная функция в обоих фрагментах.