Триггеры

Триггеры позволяют установить динамическое обновление данных путем задания критериев, то есть, вводя данные, можно автоматически обновлять другие поля.

Для задания триггера:

  1. В главном меню выберите База данных > Словарь > Триггеры. Отобразятся триггеры, уже созданные и используемые в системе.
  2. Нажмите Добавить и заполните поля в соответствии с описанием:
    • Поле – имя поля, которое при его изменении запускает процесс обновления.
    • Последовательность – порядковый номер, создаваемый системой для каждого триггера.
    • Обратный домен – имя обратного домена, то есть поле, которое должно автоматически обновляться.
    • Тип – выберите тип триггера:
      • P – основной, для визуальных и внешних обновлений того же файла.
      • F – внешний. Чтобы обновить данные в других файлах.
      • X – положение. Чтобы разместить указанный файл в псевдониме, не выполняя обновления. Используется для случаев, когда пользователь хочет установить отношение между файлами.
    • Правило – выражение на языке AdvPL, переносимое в обратный домен.
    • Места – выберите Да для перемещения указателя на другой файл на основании выражения, указанного в ПОИСКЕ. Или Нет, чтобы не перемещать его.
    • Псевдоним – псевдоним файла. 3 начальные буквы файла, чей указатель должен быть перемещен.
    • Порядок – номер ключа индекса, используемый для перемещения указателя.
    • Поиск – выражение в языке, определяющее положение указателя.
    • Условие – укажите условие (параметры Execblock и т. п.) для определения момента, когда необходимо задействовать триггер.

    Например, для указания триггера поля/последовательности L2_PRODUTO/001 запускается только в модуле SIGALOJA, в поле Условие необходимо ввести выражение nModulo ==12.

    Таким образом, данный триггер запускается только в модуле, номер которого равен 12 (в данном случае – SIGALOJA).

    Совет:

    Если вы работаете с типом P и создаете ссылки на поля самого файла, то на первом месте должно ставиться обозначение переменной памяти M->. Например: M->C6_QTDVEN.

    Пример. Если вы создаете поле Баланс (B1_SALDO) в файле товара, можно указать триггер, чтобы автоматически обновлять это поле, когда бы вы ни добавляли прогноз продаж для товара (C4_PRODUTO). В правиле должно быть установлено, что товарный баланс – это сумма текущего количества и количества из прогноза продаж.

  3. Заполните поля и нажмите OK.