Перейти к основному содержимому
Версия: 7.0

Операторы SHOWDEP, SHOWREC

Операторы SHOWDEP и SHOWREC создают диагностические действия над списком свойств и действий: SHOWDEP выводит их статический граф зависимостей, SHOWREC включает отслеживание рекурсивного срабатывания событий в работающей системе.

Синтаксис

SHOWDEP [scope] [propertyId1, ..., propertyIdN]
SHOWREC [propertyId1, ..., propertyIdN]

Описание

Оператор SHOWDEP создаёт действие, которое строит текстовое представление графа зависимостей перечисленных свойств и действий и записывает его в системное свойство System.showResult (класса TEXT).

Оператор SHOWREC создаёт действие, которое включает отслеживание для перечисленных действий: каждое из списка помечается, все остальные — отмечаются как не отслеживаемые. Пока идёт применение транзакции, платформа отслеживает множество строк, на которых сработало бы помеченное действие, и записывает строку в системный лог при каждом изменении этого множества — благодаря чему сразу видно, какое именно изменение перезапускает то же событие. Повторный вызов SHOWREC заменяет отслеживаемый набор; вызов с пустым списком полностью выключает отслеживание.

Параметры

  • scope

    Выбор ключевого слова, задающий область графа зависимостей. Если не указан, используется GLOBAL.

    • GLOBAL — Ключевое слово, при указании которого в граф включаются все зависимости, в том числе достижимые через события времени применения. Используется по умолчанию.
    • LOCAL — Ключевое слово, при указании которого в граф включаются только зависимости в рамках сессии.
  • propertyId1, ..., propertyIdN

    Список идентификаторов свойств и действий, разделённых запятыми. Список может быть пустым. Для SHOWDEP пустой список даёт пустой дамп зависимостей. Для SHOWREC имеют эффект только идентификаторы действий — идентификаторы свойств в списке игнорируются, — а пустой список снимает отслеживание со всех действий.

Примеры

// вывести глобальный граф зависимостей двух свойств
diagnoseDeps() {
SHOWDEP customer, orderSum;
}

// вывести зависимости одного свойства только в рамках сессии
diagnoseLocal() {
SHOWDEP LOCAL customer;
}

// начать отслеживание двух событий-действий
traceOrderEvents() {
SHOWREC recalculateBalance, syncStock;
}

// остановить всё отслеживание
stopTracing() {
SHOWREC;
}