Использование adp-wrapper в биллинге
Выгрузка отчетов
В некоторых случаях бывает удобным иметь возможность получать отчеты с помощью скрипта, например, для их рассылки пользователям на e-mail. Для автоматизации таких задач нами предлагается скрипт-обертка adp_wrapper, обеспечивающий выполнение adp-скриптов без обращения к веб-серверу.
Пример:
В комплект входит скрипт telephony_report_ext_01.tcl для выгрузки форм расширенного отчета №1, который вызывается следующим образом:
Приведенный ниже скрипт построит отчеты за 10-й и 11-й месяцы 2009 года для всех активных абонентов системы (за исключением провайдеров). Аналогично могут быть написаны скрипты для получения любых других отчетов, также можно добавить рассылку их на e-mail и т.п.
telephony_report_ext_01.tcl
Upd.
После установки пакета mbg-telephony-report-* можно делать вот так:
Результаты будут сохранены в /var/www/billing-admin/www/share
В некоторых случаях бывает удобным иметь возможность получать отчеты с помощью скрипта, например, для их рассылки пользователям на 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
Comments