Выражение вида {КОД} вычисляются в следующем порядке:
- Другие параметры действия Параметры контекста задачи Параметры контекста АСР.
В случае перекрытия параметрами действия аналогичных параметров контекста задачи и контекста АСР доступ к перекрытым параметрам можно получить с помощью вызовов {SELECT RD_P_QUEUE. CTX_GET(‘КОД’) FROM DUAL} и {SELECT GL_P_PARAM. GET_CURRENT_VALUE(‘КОД’) FROM DUAL} соответственно.
Повторное вычисление для параметров действия и возможные различия в результатах вычисления могут происходить аналогично параметрам задачи.
Очередь задач диспетчера отчётов
Выполнение программ диспетчера отчётов осуществляется асинхронно относительно сеанса работы пользователя АСР Fastcom, в сеансе (сеансах) приложения Fastcom Report Dispatcher. Для формирования отчёта пользователь WEB-интерфейса АСР Fastcom должен поместить задачу на выполнение программы диспетчера отчётов в очередь задач диспетчера отчётов.
Одновременно с помещением задачи в очередь задач в очередь действий добавляются все действия программы диспетчера отчётов.
Элемент очереди задач диспетчера отчётов имеет следующие атрибуты:
- Идентификатор задачи – уникальное целое число, однозначно идентифицирующее элемент очереди задач. Плановая дата выполнения задачи – дата, ранее которой задача не будет выполнена. Программа диспетчера отчётов. Статус задачи. Может принимать следующие значения:
- ENQ – Ожидание. Задача в очереди. Выполнение задачи не начато. RUN – Выполняется. Выполнение задачи начато, но не завершено. Задача в состоянии «Выполняется» может оставаться сколь угодно долго, например, в случае отсутствия приложения Fastcom Report Dispatcher, способного выполнить одно из действий задачи. FIN – Завершено успешно. ERR – Задача завершена с ошибкой. Данный статус устанавливается в случае завершения с признаком ошибки одного из действий по задаче. Статус «Завершено с ошибкой» может быть выставлен администратором для задачи в стадии «RUN» для постоянного или временного прекращения выполнения задачи.
Просмотр и управление очередью задач осуществляется через интерфейс пользователя АСР Fastcom - «Меню Fastcom/Администрирование/Отчёты/Диспетчер Отчётов/Очередь задач».
Очередь действий диспетчера отчётов
Все действия по задачам, помещённым в очередь задач, помещаются в очередь действий диспетчера отчётов. Элемент очереди действий имеет следующие атрибуты:
- Идентификатор – уникальное числовое значение, однозначно идентифицирующее элемент очереди действий. Идентификатор элемента очереди действий записывается в журнальный файл приложения Fastcom Report Dispatcher, и может быть использован при расследовании причин ошибок.
- Идентификатор элемента очереди задач диспетчера отчётов, к которому относится элемент очереди действий. Идентификатор действия программы. Используется для вычисления кода действия и значений параметров по умолчанию. Код действия. Статус действия. Может принимать следующие значения:
- ENQ – Ожидание. Выполнение действия не начато. RUN – Выполнение действия начато. В случае сбоя при выполнении действия, и завершении потока выполнения приложения Fastcom Report Dispatcher, действие останется в состоянии «RUN». FIN – Действие завершено успешно. ERR – Действие завершено с ошибкой.
Просмотр и управление очередью действий диспетчера отчётов осуществляется через интерфейс пользователя АСР Fastcom, «Меню Fastcom/Администрирование/Отчёты/Диспетчер Отчётов/Очередь действий».
Создание и настройка программ диспетчера отчётов
Создание программы формирование отчёта сводится к созданию последовательности действий диспетчера отчётов, и задания из параметров. Параметры действий могут быть константами (например, расширение имени файла для действия PS2PDF$ должно быть ‘PDF’, и вычислять его не имеет смысла), автоматически вычисляемыми значениями, использующими {}-нотацию, или могут вычисляться в предварительном PL/SQL-блоке. При вычислении параметров следующего действия могут требоваться данные, вычисленные в предыдущем действии – в этом случае следует помещать такие значения в контекст задачи в завершающем действие PL/SQL-блоке.
Следует учитывать, что вычисление параметров задачи выполняется в момент постановки задачи в очередь. Вычисление параметров действий выполняется в момент выполнения действия, перед запуском предварительного PL/SQL-блока.
Вызовы, доступные в PL/SQL-блоках действий
Некоторые вызовы имеют смысл только внутри предварительного и завершающего PL/SQL-блоках действий программ диспетчера отчётов, т. к. опираются на текущее состояние контекста задачи и вычисленных параметров действий.
Установка значения контекста задачи
Процедура RD_P_QUEUE. CTX_SET(‘Код параметра’,’Значение параметра’);
Записывает значение параметра в контекст задачи.
Получение значение контекста задачи
Функция RD_P_QUEUE. CTX_GET(‘Код параметра’);
Возвращает значение параметра контекста задачи с указанным кодом. Если значение содержит выражения в {}-нотации, то выражение вычисляется.
Получение значения контекста задачи без вычисления
Функция RD_P_QUEUE. CTX_RAW(‘Код параметра’);
Возвращает значение параметра контекста задачи с указанным кодом. Выражения в {}-нотации не вычисляются, и возвращаются «как есть».
Получение контекста задачи в виде Fastcom-коллекции
Функция RD_P_QUEUE. CTX_LIST;
Возвращает текущие значения всех параметров контекста задачи в виде коллекции в формате:
КОД1:ЗНАЧЕНИЕ1;КОД2:ЗНАЧЕНИЕ2;
Установка значение параметров текущего действия
Процедура RD_P_QUEUE. AP_SET(‘Код параметра’,’Значение параметра’);
Устанавливает значение параметра действия. Имеет смысл только в предварительном PL/SQL-блоке действия.
Получение значения параметра действия
Функция RD_P_QUEUE. AP_GET(‘Код параметра’);
Возвращает текущее значение параметра действия. Если значение содержит выражение в {}-нотации, то выражение вычисляется.
Получение значения параметра действия без вычисления
Функция RD_P_QUEUE. AP_RAW(‘Код параметра’);
Возвращает текущее значение параметра действия. Выражения в {}-нотации не вычисляются, и возвращаются «как есть».
Получение всех значений параметров действия в виде Fastcom-коллекции
Функция RD_P_QUEUE. AP_LIST;
Возвращает текущие значения всех параметров действия в виде коллекции в формате:
КОД1:ЗНАЧЕНИЕ1;КОД2:ЗНАЧЕНИЕ2;
Получение кода текущего действия
Функция RD_P_QUEUE. ACTION_CODE;
Возвращает строку, содержащую код текущего действия.
Пропуск текущего действия
Процедура RD_P_QUEUE. SKIP_ACTION;
Вызов данной процедуры в предварительном PL/SQL-блоке действия приводит к тому, что само действие выполняться не будет. Может быть использовано при клонировании действий в программах формирования потоков отчётов.
Откладывание текущего действия
Процедура RD_P_QUEUE. DELAY_ACTION;
Вызов данной процедуры в предварительном PL/SQL-блоке действия приводит к тому, что действие выполняться не будет, и плановая дата действия будет перенесена на некоторое время в будущем. В журнале диспетчера отчётов появится запись, аналогичная SKIP_ACTION.
Процедуру также можно вызывать в завершающем PL/SQL-блоке действия, что приведёт к повторению действия через некоторое время.
Параметром процедуры может быть целое число, означающее количество секунд, через которое будет повторено действия, или дата повторного выполнения действия в текущей временной зоне.
При вызове без параметров действие будет повторено через одну минуту.
Клонирование действия
Процедура RD_P_QUEUE. CLONE_ACTION(Номер, ‘Коллекция параметров’, Приоритет, Планируемая дата, Новый номер);
Процедура создаёт копию действия с последовательностью «Номер» текущей задачи. Параметры нового действия устанавливаются по параметру процедуры ‘Коллекция параметров’, представляющем коллекцию параметров в формате КОД1:ЗНАЧЕНИЕ1;КОД2:ЗНАЧЕНИЕ2;
Параметры, не перечисленные в ‘Коллекция параметров’, устанавливаются равными параметрам клонируемого действия.
Параметр вызова ‘Приоритет’ задаёт приоритет нового действия. Может быть пропущен.
Параметр вызова ‘Планируемая дата’ задаёт планируемую дату нового действия. Если опущен, то устанавливается равным планируемой дате клонируемого действия.
Параметр ‘Новый номер’ позволяет изменить порядок выполнения создаваемого действия. Если опущен, то устанавливается равным порядковому номеру клонируемого действия.
Вычисление командной строки для отчёта типа SQL
Функция RD_P_TOOLS. SQLREP_CMDLINE;
Передача параметров в отчёты типа SQL выполняются не по имени, а по порядку следования. Кроме того, для обеспечения доступа кода отчёта к «административным» функциям АСР используются разовые ключи доступа. Достаточно большой объём кода вычисления командной строки может привести к превышению максимально допустимого для PL/SQL-блока действия диспетчера отчёта, равного 4000 байт, поэтому целесообразно пользоваться данной функцией.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


