Общие вызовы, имеющие отношение к диспетчеру отчётов

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

Создание новой задачи

Функция RD_P_TOOLS. CREATE_TASK(‘Код программы’ , ’Коллекция параметров’, Планируемая дата выполнения, Приоритет задачи)

Создаёт новую задачу в очереди задач, выполняющую программу ‘Код программы’ с параметрами ‘Коллекция параметров’ в формате КОД1:ЗНАЧЕНИЕ1;КОД2:ЗНАЧЕНИЕ2;

Параметры «Планируемая дата выполнения» и «Приоритет задачи» могут быть опущены.

Функция возвращает идентификатор созданной задачи.

Вызывающая программа должна выполнить команду COMMIT или ROLLBACK как можно быстрее после вызова данной процедуры.

Создание задачи по выполнению единичного отчёта

Функция RD_P_TOOLS. REQUEST_REPORT(‘Код отчёта’,’Коллекция параметров’, Планируемая дата выполнения, Приоритет задачи)

Создаёт новую задачу по генерации отчёта ‘Код отчёта’. В зависимости от данных в справочнике отчётов выполняется одна из предопределённых программ REPORT$...;

Параметр ‘Коллекция параметров’ должен также содержать все параметры отчёта.

Параметры «Планируемая дата выполнения» и «Приоритет задачи» могут быть опущены.

Функция возвращает идентификатор созданной задачи.

Вызывающая программа должна выполнить команду COMMIT или ROLLBACK как можно быстрее после вызова данной процедуры.

Генерация уникального имени файла

Функция RD_P_TOOLS. GEN_FILE;

НЕ нашли? Не то? Что вы ищете?

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

Генерация имени каталога для размещения результирующего файла

Функция RD_P_TOOLS. GEN_DIR;

Возвращает строку вида DD/DD, где D – случайная десятичная цифра.

Производительность большинства файловых систем существенно деградирует с увеличением количество записей в каталоге. Применение данной функции позволяет снизить количество файлов в каталоге в 10000 раз, за счёт увеличения глубины дерева каталогов.

Получение расширения имени файла

Функция RD_P_TOOLS. EXTRACT_EXTENSION(‘Имя файла’);

Возвращает строку, содержащую часть строки ‘Имя файла’ от последнего символа ‘.’ до конца строки.

Вычисление расширения имени файла – необходимая операция при генерации отчётов действием CONTENT$REPLACE,  т. к. расширение выходного файла не является константой, и должно вычисляться по расширению имени исходного файла.

Генерации имени каталога для договора при пакетном формировании отчётов для доставки абонентам

Функция RD_P_TOOLS. CONTRACT_DEST_FOLDER(Идентификатор договора, Тип документа);

Параметр «Идентификатор договора» - значение поля ID таблицы договоров (CT_T_CONTRACT)

Параметр «Тип документа» в настоящее время не используется.

Функция вычисляет возможный способ доставки документов, и генерирует имя каталога для формирования отчёта с учетом предпочитаемого способа доставки.

Для договоров с известным адресом электронной почты генерируется строка вида

EMAIL/xx/xxxx. xxx/*****@***xxx

Для договоров с известным номером факса генерируется строка вида

FAX/dd/dd/ddddddd

, где ddddddd – номер факса.

Для договоров, не имеющих адреса электронной почты и номера факса генерируется, строка вида

UNKNOWN\dd\dd\dddddd

, где ddddddd – идентификатор договора.

Разбиение имени каталога на части производится для оптимизации нагрузки на файловую систему сервера, см. описание функции RD_P_TOOLS. GEN_DIR.

Администрирование диспетчера отчётов

Журнальные файлы

Приложение Fastcom Report Dispatcher в процессе работы генерирует журнальный файл. Объём данных в журнальном файле – порядка 1 килобайта на каждое выполненное действие (зависит от действия, объёма передаваемых параметров, возникающих ошибок). Следует предусмотреть достаточное дисковое пространство для размещения журнального файла.

Каждые сутки, около 00:00, приложение Fastcom Report Dispatcher переименовывает текущий журнальный файл, включая дату в наименование файла, и создаёт новый журнальный файл. В связи с этим пользователь операционной системы, от имени которого выполняется приложение Fastcom Report Dispatcher, должен иметь права на создание файлов в каталоге журнальных файлов.

Приложение «Fastcom Report Producer» автоматически выполняет удаление старых журнальных файлов.

Очереди задач и действий

Автоматическая очистка данных в очередях диспетчера отчётов не производится. Рекомендуется ежедневно выполнять очистку очереди периодической процедурой в часы наименьшей нагрузки на Oracle Database. Пример кода периодической процедуры:

delete from rd_t_action_queue where plan_date < curdate-2;

commit;

delete from rd_t_task_queue where plan_date < curdate-2;

commit;

analyze table rd_t_action_queue estimate statistics for all indexes for all indexed columns;

analyze table rd_t_task_queue compute statistics for all indexes for all indexed columns;

Сформированные файлы

Автоматическая очистка сформированных файлов не производится. Рекомендуется ежедневно выполнять очистку сформированных файлов с использованием планировщика операционной системы в часы наименьшей нагрузки. Примерный код командного файла для удаления старых файлов (VBS):


iDays = 2

startFolder = Wscript. arguments. Item(0)

Set objFileSystem = CreateObject("Scripting. FileSystemObject")

recurseDelete startFolder

Function recurseDelete(pFolder)

  Dim objDir, objFiles, objFolders, objElement

       Set objDir = objFileSystem. getFolder(pFolder)

       Set objFolders = bFolders

       Set objFiles = objDir. Files

       For Each objElement in objFiles

        If DateDiff("d", objElement. DateLastModified, Now) > iDays then objElement. Delete

       Next

       For Each objElement in objFolders

        recurseDelete( objElement. Path )

       Next

End Function

Запуск скрипта:

Cscript  clean_old_files. vbs R:\REP

, где:

       Cscript – консольный интерпретатор Windows Scripting Host,

       Clean_old_files. vbs – имя файла с рекомендуемым скриптом,

       R:\REP – каталог, в котором хранятся сгенерированные файлы отчётов.

Скрипт удаляет файлы в подкаталогах, но не удаляет сами каталоги.

Первая строка скрипта – iDays = 2 – задаёт количество дней, за которые нужно сохранять данные.

Конфигурация Fastcom Report Dispatcher

Fastcom Report Disptacher – 32-битное консольное приложение для Microsoft Windows.

Разрядность приложения связана с использованием того же пакета Oracle Client, что и 32-битное приложение Oracle Forms 6i. 

Версия для Linux может появиться в будущих версиях АСР, если не будет выявлено несовместимостей Linux-версии Oracle Reports 6i с уже имеющимися отчётами Oracle Reports.

Приложение Fastcom Report Dispatcher поддерживает все действия программ диспетчера отчётов, за исключением действия APACHE$FOP. Если Вы хотите использовать XML-отчёты, но не хотите использовать программу Fastcom Report Producer – Вы лишаетесь возможности выполнять FO-преобразования над XML-отчётами, и, как следствие, не сможете получать PDF-файлы из XML-отчётов. Для использования программы Fastcom Report Dispatcher c XML-отчётами в таком режиме необходимо удалить действие APACHE$FOP из соответствующих программ диспетчера отчётов.

Приложение Fastcom Report Dispatcher конфигурируется с помощью текстового файла.

Путь к конфигурационному файлу может быть задан при старте приложения с помощью параметра вызова –c, например:

       Frd. exe –c C:\Fastcom\FRD\frd. conf

Если параметр –c не задан, или такой файл не обнаружен, то поиск конфигурационного файла выполняется в следующей последовательности:

    Файл frd. cfg в каталоге, заданном переменной окружения FRD_HOME Файл frd. cfg в текущем каталоге Файл frd. cfg в том же каталоге, где располагается исполняемый файл frd. exe.

В случае отсутствия конфигурационного файла приложение Fastcom Report Dispatcher завершает работу с ошибкой.

Приложение Fastcom Report Dispatcher исполняет несколько потоков выполнения действий, каждый из которых самостоятельно выбирает действия из общей очереди действий в схеме АСР Fastcom. Каждый поток выполнения может находиться в одном из трёх состояний:

    Выполнение действия Выборка действий из очереди Режим ожидания

В режиме ожидания поток выполняет вызов пакета Oracle Database DBMS_ALERT, ожидая события, генерируемого при постановке  в очередь новой задачи диспетчера отчётов.

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

В процессе выполнения действия поток может быть прерван управляющим потоком при наступлении таймаута времени выполнения действия. Управляющий поток также перезапускает потоки выполнения действий после остановки по ошибке или по инициативе самого потока выполнения действий.

Формат конфигурационного файла

Конфигурационный файл приложения Fastcom Report Dispatcher – текстовый файл, разделённый на секции.

Строки, начинающиеся с символа ‘#’ считаются комментариями.

Комментарии и пустые строки приложением не учитываются.

Файл состоит из секций. Секция начинается со строки, состоящей из названия секции, заключенной в квадратные скобки, например:

[global]

Все имена, в том числе имена секций в файле зависят от регистра символов. Global, global и GLOBAL – разные имена.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9