BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 22 июн 2025, 21:26

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
СообщениеДобавлено: 16 мар 2009, 11:30 
Доброго времени суток....

Занялся выгрузкой платежей из файла.
Использовал 1 шаблон выгрузки из текстового файла.

************************************************************

Пример 1.4. Пример шаблона 1

Формат строки в исходном файле (разделители полей - точка за запятой). Первым идет название договора, далее сумма платежа и комментарий. Даты платежа нет, в этом случае она равна датее реестра.
x0000;13.4;sfdsdfdsd

Описание шаблона в конфигурации. Идентификация клиента проводится по номеру договора.
payment.load.pattern.1=Шаблон1
payment.load.pattern.1.type=1
payment.load.pattern.1.encoding=Cp1251
payment.load.pattern.1.payment_type=2
payment.load.pattern.1.regexp=(\w+);([\d\.]+);(\w+)
payment.load.pattern.1.position_sum=2
payment.load.pattern.1.position_comment=3
payment.load.pattern.1.search.1.type=contract
payment.load.pattern.1.search.1.pos=1
# 1 - eq, 2 - LIKE, 3 -REGEXP
payment.load.pattern.1.search.1.regime=1

************************************************************

В конфигурации прописал все что нужно, по крайней мере что указано в доках.

************************************************************

########################
# опции шаблона загрузки платежей #
########################
payment.load.pattern.1=Шаблон1
payment.load.pattern.1.type=1
payment.load.pattern.1.encoding=Cp1251
payment.load.pattern.1.payment_type=9
payment.load.pattern.1.regexp=(\w+);([\d\.]+);([а-яА-я \w]+)
payment.load.pattern.1.position_sum=2
payment.load.pattern.1.position_comment=3
payment.load.pattern.1.search.1.type=contract
payment.load.pattern.1.search.1.pos=1
# 1 - eq, 2 - LIKE, 3 -REGEXP
payment.load.pattern.1.search.1.regime=1

************************************************************

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

Ниже выкладываю 2 скриншота. Один скрин ошибки при загрузке, второй скрин текстового файйла.

В чем ощшибка и где ее искать.

Заранее спасибо!!!!


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2009, 12:54 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
может ошибка здесь:
Код:
ООО "Рога и Копыта"
    ^             ^
т.к Ваш регексп не учитывает кавычки в комментарии ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2009, 13:48 
Нет, ошибка е там .
Создавал пальцами текстовый файлик, согласно документации, таже самая ошибка


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2009, 16:14 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
snowman78 писал(а):
Нет, ошибка е там .
внимательно посмотрел еще раз и думаю что ошибка тут:
Код:
payment.load.pattern.1.regexp=(\w+);([\d\.]+);(\w+)
почему? как Вы думаете во 2-й и 3-й строчках у Вас есть десятичный разделитель? нет, его нету, т.е. 500 никогда не попадет под регексп [\d\.]+ т.к. такой регексп требует точку! поправьте регексп хотя бы так:
Код:
(\d+\.?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2009, 17:17 
Попробовал сделать как предложили.....
Получилось ....

payment.load.pattern.1.regexp=(\w+);(\d+\.?);([а-яА-я \w]+);

Правда немного не понял, какую функцию тут выполняет "?".....?

Итог не заставил себя долго ждать...... в ответ я получил "
=> строка не совпала с шаблоном ".

Сдается мне, сто с regexp все нормально. Что тут другое....... :(


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2009, 17:41 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
snowman78 писал(а):
Правда немного не понял, какую функцию тут выполняет "?".....?

знак вопроса означает "от нуля и до одного раза" ... попробуйте так:
Код:
(\d+\.?\d{0,2})


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 мар 2009, 18:18 
Самое смешное в том, что сейчас собрал файлик, точ в точь как указан в доках, по первому шаблону, полность перенс 1-шаблон в конфиг, попробовал загрузить, и ни фига!!!!! Вот это уже смешно!!!!! :lol:


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 15:03 
Продолжение темы с заходом на начало....


Перебрал в конфиге 2 шаблона 1 и 3:
Пример 1.4. Пример шаблона 1

Формат строки в исходном файле (разделители полей - точка за запятой). Первым идет название договора, далее сумма платежа и комментарий. Даты платежа нет, в этом случае она равна датее реестра.
x0000;13.4;sfdsdfdsd

Описание шаблона в конфигурации. Идентификация клиента проводится по номеру договора.
payment.load.pattern.1=Шаблон1
payment.load.pattern.1.type=1
payment.load.pattern.1.encoding=Cp1251
payment.load.pattern.1.payment_type=2
payment.load.pattern.1.regexp=(\w+);([\d\.]+);(\w+)
payment.load.pattern.1.position_sum=2
payment.load.pattern.1.position_comment=3
payment.load.pattern.1.search.1.type=contract
payment.load.pattern.1.search.1.pos=1
# 1 - eq, 2 - LIKE, 3 -REGEXP
payment.load.pattern.1.search.1.regime=1
Пример 1.6. Пример шаблона 3

Формат строки в исходном файле (разделители полей - точка с запятой). Первым идет номер договора, далее сумма, комментарий договора и дата платежа. Обратите внимание, что комментарий договора может быть указан не полностью, только фамилия.
x0000;13-4;Иванов ;04.07.2008

Описание шаблона в конфигурации. Идентификация клиента производится по номеру договора + началу ФИО.
payment.load.pattern.2=Шаблон2
payment.load.pattern.2.type=1
payment.load.pattern.2.encoding=Cp1251
payment.load.pattern.2.payment_type=2
payment.load.pattern.2.regexp=(\w+);([\d\,\.\s\-]+);([а-яА-Я\s]+);([\d\.]+)
payment.load.pattern.2.position_sum=2
# преобразование суммы к нужному виду
payment.load.pattern.2.summa.replace=\-=>.|\s=>
# дата платежа берется из файла
payment.load.pattern.2.position_date=4
payment.load.pattern.2.date_format=dd.MM.yyyy
payment.load.pattern.2.search.mode=and
payment.load.pattern.2.search.1.type=contract
payment.load.pattern.2.search.1.pos=1
payment.load.pattern.2.search.1.regime=1
payment.load.pattern.2.search.2.type=comment
payment.load.pattern.2.search.2.pos=3
payment.load.pattern.2.search.2.regime=2
payment.load.pattern.2.search.2.replace=\s*([а-яА-Я]+)\s*=>%$1%
#

Ниже выложил скрин своего конфига в наст. момент смотри "screen1"

В первом шаблоне добавил строки для колонки с датой
Во втором шаблоне переписал проверку коментариев и отказался от определения первой части проверки.
При таком конфиге выходят след. ошибки "screen2" -для 1-го шаблона "screen3" для второго шаблона

В итоге сами вопросы...

1. Почему в первом шаблоне при поиске делается подстановка "7846" ? - и соответственно договор не находится.
2. При втором шаблоне частично выгрузка проходит, но отваливаются абоненты у которых в коментах есть пробел в конце, у которых название ооо "ыы" "ыыыыы". Как поправить скрипт для таких имен?
3. Как во втором шаблоне отключить выборку по коментариям и сделать только по номеру договора исключительно, я попытался, но он все равно продолжает на них ссылатся...?
см "screen4" и "screen5"


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 15:04 
продолжение ....


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 16:01 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
1) Вы пробовали рестартовать сервер биллинга после смены конфига?
2) Я немного запутался. Давайте возьмем один шаблон платежа, одну строку из файла и какую вам выдает ошибку и я проверю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 16:19 
payment.load.pattern.2=1
payment.load.pattern.2.type=1
payment.load.pattern.2.encoding=Cp1251
payment.load.pattern.2.payment_type=9
payment.load.pattern.2.regexp=(\w+);([\d\,\.\s\-]+);([а-яА-Я0-9a-zA-Z\w\"\-\s]+);([\d\.]+)
payment.load.pattern.2.position_sum=2
# преобразование суммы к нужному виду
payment.load.pattern.2.summa.replace=\-=>.|\s=>
# дата платежа берется из файла
payment.load.pattern.2.position_date=4
payment.load.pattern.2.date_format=dd.MM.yyyy
#payment.load.pattern.2.search.mode=and
payment.load.pattern.2.search.1.type=contract
payment.load.pattern.2.search.1.pos=1
payment.load.pattern.2.search.1.regime=1
#payment.load.pattern.2.search.2.type=comment
#payment.load.pattern.2.search.2.pos=3
#payment.load.pattern.2.search.2.regime=1
#payment.load.pattern.2.search.2.replace=\s*([а-яА-Я]+)\s*=>%$1%
#пример почти рабочего скрипта (ошибается на пробеле в конце коментария
#(\w+);([\d\,\.\s\-]+);([а-яА-Я0-9a-zA-Z\w\"\-\s]+);([\d\.]+)


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 16:26 
317) П008362; 1445-04;ООО "КОМО";15.01.2009
=> договор не найден
поз. 1 искомое значение 008362 дата 15.01.2009

П008362; 1445-04;ООО "КОМО";15.01.2009


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 16:30 
(814) 00И9984; 850-00;Чилимкин Михаил Венидиктович;29.01.2009
=> договор не найден
поз. 1 искомое значение 00И9984 дата 29.01.2009

00И9984; 850-00;Чилимкин Михаил Венидиктович;29.01.2009


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 мар 2009, 16:33 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Проблемы оказались в системе конфигов 4.5, если пара ключ=значение была в конфигурации, а затем была удалена из конфигурации в памяти она не пропадает. Лечится рестартом сервера BGBillingServer, для 4.6 проблема не актуальна.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2010, 14:32 
Не в сети
Клиент

Зарегистрирован: 22 апр 2009, 13:59
Сообщения: 58
Откуда: Мурманск
Карма: 0
Имеем конфиг:
Код:
payment.load.pattern.1=Реестр платежей
payment.load.pattern.1.type=1
payment.load.pattern.1.encoding=Cp1251
payment.load.pattern.1.payment_type=40
payment.load.pattern.1.position_sum=3
payment.load.pattern.1.regexp=(\d{1,5});([\d\-]+);(\d+\.?\d{0,2});(.+)
payment.load.pattern.1.position_date=2
payment.load.pattern.1.date_format=yyyy-MM-dd
payment.load.pattern.1.search.mode=and
payment.load.pattern.1.search.1.type=cid
payment.load.pattern.1.search.1.pos=1
payment.load.pattern.1.search.1.regime=1

Содержимое реестра:
Код:
#7;2562.93
17037;2010-04-27;500.00;2
9755;2010-04-27;190.00;1
2723;2010-04-27;150.00;1
11070;2010-04-27;790.00;2
16308;2010-04-27;492.93;2
8941;2010-04-27;220.00;1
7800;2010-04-27;220.00;1

Результат загрузки:
Код:
(1) #7;2562.93 => пропуск
(2) 17037;2010-04-27;500.00;2  => договор не найден
   поз. 1 искомое значение 17037 дата 27.04.2010
(3) 9755;2010-04-27;190.00;1  => договор не найден
   поз. 1 искомое значение 9755 дата 27.04.2010
(4) 2723;2010-04-27;150.00;1  => договор не найден
   поз. 1 искомое значение 2723 дата 27.04.2010
(5) 11070;2010-04-27;790.00;2  => договор не найден
   поз. 1 искомое значение 11070 дата 27.04.2010
(6) 16308;2010-04-27;492.93;2  => договор не найден
   поз. 1 искомое значение 16308 дата 27.04.2010
(7) 8941;2010-04-27;220.00;1  => договор не найден
   поз. 1 искомое значение 8941 дата 27.04.2010
(8) 7800;2010-04-27;220.00;1  => договор не найден
   поз. 1 искомое значение 7800 дата 27.04.2010
Обработано строк => 8; из них комментариев => 1, ошибочных => 7, загружено => 0
Итого загружено платежей => 0
Время обработки: 0 d 00:00:04
Договоры с указанными кодами существуют.
Перезапуск сервера не влияет на результат.
Подскажите, пожалуйста, в чем может быть проблема?
--
Сервер вер. 4.6 сборка 672 от 24.03.2010 19:45:16


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2010, 17:45 
Не в сети
Клиент

Зарегистрирован: 22 апр 2009, 13:59
Сообщения: 58
Откуда: Мурманск
Карма: 0
Граждане, кто-нибудь загружает платежи?
Киньте, пожалуйста, рабочий конфиг и пример файла!
Благодарю всех отозвавшихся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 май 2010, 20:24 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
SafeAndSound писал(а):
Граждане, кто-нибудь загружает платежи?

загружает

SafeAndSound писал(а):
Киньте, пожалуйста, рабочий конфиг и пример файла!

у каждого свой конфиг и мой, как и чей либо еще, Вам наврядли подойдет ... Вы скажите что у Вас не получается и вместе решим эту проблему ;) от Вас надо образец файла и собсно поля которые Вы из него хотите получить ...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 май 2010, 18:18 
Не в сети
Клиент

Зарегистрирован: 22 апр 2009, 13:59
Сообщения: 58
Откуда: Мурманск
Карма: 0
Мой конфиг, пример файла и лог на предыдущей странице в этой теме, а также здесь


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.051s | 34 Queries | GZIP : On ]