четверг, 26 ноября 2009 г.

Использование adp-wrapper в биллинге

Выгрузка отчетов
В некоторых случаях бывает удобным иметь возможность получать отчеты с помощью скрипта, например, для их рассылки пользователям на e-mail. Для автоматизации таких задач нами предлагается скрипт-обертка adp_wrapper, обеспечивающий выполнение adp-скриптов без обращения к веб-серверу.

Пример:

./adp_wrapper.tcl $MBGROOT/www/ext/report_ext_01/report_html_all.adp date $date user_id $id \
> $dir/${login}_all.html 2>/dev/null


В комплект входит скрипт telephony_report_ext_01.tcl для выгрузки форм расширенного отчета №1, который вызывается следующим образом:

MBGROOT=/var/www/billing2 ./telephony_report_ext_01.tcl 2009-10-01 2009-11-01


Приведенный ниже скрипт построит отчеты за 10-й и 11-й месяцы 2009 года для всех активных абонентов системы (за исключением провайдеров). Аналогично могут быть написаны скрипты для получения любых других отчетов, также можно добавить рассылку их на e-mail и т.п.

telephony_report_ext_01.tcl

#!/usr/bin/tclsh8.5
# start as
# AOLROOT=/var/www/billing2 ./telephony_report_ext_01.tcl
package require sqlite3

if {[info exists env(AOLROOT)] == 0} {
puts stderr {Not defined environment variable AOLROOT}
exit
}

sqlite3 db :memory:
db restore [file join $env(AOLROOT) res dataset work].db
db timeout 2000
db cache size 100

set date [db onecolumn {select date('now','start of month','-1 month')}]
set dir $env(AOLROOT)/www/share/$date
catch {file delete -force $dir}
catch {file mkdir $dir}
set user_id 229

db eval {SELECT id, login FROM view_user WHERE type != 'system' AND is_provider = 0
AND delete_date IS NULL ORDER BY name ASC} {
exec ./adp_wrapper.tcl $env(AOLROOT)/www/ext/report_ext_01/report_html_all.adp \
date
$date user_id $id > $dir/${login}_all.html 2>/dev/null
exec ./adp_wrapper.tcl $env(AOLROOT)/www/ext/report_ext_01/report_html_c.adp \
date $date user_id $id > $dir/${login}_c.html 2>/dev/null
exec ./adp_wrapper.tcl $env(AOLROOT)/www/ext/report_ext_01/report_html_cd.adp \
date $date user_id $id > $dir/${login}_cd.html 2>/dev/null
}
db close


Upd.
После установки пакета mbg-telephony-report-* можно делать вот так:

MBGROOT=/var/www/billing-admin telephony_report_ext_01 2009-12-01

Результаты будут сохранены в /var/www/billing-admin/www/share

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru