Автоматизированная обработка текстовых файлов тарификации цифровой УПАТС «МиниКом DX-500c» на рабочем месте ТОТС с помощью встроенного в пакет MS-Office VBA-инструментария
Автор: Зенуков Богдан Вадимович, Царьков Виталий Викторович
Журнал: Спецтехника и связь @st-s
Статья в выпуске: 3, 2013 года.
Бесплатный доступ
Приведен обзор основного метода обработки файлов тарификации на ПЭВМ РМО под управлением операционной системы (ОС) Open_DOS цифровой УПАТС «МиниКом DX-500C». Показано, что на сегодняшний день наиболее подходящим методом обработки файлов тарификации, является метод автоматизированной обработки. Сделан вывод о том, что ближайшая тенденция развития такого метода, будет реализована в сертифицированной биллинговой системе DX-500C под управлением ОС Windows.
Файлы тарификации, автоматизированная обработка, биллинговая система, цифровая упатс "миником dx-500c", операционная система
Короткий адрес: https://sciup.org/14967162
IDR: 14967162
Текст научной статьи Автоматизированная обработка текстовых файлов тарификации цифровой УПАТС «МиниКом DX-500c» на рабочем месте ТОТС с помощью встроенного в пакет MS-Office VBA-инструментария
О сновным методом обработки файлов тарификации цифровой УПАТС «МиниКом DX-500C» на ПЭВМ РМО под управлением операционной системы (ОС) Open_ DOS является метод поочередного просмотра/копирова-ния/удаления файла тарификации с помощью встроенного менеджера файлов «Alt+F» терминальной программы контроля и управления (ТП) [2, 7]. Это связано с тем, что встроенный тарификатор DX-500С «F-5» может отображать информацию только за текущие сутки 12-часового сеанса, и не способен сортировать и проводить выборку необходимой информации [3, 6].
Зато – это позволяют делать программы-тарификаторы, версии которых предназначены для коммерческих нужд IT-рынка. Сегодня их огромное множество, перечислим лишь самые популярные среди технических администраторов АТС: Phonekeeper3.0, Billing PhoneKeeper System, Phone Xpress, WinTariff, PhoneTax2.0, ATS_Tarifficator. Все они написаны и адаптированы под самые распространенные АТС таких производителей, как Siemens, Awaya, Panasonic, LG, Multicom, Samsung, Ericsson, Nec, Alcatel, Macrotel и Mercator, и стоят недешево. С DX-500С вышеприведенные тарификаторы плохо интегрируются и могут работать на ПЭВМ РМО и ПЭВМ ТОТС с ОС не ниже Windows XP.
Хочется отметить, что новый файл тарификации DX-500C создается каждые сутки в 00ч.00мин. в текстовом формате с именем, например, «20103_00.txt». При просмотре в нем данных по конкретному абоненту (факсу, АОНу) за период, превышающий несколько суток, требуется одновременный просмотр и обработка уже нескольких таких файлов. А описанный выше метод работы в ТП не позволяет сразу проводить такой просмотр и обработку, способствует увеличению времени сбора информации и возможности частичной ее утери из-за человеческого фактора:
-
♦ в ночное и утреннее время — усталость, невнимательность;
-
♦ в дневное — ограниченная возможность информационного и программного обеспечения ТП, что приводит к ошибочной и неполной выдаче оператором требуемой информации.
Частично достоверность результата повышается, если переносить текстовые файлы тарификации с РМО на ПЭВМ ТОТС и осуществлять на ней необходимую обработку с помощью установленного Excel из состава пакета MS_Office. Но оперативность выполнения задания при этом остается на низком уровне, так как штатными средствами Excel в этом случае одновременно можно обрабатывать не больше двух файлов, и для анализа данных за неделю, месяц – это не подходит.
Поэтому для увеличения производительности мы воспользуемся встроенным в Excel языком объектно-ориентированного программирования Visual Basic for Application (VBA) [4], и разработаем свой автоматизированный метод обработки, который будет обрабатывать все тарификационные файлы формата «20103_00» с расширением *.txt. По сути, данный метод и будет являться усеченной версией коммерческой программы-тарификатора, которая у нас работает на ПЭВМ ТОТС, обрабатывает ранее перенесенные файлы-тарификации с ПЭВМ РМО DX-500C под управлением Open_DOS и не предназначена для обработки формализованных текстовых файлов биллинга с расширением *.blg, РМО DX-500C под управлением ОС Windows.
Итак, начнем:
-
1 В Excel активируем «Режим конструктора». Для этого заходим в «Параметры Excel» через «Кнопка Office», и включаем флаг «Показывать вкладку «Разработчик (Developer)» на ленте».
-
2 Разместим на «Лист1» нижеприведенную таблицу ( рис. 1 ) для обработки данных файлов тарификации, и кнопку «выбрать директорию», через меню «Разработчик/ Вставить/ Элементы ActiveX». В каждом столбце, кроме «Прочитано
А
В
С
п
Е
F
G
н
1
J
К
1
Учетный № записи об абоненте
Адрес прописки учетного № записи (№№ кластера и порта)
№
исходящего абонента своей АТС, который кому-то звонит
*
№
входящего абонента своей АТС, которому кто-то звонит
№ абонента, которому звонит абонент одной подсети
Адрес регистрации звонка (№№ кластера и порта)
В
Дата звонка
Е
Время звонка
-
Длительность разговора
Е
Прочитано ПОГ-файлов
2
0
3
4
5
6
7
Выбрать директорию
8
Рис. 1
Рис. 2
ЛОГ-файлов», активируем фильтр сортировки через меню «Сортировка и фильтр».
-
3 На «Лист2» и «Лист3» разместим таблицы ( рис. 2 ) для подсчета данных тарификации:
-
4 Запускаем Visual Basic Editor (VBE) с помощью клавиш
либо через вкладку «Разработчик»: Developer/ Code/Visual Basic. -
5 В VBAProject (Книга1) правой кнопкой мыши на ярлыке листа (Лист1) открываем модуль кода (View Code). И заносим следующий VBA-код:
Private Sub CommandButton1_Click()
On Error Resume Next dlgAnswer = Application. Dialogs(xlDialogOpen).Show Начало
End Sub
-
6 Правой кнопкой мыши на ярлыке листа (Лист1) открываем проект программного модуля (Module) через вкладку Insert. И заносим следующий VBA-код:
Sub Начало()
Dim m As String, a As Variant
a(0) = "$A$3"
m = Join(a, ":")
'Почистим рабочую область и отформатируем как текстовые поля
With Range(m)
.ClearContents
.NumberFormat = "@"
.AutoFilter 'Убираем фильтр
End With
ПоКолонкам 'Сольем все логи в рабочую область ФорматЗаголовка 'Отформатируем заголовки рабочего поля
'Закрепим окно, чтоб заголовки не прокручивались и _по-ставим фильтр
With ActiveWindow
.FreezePanes = False
.Split = False
End With
With ActiveWindow
.SplitColumn = 0
.SplitRow = 2
.FreezePanes = True
End With
Selection.AutoFilter 'Ставим фильтр
Range("C2").Select
End Sub
Sub ПоКолонкам()
' Переписывает содержимое ЛОГ-файлов в рабочую область _
Лист1 с разбивкой по колонкам
Dim MyPath As String, TextLine As String, _ a As String, Check As String, _
Counter As Integer, i As Integer
'ChDir MyPath
Counter = 0
a = Dir("*.txt") 'Фильтруем в директории ЛОГ-фай-лы (с расширением txt)
If a = "" Then
MyPath = CurDir
ЛОГ-файлов")
Cells(2, 10) = Counter
'Worksheets("Лист1").Cells(2, 10) =
Counter
Exit Sub
End If i = 3 'Рабочая область начинается с 3 строки
Do
Do While Not EOF(1)
Line Input #1, TextLine
With Worksheets("Лист1")
Check = Mid(TextLine, 1, 6): .Cells(i, 1) = Check
Check = Mid(TextLine, 7, 8): .Cells(i, 2) = Check
Check = Mid(TextLine, 16, 6): .Cells(i, 3) =
Check
Check = Mid(TextLine, 25, 5): .Cells(i, 4) =
Check
Check = Mid(TextLine, 34, 5): .Cells(i, 5) =
Check
Check = Mid(TextLine, 55, 8): .Cells(i, 6)
= Check
Check = Mid(TextLine, 64, 8):
.Cells(i, 7) = Check
Check = Mid(TextLine, 73, 5):
.Cells(i, 8) = Check
Check = Mid(TextLine, 79):
.Cells(i, 9) = Check
End With i = i + 1
Loop
Close #1
Counter = Counter + 1
a = Dir 'Выбираем следующий ЛОГ-файл
Worksheets("Лист1").Cells(2, 10) = Counter
Loop Until a = ""
End Sub
Sub ФорматЗаголовка()
With Rows("1:1")
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Сетка
End Sub

Sub Сетка()
Range("A1:I2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub
Function Директорий(MyPath As String) As String
'Если каталог содержит имена файлов, то возвращает строку: _ число файлов и имена этих файлов, разделенных символом-разделителем, _ иначе – пустую строку "".
Const Разделитель = "| "
Dim MyName As String, i As Integer
Exit Function
End If
MyName = Dir(MyPath, vbDirectory) ' Получение первого вхождения
Do While MyName <> "" ' Начало цикла_____________
' Игнорировать текущий директорий и охватывающий каталог
If MyName <> "." And MyName <> ".." Then 'Побитовое сравнение
<> vbDirectory Then
End If '
End If
MyName = Dir ' Получение следующего элемента
Loop
End Function
Все, программа-тарификатор для автоматизированной обработки текстовых файлов тарификации РМО на ПЭВМ
ТОТС готова ( рис. 3 )

Рис. 2
Выводы
-
1 Реализован метод автоматизированной обработки текстовых файлов тарификации на РМО под ОС Open_DOS УПАТС DX-500C с помощью VBA-инструментария, встроенного в пакет MS-Office ПЭВМ ТОТС.
-
2 Ближайшая тенденция развития такого метода будет реализована в сертифицированной штатной биллинговой системе тарификации DX-TAXCOM-500Net (артикул ПО № 19602.4) для ПЭВМ РМО под ОС Windows-7[5] ■
Список литературы Автоматизированная обработка текстовых файлов тарификации цифровой УПАТС «МиниКом DX-500c» на рабочем месте ТОТС с помощью встроенного в пакет MS-Office VBA-инструментария
- ЕКВМ.665110.9-009РЭ-УД. Руководство по эксплуатации. Часть 1. -М., 2011. -С. 6, 7.
- ЕКВМ.665110.9-009РП-УД. Руководство пользователя. -М., 2011. -С. 35, 38, 39.
- ЕКВМ.665110.9-009РЭ1-УД. Руководство по эксплуатации. Часть 2 -М., 2011. -С. 129 -134.
- Джон Уокенбах. Microsoft Excel 2010. Профессиональное программирование на VBA -М., 2011. -С. 771 -813.
- Форум связистов на РАПС. http://raps.edu.ru/forum/index.php
- ЕКВМ.665110.9-009РЭ1-ЛУ. Руководство по эксплуатации. Часть 2. -М., 2013. -С. 118.
- ЕКВМ.468313.015РЭ, руководство по эксплуатации, часть 2. -М., 2013. -С. 30.