Импорт пользователей через URFA, а где connect_date?

Технические вопросы по UTM 5.0
Ответить
Lord Kaho
Сообщения: 22
Зарегистрирован: Чт май 21, 2009 12:41

Импорт пользователей через URFA, а где connect_date?

Сообщение Lord Kaho »

Есть такой скрипт:

Код: Выделить всё

#!/bin/sh
#
#export C

while read LURL
do

URF_FULLNAME=`echo $LURL | cut -f3 -d ';'`
URF_PASSWORD=`echo $LURL | cut -f16 -d ';'`
URF_LOGIN=`echo $LURL | cut -f2 -d ';'`
URF_URL="0"
URF_SDATE=`echo $LURL | cut -f14 -d ';'`
URF_DATE=`date -j -f "%d.%m.%Y" $URF_SDATE "+%s"`
URF_ADDR=`echo $LURL | cut -f9 -d ';'`
URF_TEL=`echo $LURL | cut -f11 -d ';'`
URF_BALANCE=`echo $LURL | cut -f15 -d ';'`
URF_PE=`echo $LURL | cut -f10 -d ';'`
URF_FLOOR=`echo $URF_PE | cut -f2 -d '/'`
URF_ENTANCE=`echo $URF_PE | cut -f1 -d '/'`
URF_MOB=`echo $LURL | cut -f12 -d ';'`
URF_F1=`echo $LURL | cut -f4 -d ';'`
URF_F2=`echo $LURL | cut -f5 -d ';'`
URF_F3=`echo $LURL | cut -f6 -d ';'`
URF_F4=`echo $LURL | cut -f7 -d ';'`

URF_FLAT="$URF_F1 $URF_F2, $URF_F3, $URF_F4"
#echo $URF_DATE
if [ -n "$URF_LOGIN" ]
then
USER_ID=`/netup/utm5/bin/utm5_urfaclient -a add_user_p -passport "$URF_FLAT" -advance_payment "1" -mob_tel "$URF_MOB" -floor "$URF_FLOOR" -entrance "$URF_ENTANCE" -comments "test" -full_name "$URF_FULLNAME" -balance "$URF_BALANCE" -login "$URF_LOGIN" -password $URF_PASSWORD -is_juridical $URF_URL -connect_date $URF_DATE -act_address "$URF_ADDR" -home_tel "$URF_TEL"`
ID=`echo "$USER_ID" | grep user_id | cut -f9 -d" " | cut -f2 -d= | cut -f1 -d/ | cut -f2 -d'"'`
echo "$ID"
/netup/utm5/bin/utm5_urfaclient -a link_user_group -group_id 202 -user_id $ID
else
    echo "Ошибка, нет номера договора - NAME = $NAME, LOGIN = $LOGIN DATE = $DATE ADDR = $ADDR TEL = $TEL INN = $INN KPP = $KPP RASCHET = $RASCHET" >> error.log
fi
done < $1

Работает все, кроме connect_date. Может кто подскажет с фига?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

неверный формат даты? Ну или как вариант - дата должна быть представлена числом(unix timestamp). В общем, чтите доку.

bear
Сообщения: 498
Зарегистрирован: Чт ноя 15, 2007 11:53

Сообщение bear »

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

и вообще строчка URF_DATE=`date -j -f "%d.%m.%Y" $URF_SDATE "+%s"` меня както сильно смущает

Lord Kaho
Сообщения: 22
Зарегистрирован: Чт май 21, 2009 12:41

Сообщение Lord Kaho »

Правим так:

Код: Выделить всё

URF_FLAT="$URF_F1 $URF_F2, $URF_F3, $URF_F4"
echo $URF_DATE
if &#91; -n "$URF_LOGIN" &#93;
then
#USER_ID=`/netup/utm5/bin/utm5_urfaclient -l sa -P preater -a add_user_p -passport "$URF_FLAT" -advance_payment "1" -mob_tel "$URF_MOB" -floor "$URF_FLOOR" -entrance "$URF_ENTANCE" -comments "test" -full_nam
#ID=`echo "$USER_ID" | grep user_id | cut -f9 -d" " | cut -f2 -d= | cut -f1 -d/ | cut -f2 -d'"'`
#echo "$ID"
#/netup/utm5/bin/utm5_urfaclient -a link_user_group -group_id 202 -user_id $ID
else
    echo "Ошибка, нет номера договора - NAME = $NAME, LOGIN = $LOGIN DATE = $DATE ADDR = $ADDR TEL = $TEL INN = $INN KPP = $KPP RASCHET = $RASCHET" >> error.log
fi
done < $1
Вывод:

stat# /root/inp.sh /root/work31.txt
1191219621
1191219621
1191219621
1191219621
1191219621
1191219621
1191219621
1191219621


Так что все верно... должно быть 01.10.2007, но в базу импортируется 01.01.1970

Lord Kaho
Сообщения: 22
Зарегистрирован: Чт май 21, 2009 12:41

Сообщение Lord Kaho »

bear писал(а): и вообще строчка URF_DATE=`date -j -f "%d.%m.%Y" $URF_SDATE "+%s"` меня както сильно смущает
Это тут может смущать? Преобразование формата из dd.mm.YYYY в timestamp, стандартная юниксовая команда.

bear
Сообщения: 498
Зарегистрирован: Чт ноя 15, 2007 11:53

Сообщение bear »

Lord Kaho писал(а):
bear писал(а): и вообще строчка URF_DATE=`date -j -f "%d.%m.%Y" $URF_SDATE "+%s"` меня както сильно смущает
Это тут может смущать? Преобразование формата из dd.mm.YYYY в timestamp, стандартная юниксовая команда.
эээ, меня вот смутил ключ -j что он делает? в манах что то я не нашел...

Lord Kaho
Сообщения: 22
Зарегистрирован: Чт май 21, 2009 12:41

Сообщение Lord Kaho »

bear писал(а): эээ, меня вот смутил ключ -j что он делает? в манах что то я не нашел...
-j Do not try to set the date. This allows you to use the -f flag
in addition to the + option to convert one date format to
another.

Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »

а чо в файле add_user_p.xml ?

bob
Сообщения: 20
Зарегистрирован: Сб дек 01, 2007 09:06

Сообщение bob »

Подскажите кому удалось скормить урфе -connect_date перебрал все коьбинации даты смотрю в мускуле стоит (видимо по умолчанию) "0". Пробую подставлять -connect_date "1262304000" это для мускуля 01.01.2010. Результат тот-же. -connect_date "XXXXXXXXX" подскажите что ей надо вместо ХХХХХ

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

bob писал(а):Подскажите кому удалось скормить урфе -connect_date перебрал все коьбинации даты смотрю в мускуле стоит (видимо по умолчанию) "0". Пробую подставлять -connect_date "1262304000" это для мускуля 01.01.2010. Результат тот-же. -connect_date "XXXXXXXXX" подскажите что ей надо вместо ХХХХХ
так не подойдет? <set dst="connect_date" value=now()/>

bob
Сообщения: 20
Зарегистрирован: Сб дек 01, 2007 09:06

Сообщение bob »

Magnum72 писал(а):
bob писал(а):Подскажите кому удалось скормить урфе -connect_date перебрал все коьбинации даты смотрю в мускуле стоит (видимо по умолчанию) "0". Пробую подставлять -connect_date "1262304000" это для мускуля 01.01.2010. Результат тот-же. -connect_date "XXXXXXXXX" подскажите что ей надо вместо ХХХХХ
так не подойдет? <set dst="connect_date" value=now()/>
Нет нужна дата установленная вручную не сегодняшняя. Хотя-бы какую нибудь запись кроме 01.01.1970 (это по умолчанию)

shoorickello
Сообщения: 134
Зарегистрирован: Ср июн 29, 2005 13:08

Сообщение shoorickello »

+1, connect_date не работает, просто игнорируется ядром.

Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Сообщение Voronok »

В других функциях проглатывает дату в формате UNIX TIMESTAMP, а в функции add_user - при любом значении получается 0.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

bob писал(а):Нет нужна дата установленная вручную не сегодняшняя. Хотя-бы какую нибудь запись кроме 01.01.1970 (это по умолчанию)
При создании пользователя значение connect_date игнорируется.
После создания необходимо выполнить повторный вызов $urfa->rpcf_add_user($user,$parameters);

Код: Выделить всё

  $user = $urfa->rpcf_get_userinfo&#40;$user_id&#41;;

  $user&#91;'user_id'&#93; = $user_id;
  ...
  $user&#91;'connect_date'&#93; = strtotime&#40;$connect_date&#41;;
  ...
  

  $user = $urfa->rpcf_add_user&#40;$user,$parameters&#41;;

Ответить