Описание jobs Старт-IP

Материал из START-IP
Перейти к навигации Перейти к поиску
abs_mail.accwrn;

Формирует письма, предназначенные для предупреждения о достижении квоты остатка на лицевом счете. Письма формируются только при достижении квоты. Текст письма формируется пользователем. Количество отправок ограничивается параметром, указанным в поле «Кол-во предупреждений» вкладки «Биллинг» активных клиентов. Если в поле «Кол-во предупреждений» значение не указано, то по умолчанию количество отправок равно трем. Текущее отосланное количество писем запоминается в поле «Отправлено» вкладки «Биллинг».



acc.batch_card_close;

Выполняет групповое закрытие карт на текущую дату. vol_service.transfer_hotflow; Утилита необходима, если используются услуги потока «HOTFLOW». Утилита сжимает статистику из временной таблицы и переносит сжатую статистику в таблицу статистики («tb_services»). Периодичность попадания статистики в таблицу регулируется параметром «Interval».



tariff.exec_tariff_change_tasks;

Выполняет задания, согласно расписанию, сформированному ПЛАНИРОВЩИКОМ на назначение либо смену пакетов услуг (о назначении пакетов услуг см. документ «Руководство пользователя. Оператор»).



CTSTD_ADD.Account_Jobs;

Выполняет закрытие зависших ALIVE-сессий RADIUS (см. описание RADIUS-сервера). Формирование задания требуется при установке «патча 295» (см. описание патчей). Периодичность срабатывания регулируется параметром «Interval»= (sysdate+10/1440).


CTSTD_ADD.Account_Day;

Выполняет несколько функций: освобождает с периодичностью один раз в сутки динамические IP-адреса, которые не были освобождены в течение суток; переносит в другие таблицы записи о сессиях, закрытых по признаку «Alive», по которым в течение этих суток не поступило дополнительной информации. Перенос записей осуществляется в таблицы «tb_wtmps_active_old» и «tb_wtmps_old_alive»; архивирует сессии, закрытые по стоповой записи; очищает таблицу активных сессий (переносит записи о сессиях, закрытых по признаку «Alive», в архивные таблицы). При обработке стартовой записи система проверяет признак, поступают ли от NAS Alive-записи или нет. Если записи поступают, то на основе служебного параметра «DEFAULT_ALIVE_TIME» рассчитывается предположительное время поступления первой Alive-записи, равное «2*DEFAULT_ALIVE_TIME» (параметр устанавливается в минутах). После прихода первой Alive-записи период ожидания перерассчитывается и в дальнейшем не изменяется. Чтобы задействовать данный механизм, необходимо пометить признаки у тех NAS, которые шлют Alive-записи. В окне «Количество и время соединений» сессии, закрытые по признаку «Alive» помечаются. (См. документ «Руководство пользователя. Технический специалист»). Периодичность срабатывания регулируется параметром «Interval»= (sysdate+1).


Begin;
    Import.Import_Pay_Files;
End;

Проверяет наличие файлов для проведения автоматического импорта платежей и выполняет импорт платежей из внешних файлов. svodka; Формирует данные для сводки о работе системы за прошедшие сутки.


JOB по снятию просроченных резервов с заказов дилеров

deal_cards.clearreserv(cleardate date DEFAULT SYSDATE)
/*JOB_.SQL*/
var     job_id number
begin
        dbms_job.submit
        (
       job => :job_id,
what => 'deal_cards.clearreserv();',
next_date => to_date(to_char(sysdate, 'dd.mm.rrrr')||' 23:59:59', 'dd.mm.rrrr hh24:mi:ss'),
interval => 'trunc(sysdate) + 1'
        );
        commit;
end;
/

Снимает резервирование с заказа на карты. Формирование задания требуется при установке патча (отдельного модуля) для работы с дилерами карт. Рекомендуемая периодичность запуска задания: один раз в сутки «Interval»= (sysdate+1). Этот job один раз в сутки запускает процедуру снятия просроченных резервов с заказов дилеров ("deal_cards.clearreserv()"). По умолчанию параметр передается "sysdate" Процедура: 1)выбирает все заказы у которых "дата резервирования до (tb_deal_orders.dl_ord_rsrv_to_date)" меньше "sysdate" т.е. просроченные резервы; 2)выбирает заказы не отмеченые к выдаче "tb_deal_orders.dl_ord_can_ship = 'N'"; 3) у каждого заказа снимается резерв ("deal_cards.ord_reserv_decl"); 4) у каждого заказа очищается : 4.1) дата, когда заказ был зарезервирован ("tb_deal_orders.dl_ord_res_data"); 4.2) дата, до которой заказ зарезервирован ("tb_deal_orders.dl_ord_rsrv_to_date"); 4.2) кто резервировал ("tb_deal_orders.dl_ord_res_person");


/*JOB_REST_POST.SQL*/
var     job_id number
begin
        dbms_job.submit
        (
      job => :job_id,
what => 'crd_fil_box.job_rest_post;',
next_date => to_date(to_char(sysdate, 'dd.mm.rrrr')||' 23:59:59', 'dd.mm.rrrr hh24:mi:ss'),
interval => 'trunc(sysdate) + 1'
        );
        commit;
end;
/

JOB по снятию просроченных резервов с заказов филиалов Этот job раз в сутки запускает процедуру снятия просроченных резервов с заказов филиалов ("crd_fil_box.job_rest_post"). Процедура : 1) выбирает все заказы у которых "дата резервирования до (tb_fil_orders.fl_ord_res_to_date)" меньше "sysdate" т.е. просроченные резервы; 2) выбирает заказы, не отмеченые к выдаче "tb_fil_orders.fl_ord_ship_date is null"; 3) у каждого заказа снимается резерв ("crd_fil_box.reserve_del"); 4) у каждого заказа очищается : 4.1) дата, когда заказ был зарезервирован ("tb_fil_orders.fl_ord_res_date"); 4.2) дата, до которой заказ зарезервирован ("tb_fil_orders.fl_ord_res_to_date"); 4.2) кто резервировал ("tb_fil_orders.fl_ord_res_person");



abs_mail.credit_model();

Осуществляет кредитный контроль клиентов. Необходимо при использовании кредитной системы контроля. Ежедневное задание в БД. Периодичность срабатывания регулируется параметром «Interval»= (SYSDATE+1).


invoice.close_period_abnsum

Автоматизирует создание начислений по счетчикам при наступлении определенных условий. Выполняет тарификацию открытых сессий RADIUS и создает начисления по счетчикам, участвующим в скидке «ABNSUM», в момент перехода в новый расчетный период. Это необходимо для правильной тарификации услуг, имеющих скидку «ABNSUM», в период между календарным окончанием периода и его фактическим закрытием, в течение которого состояние части счетчиков услуг может содержать значения прошлого периода. Дата первого запуска = дате начала следующего расчетного периода. Интервал запуска = add_months(trunc(sysdate,'MM'),1) См. также процедуру «invoice.close_period_where».


invoice.close_period_where('');

Пример вызова:

invoice.close_period_where('AB_LR_LEGAL_STATUS=''LEGAL'' AND AB_ID IN (SELECT US_AB_ID FROM CT_USERS WHERE US_TFP_CODE=''MAIN_TP'') ');

В приведенном примере процедура закроет период для всех клиентов с юридическим статусом «LEGAL», имеющих подключение с пакетом услуг «MAIN_TP». Автоматизирует создание начислений по счетчикам при наступлении определенных условий. Выполняет тарификацию открытых сессий RADIUS и создает начисления по услугам всех подключений клиентов, выбранных по заданному условию, а также выполняет установленные правила сложной тарификации. Условие отбора передается в качестве параметра вызова процедуры (см. пример вызова). При вызове без параметров обрабатывает всех клиентов. Дата первого запуска = дате начала следующего расчетного периода. Интервал запуска = add_months(trunc(sysdate,'MM'),1)

  • Примечание. Следует обратить внимание, что процедура, в отличие от «close_period_abnsum», обрабатывает еще и правила сложной тарификации. Кроме того, обе эти процедуры могут работать и вместе, если необходимо. Однако «close_period_abnsum» не имеет смысла запускать, если запущена «close_period_where» без параметров, которая сама все обработает.

pay_bal_job;

Снимает с лицевого счета клиента сумму обещанного платежа по истечении срока действия обещания. Задание следует запускать раз в сутки (желательно ночью). Задание будет просматривать обещанные платежи, срок действия которых закончился, и восстанавливать состояние лицевого счета клиента, удаляя просроченные обещанные платежи и делая соответствующую запись в журнал. Интервал запуска = (SYSDATE+1).


VOIP_PIPES.Receive_Event;

Задание используется в работе VoIP Radius для обработки информации к отчету по ASR (см. документ «Руководство пользователя. VoIP»). Этот отчет предназначен для мониторинга работы VoIP, поэтому данное задание должно работать постоянно и с достаточной периодичностью, чтобы обеспечить отчет актуальными данными. Параметры отсутствуют. Задание рекомендуется запускать с периодичностью в десять минут. Интервал запуска = (SYSDATE+1/(24*6)).


VOIP_JOBS.Check_Tables(0);

Задание производит очистку рабочих таблиц системы VOIP и проверку локировок карт. Очистка рабочих таблиц требуется постоянно, так как они нужны только для непосредственной, онлайновой работы системы VOIP. Проверка локировки карты нужна на случай некоректной работы системы, если не были получены стоповые записи. В этом случае локировка снимется по истечению срока LockTimeOut, заданного в параметрах VOIP. Задание не формируется автоматически. Задание должно работать постоянно. Интервал запуска задания должен лежать в пределах от десяти минут до одних суток.


VOIP_QUEUE.StartProcess();

Осуществляет отложенную тарификацию звонков VoIP (см. документ «Руководство пользователя. VoIP», раздел 1.6. «Особенности тарификации IP-телефонии»). Процедура предназначена для работы в системе VOIP и позволяет снизить нагрузку на систему, связанную с тарификацией звонков непосредственно после их окончания. Ее рекомендуется запускать с датой запуска в наименее нагруженный период суток.


abs_mail.prognoz;

Прогнозирует при закрытии периода как периодические траты с лицевых счетов клиентов, так и возвраты денег на лицевой счет в конце месяца. Прогнозируется: снятие денег за периодические услуги; возвраты денег по кредитам (начисления типа «CRD»); возвраты денег по блокировкам. Обрабатываются только те клиенты, биллинговая модель которых имеет тип кредитного контроля «AVA». Если при прогнозировании выясняется, что сумма на лицевом счете клиента будет в конце расчетного периода меньше порога предупреждения, то посылается письмо клиенту с предупреждением. Рекомендуется запускать перед окончанием расчетного периода. При установке соответствующего патча задание формируется скриптом автоматически. Запускать утилиту вручную нужно, если требуется прогноз. Интервал запуска =

(trunc(add_months(SYSDATE,2),MM) - 4),
 что означает за 4 дня до конца месяца.

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


Company_Job.Sum_3(tranc(sysdate), null);

Задание предназначено для работы в системе VоIP и дилерском модуле. Задание рассчитывает значения трех сумм за период отчета, которые затем можно посмотреть в отдельной экранной форме «Отчет о работе компании» (см. документ «Руководство пользователя. Модуль работы с дилерами карт»). Период отчета – диапазон дат, начиная с нижнего предела, до верхнего предела. Текущий нижний предел – предыдущий верхний предел. Текущий верхний предел указывается в параметре запуска. Во время первого запуска задания дата предыдущего верхнего предела неопределена («null»), поэтому она принимает значение равное началу текущего года. При последующих запусках задания предыдущий верхний предел принимается в качестве текущего нижнего предела. Так, задание «Company_Job.Sum_3» в первый раз будет считать суммы от начала года до текущей даты («SYSDATE») и с порогом =«null». Параметры задания формируются автоматически при установке патча, при необходимости их можно изменить вручную. Входные параметры: дата, задающая верхний предел периода отчета; порог остатка – значение, ниже которого не суммируются остатки активированных карт. Интервал запуска рекомендуется (SYSDATE+1), т.е. один раз в сутки.


SRT_JOB.LOAD_STAT;

Задание на загрузку внешнего потока статистики по оказанным услугам (см. п. 5.4. «Внешний поток статистики оказанных услуг и работа с ним» в документе «Руководство пользователя. Оператор»). Данное задание периодически запускает процедуру загрузки внешней статистики по оказанным услугам, которая выполняет следующие действия: 1) Просматривает записи таблицы БД модуля «Старт-IP», в которой накапливается информация из лог-файлов серверов загрузки (например, Apache или ftp-сервера). 2) Контролирует правильность задания данных в каждой записи таблицы, у которой поле «Признак ошибки» имеет значение «N». Если в записи были обнаружены ошибки, полю «Признак ошибки» присваивается значение «Y». Кроме того сохраняется код и текст сообщения об ошибке. 3) При отсутствии ошибок вызывается одна из процедур тарификации. Выбор процедуры тарификации зависит от заданных в записи кода потока и кода услуги. При успешном выполнении тарификации, обработанная запись удаляется из таблицы. Если в процессе тарификации были обнаружены ошибки, выполняются действия, описанные в п.2). 4) После просмотра таблицы, формируется протокол загрузки внешней статистики, который записывается в БД и который можно посмотреть из рабочего места оператора. Процедура выполняет команду COMMIT после обработки того количества записей, которое задано в служебном параметре «STEP_SRD_JOB» (см. описание справочника «Служебные параметры» в документе «Руководство пользователя. Оператор»). Интервал запуска задания должен определяться пользователем, исходя из объемов внешней статистики, частоты ее поступления и загрузки системы. Например: Если требуются достаточно актуальные данные, то запуск процедуры можно выполнять сразу после поступления новых данных. Если, загрузка занимает много времени, можно проводить ее в часы наименьшей загруженности системы. Процедура устанавливается и настраивается автоматически при установке патча. Запуск процедуры может осуществляться как автоматически по расписанию, так и вручную пользователем с рабочего места оператора (см. раздел 5.4. «Внешний поток статистики оказанных услуг и работа с ним» в документе «Руководство пользователя. Оператор»).


PERIOD.REG_PER_DAY_JOB;

Задание предназначено для списания ежедневных абонентских плат (см. п. 3.9. «Тип периодической оплаты «Ежедневная» («PERIOD20»)» в документе «Руководство пользователя. Оператор»). Включение задания необходимо в случае использования механизма ежедневного списания абонентских плат, т.е. если описаны и включены в пакеты услуги типа «PERIOD20» и пакеты с такими услугами назначены подключениям. Задание требует ручного создания. Интервал запуска задания может быть привязан к определенному времени суток, например TRUNC(SYSDATE)+N/24, где «N» – час в сутках, в который необходимо запускать задание.


BLOCKING.BLOCKS_JOB;

- при запуске патча 467.

BLOCKING_PK.BLOCKS_JOB;

- при запуске патча 659.

Задание предназначено для активации, закрытия блокировок, регистрации услуг, связанных с блокировками, переноса блокировок в архив. Задание создается автоматически при установке патча 467. Интервал запуска задания раз в сутки (при автоматическом создании по умолчанию в 1:00). Периодичность срабатывания регулируется параметром «Interval»= (SYSDATE+1).


export.job_exp_pay;

Задание предназначено для экспорта платежей в таблицу БД, файл или в файл и таблицу одновременно (см. п. 2.12.13. «Экспорт платежей» в документе «Руководство пользователя. Оператор») и используется при необходимости периодического экспорта платежей (например, для использования во внешних системах). Параметры процедуры отсутствуют. Процедура требует ручного создания. Интервал запуска задания определяется по необходимости, например, один раз в сутки: «Interval»= (SYSDATE+1).



JOB по автоматической очистке таблиц базовой части агрегатора

BEGIN
OPEN_NETFLOW_NEW.ClearRegs;
OPEN_NETFLOW_NEW.ArchiveErrorRegs;
OPEN_NETFLOW_NEW.RemoveSessions;
COMMIT;
END;

Подсистема очистки таблиц производит следующие действия: 1. Удаляет успешно оцененные записи из таблицы ONF_REGS. 2. "Схлопывает" ошибочные записи по суткам. 3. Удаляет пустые сессии из таблицы ONF_SESSIONS.

Необходимо создать периодическое задание, которое желательно запускать во время наименьшей нагрузки на систему. Для первичного запуска необходимо выполнить скрипт ONF_INITSTAT, прилагаемый в соответствующем ZIP файле.

JOB имеет настройки: «NETFLOW\CompleteRegsStoreDays» - количество дней, за которые хранятся успешные записи; «NETFLOW\MaxSessionsToClear» - максимальное количество сессий, которые будут очищены за один проход; «NETFLOW\ErrorRegsArchiveDays» - количество дней, после которого схлопываются ошибочные записи; «NETFLOW\MaxArchiveDays» - максимальное количество дней, за которое производится схлопывание за один проход.


MS_MAIL.RUN_MS(JOB);

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


ES.RUN; /*Модуль экспорта*/

Задание предназначено для обработки периодических заданий экспортов почтовой системы.


VOIP_PIPES_NEW.RECEIVEEVENTS;

Задание предназначено для сбора и обработки данных для отчетов модуля VOIP.



/* Для снятия зависшего резерва 
(если нет диалап сессий и звонков) */
update  tb_accounts 
set ACC_WORK_RESERVED_AMOUNT=0  
where acc_ab_id in 
(SELECT  acc_ab_id 
 FROM    tb_accounts 
 WHERE   ACC_WORK_RESERVED_AMOUNT<>0 
   and not EXISTS (select null from voip_locks 
                   where acc_ab_id = LK_AB_ID) 
   and not EXISTS (select null from TB_WTMPS_ACTIVE  
                   where acc_ab_id =  TWA_AB_ID      
                     and twa_close_method is Null)); 
commit;

Задание предназначено для освобождения резервирования лицевого счета, которое остается после некорректного завершения RADIUS сессии абонента.


wtmps_arch_del_auth_err('true');

Задание предназначено для очистки хранимых в системе данных об ошибках авторизации абонентов.



services.reg_instalments(sysdate); commit;

Задание предназначено для обеспечения работы функциональности «рассрочка начислений». При наступлении даты очередного начисления задание БД services.reg_instalments переносит запись из таблицы “Рассрочка начислений” в таблицу “Статистика”, изменяет лицевой счет и состояние счетчиков.



declare
 ip_prev ct_ip_lists.IL_IP%type;
 ip_curr ct_ip_lists.IL_IP%type;
 ip_pool ct_pools.P_NAME%type;
 ip_head ct_pools.P_HEAD%type;
 ip_tail ct_pools.P_TAIL%type;
 ip_count NUMBER:=0;
begin
 FOR pl IN (select * from ct_pools cp /*where cp.p_name=ip_pool*/ for UPDATE) LOOP 
if pl.p_head is null and pl.p_tail is null then
 ip_count:=0;
 ip_prev:=NULL;
 ip_curr:=NULL;
 UPDATE ct_pools SET p_head=NULL WHERE p_name=pl.p_name;
 FOR ip IN (select * from ct_ip_lists ct where ct.IL_P_NAME=pl.p_name and ct.IL_STATUS='FREE' order by IP_POOLS.IPINHEX(IL_IP) for UPDATE) LOOP
  ip_count:=ip_count+1;
  ip_curr :=ip.il_ip;
  IF ip_count=1 THEN
   ip_prev:=ip.il_ip;
   UPDATE ct_ip_lists SET il_prev=NULL   , il_next=NULL WHERE il_ip=ip_curr;
   UPDATE ct_pools SET p_head=ip_curr WHERE p_name=pl.p_name;
  ELSE
   UPDATE ct_ip_lists SET il_next=ip_curr               WHERE il_ip=ip_prev;
   UPDATE ct_ip_lists SET il_prev=ip_prev, il_next=NULL WHERE il_ip=ip_curr;
   ip_prev:=ip_curr; 
  END IF;     
 END LOOP;
 UPDATE ct_pools SET p_tail=ip_curr WHERE p_name=pl.p_name;
--SELECT p_head, p_tail INTO ip_head, ip_tail FROM ct_pools WHERE p_name=pl.p_name;
 --UPDATE ct_ip_lists SET il_next=ip_head WHERE il_ip=ip_tail;
-- UPDATE ct_ip_lists SET il_prev=ip_tail WHERE il_ip=ip_head;
end if;
 END LOOP;
 COMMIT;
 
 end;

Задание предназначено для перестройки очереди адресов динамических пулов.


cm_log.ClearLog;

Задание предназначено для очистки системного лога.


profile_pkg.check_profile;

Задание предназначено для управления профилями доступа абонентов.