:::: МЕНЮ ::::

Динамическая проверка процедуры на существование

Сразу скажу что такая задача возникает крайне редко. Проверить процедуру на существование можно путем ее вызова и анализа последующего исключения. Вызов процедуры осуществляется командой PERFORM (proc) IN PROGRAM (prog), а чтобы при вызове не выполнять ее код, необходимо вызвать ее с заведомо ложной сигнатурой.

Возможные исключения:

Исключение Интерпретация
cx_sy_dyn_call_illegal_form Процедура не найдена
cx_sy_program_not_found Программа не найдена
cx_sy_dyn_call_param_not_found Процедура найдена по имени, но отличается по параметрам

Ниже приведена реализация статического метода класса, выполняющего данную проверку.

Параметры входа:

Параметры выхода:

Код:

Пример использования:


4 комментария

    • Ответить admin |

      IF FOUND вызывает процедуру, если она существует. В данном примере происходит проверка без выполнения кода процедуры.

    • Ответить admin |

      Например, когда нужно спросить подтверждение пользователя перед выполнением.

Присоединиться к обсуждению...