Заметки
Как отлаживать 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. Причиной может быть одна и та же именованная функция в обоих фрагментах.