From the to-do list: Отчет для мегафона по дилерам
❏ Сделать автоматическую синхронизацию баз
(Alexey Bychkov)
Comments
Андрей Буганов on February 26, 2014:
Денис сказал что подобное делали для сбербанка весной или летом судя по всему. Надо с easydata выгружать анкеты и загружать их в zoho Можно прям этот же сервис переделать (который был для сбера). Вынести или в конфиг или на страницу все параметры для настройки обмена. Дать мне ссылку на него и доступ
Alexey Bychkov on February 26, 2014:
Андрей, желательно всё-таки больше информации по этому таску. Честно говоря, не можем найти и вспомнить, о чём речь. Необходимо четко понимать что, куда и как импортировать. Можешь описать задачу подробнее?
Андрей Буганов on February 26, 2014:
полная аналогия с http://chat.websumy.ru/inside/vtb24 у нас здесь по графику с easydata данные копируются в zoho. Мне нужен этот механзим и возможность настроить ссылки и логины/пароли. Ту ссылку что дал не меняйте ничего это потенциально рабочая система.
Alexey Bychkov on February 26, 2014:
а я вот ещё что нашёл...
У нас с вами была такая задача: "автоматизация обмена doforms - zoho"
http://chat.websumy.ru/inside/vtb24 - это задача ""Оценка" для ВТБ24" от октября 2013. Вижу по ней полный лог и всё прочее. 4 месяца назад закрыли.
Андрей Буганов on February 26, 2014:
сделать копию оставить только функционал экспорта записей в zoho по крону добавить поля: ссылка на API doForms ID анкеты и пароль к ней (возможность ввести несколько) название БД в zoho данные для авторизации в zoho название таблицы куда выгружать данные галочка включения/отключения сервиса кнопка сохранить вывод времени и даты последнего успешного обмена данными
Данные при каждом экспорте в zoho сначала удаляем, потом заливаем новые Проверку наличия новых данных делать каждые 5 минут Если есть новые анкеты в foDorms - выгрузка в zoho
Alexey Bychkov on February 26, 2014:
Андрей, несколько вопросов/уточнений: 1. "Данные при каждом экспорте в zoho сначала удаляем, потом заливаем новые" - заливать только новые или старые + новые? 1.1. В связи с медленной работой doForms (запрос всех данных по анкетам) запрос и перезапись всех данных будет очень долго выполняться. Как вы относитесь к варианту добавления только новых записей с doForms? 2. "ID анкеты и пароль к ней" - скорее всего имеется ввиду WebService ID и пароль к нему. Если не было изменений в doForms API — то доступ осуществляется через веб-сервисы. Или что-то изменилось?
3. Замечание: VTB24 экспортирует данные с SurveyGizmo, а не EasyData. Это означает что необходимо все делать практически с нуля, а не просто скопировать.
Андрей Буганов on February 27, 2014:
Алексей нам нужен этот сервис сегодня и крайне важен. 1. Старые+новые 2. Есть риск что анкету отредактировали на стороне doForms, на тогда оставить еще ручной механизм полного экспорта и тогда можно сделать только добавление новых 3. Да, ты все верное написал, изменений нет 4. Все равно, сервис нужен, у нас горят два очень серьезных потенциальных клиента
Кстати теперь нам это надо не только для мегафона :) Поэтому надо оставить список клиентов при открытии сервиса, в списке только название клиента и дата добавления, при клике по названию переход на страницу настроек по клиенту (те поля что описывал вчера)
Alexey Bychkov on February 27, 2014:
Андрей, задачу понял, ответы ясны, бросил сюда все силы, работаем, постараемся максимально быстро. Но по срокам сразу говорю - работы здесь примерно на 2 дня, не меньше. И то, при условии, что doForms не будет глючить, как обычно.
Андрей Буганов on February 27, 2014:
Алексей еще добавлю, при иморте zoho автоматически устанавливает полям типы, для даты формат надо указать принудительно, иначе у меня как текст определяло, маска даты: MM/dd/yyyy HH:mm:ss z
Слушай, а что произойдет если в easydata добавится еще одна колонка уже после первого импорта когда таблица будет создана?
Alexey Bychkov on February 27, 2014:
Насчёт вопроса - пока не пробовали - проверим и дам ответ.
Судя по всему, у нас здесь опять будет проблема с doForms: нет метода, который бы доставал все записи. Единственная альтернатива (хотя это очень плохой вариант) - использовать метод getRecordKeyByDateRange, который достает уникальные ключи записей, по определенному промежутку времени, а потом методом getDataByRecordKey4 достать всю информацию, по каждому ключу. Почему этот вариант плохой? Будет делаться n+1 запросов к doforms, где n - количество записей (анкет от агентов). То есть этот вариант нестабилен, долгий (в плане выполнения скрипта).
Но это пока предварительно в теории. Т.к. это пока единственный вариант - ничего не остаётся кроме как использовать его. Попробуем и тогда будем точно знать.
Андрей Буганов on February 28, 2014:
что за метод доставания всех записей? там же есть метод получения содержимого всех анкет, мы делали уже
Андрей Буганов on February 28, 2014:
для смс информирования мы получаем содержимое анкет что-бы сделать рассылку по смс
Alexey Bychkov on February 28, 2014:
Алексей еще добавлю, при иморте zoho автоматически устанавливает полям типы, для даты формат надо указать принудительно, иначе у меня как текст определяло, маска даты: MM/dd/yyyy HH:mm:ss z
При импорте нет возможности указать тип поля, как вариант это только указывать дату в правильном формате, чтобы Zoho автоматически его распознал.
Слушай, а что произойдет если в easydata добавится еще одна колонка уже после первого импорта когда таблица будет создана?
Судя по всему, в конец таблицы добавляется эта колонка ( у всех предыдущих записей будет постое поле)
что за метод доставания всех записей? там же есть метод получения содержимого всех анкет, мы делали уже для смс информирования мы получаем содержимое анкет что-бы сделать рассылку по смс
да, все верно, но там используется метод getunreaddata, который возвращает непрочитанные данные и отмечает их как прочитанные.
в следующий раз эти данные уже не возвращаются.
данный метод для нас не подходит, поэтому только n+1 (этот же вариант подтвердил саппорт doForms, как единственный).
В целом ситуация по этой задаче - работаем, опять были подводные камни, но разобрались. Возможно за 3,5 часа доделаем, но, скорее всего, не хватит времени на проверку/тестирование и выкладывание на сервер. Поэтому, скорее всего, конечный результат будет только в понедельник. В конце рабочего дня отпишу подробнее ситуацию по этой задаче.
Alexey Bychkov on February 28, 2014:
Андрей, на текущий момент ситуация такая:
Готовность серверной части ~95%, осталось разобраться с ответами api doforms. Сейчас с этим есть проблемы. В понедельник, думаю, решим эти вопросы и выложим всё на сервер для тестов и проверок.
вероятно, вы не создали базу данных. ее нужно создавать вручную в zoho. таблицы создаются автоматически.
Андрей Буганов on March 3, 2014:
база была на русском, переименовал в test1 - все равно не работает
Alexey Bychkov on March 3, 2014:
зашли в редактирование учетной записи экспорта, нажимаем "Сохранить" - получаем "такого веб-сервера не существует", значит - похоже, что при создании базы введены не корректные данные.
Alexey Bychkov on March 3, 2014:
кстати, Андрей, а вы на easydata или doforms создавали веб-сервис? нужно - на easydata. если на doForms - то необходимо выносить еще один параметр, чтобы можно было менять.
Андрей Буганов on March 4, 2014:
а по какой ссылке соединяетесь сейчас?
Андрей Буганов on March 4, 2014:
Алексей, у меня крон не срабатывает Вы добавили учетную запись, я несколько раз перешел по ссылке на крон, при этом авторизован под админом, и дата последней выгрузки так и осталось 3-е число
авторизовался там открыл ссылку крона, обновил страницу несколько раз, время последнего обмена не изменилась
Андрей Буганов on March 4, 2014:
сделайте кнопку ручной выгрузки в учетных записях, так будет проще всего, она все равно нужна
Alexey Bychkov on March 4, 2014:
а по какой ссылке соединяетесь сейчас?
easydata
открыл ссылку крона, обновил страницу несколько раз, время последнего обмена не изменилась
дата последней выгрузки изменяется, только если было что-то экспортировано. В данном случае не было никаких изменений (редактирование или добавление), поэтому и дата осталась неизменной. Или нужно дату каждый раз обновлять?
Андрей Буганов on March 4, 2014:
ссылка одна на все сервисы дату лучше каждый раз обновлять
то есть с одной формы вы хотите делать выгрузку в разные таблицы вопреки медленной работе doForms?
Alexey Bychkov on March 4, 2014:
По поводу ручной выгрузки: выгрузка может повлиять на работу задачи крона и во время этого могут произойти непредсказуемые действия в zoho, как дублирование данных и их потеря. Как результат был сделан крон, который делает сам всю работу, а из админки выставляются маркеры (если надо сделать полную выгрузку).
Если это критично - будем думать как ее реализовать, но это не простая задача.
В данном случае вас запутал 1 момент. Вчера была создана учетная запись экспорта и сразу же запущен экспорт по ней. В результате выставилось время выгрузки. После этого вы изменили данные zoho и запустили крон еще раз, но с момента последнего экспорта не произошло никаких изменений в doForms (записи не редактировались и не добавлялись), поэтому ничего и не происходило. Я поставил галочку «Полный экспорт» в админке и все выгрузилось хорошо (можете проверить у себя в zoho). Чтобы избежать подобной ситуации в дальнейшем можно сделать следующее: при изменении таблицы в zoho — сбрасывать дату последнего экспорта, как-будто эта учетная запись только создана или автоматически ставить галочку «Полный экспорт», чтобы первый раз произошла полная выгрузка данных, а дальше отслеживались обновления.
Андрей Буганов on March 4, 2014:
...Если это критично - будем думать как ее реализовать, но это не простая задача... - тогда не делаем
Alexey Bychkov on March 4, 2014:
Ок, обновление даты сделали.
Андрей Буганов on March 4, 2014:
я понял в чем дело, обрезается WS_ID по длине. Вставляю unilever1$$02282014063435$$Published$$02282014131459 Сохраняю а там unilever1$$02282014063435$$Published$$022820141314 т.е. 2 цифры последних обрезались
Alexey Bychkov on March 4, 2014:
решили эту проблему
Андрей Буганов on March 4, 2014:
работает, поправьте сортировку и сейчас еще задачу по этому проекту подкину
Comments
Андрей Буганов on February 26, 2014:
Надо с easydata выгружать анкеты и загружать их в zoho
Можно прям этот же сервис переделать (который был для сбера).
Вынести или в конфиг или на страницу все параметры для настройки обмена.
Дать мне ссылку на него и доступ
Alexey Bychkov on February 26, 2014:
Честно говоря, не можем найти и вспомнить, о чём речь.
Необходимо четко понимать что, куда и как импортировать.
Можешь описать задачу подробнее?
Андрей Буганов on February 26, 2014:
Мне нужен этот механзим и возможность настроить ссылки и логины/пароли.
Ту ссылку что дал не меняйте ничего это потенциально рабочая система.
Alexey Bychkov on February 26, 2014:
У нас с вами была такая задача: "автоматизация обмена doforms - zoho"
И мы делали:
http://chat.websumy.ru/zoho_update/
login/password
admin/admin
(выбрали файл и он загружается на zoho)
это не то?
Андрей Буганов on February 26, 2014:
даже не знаю что это могло быть
Но нам надо без файла в любом случае
Alexey Bychkov on February 26, 2014:
Alexey Bychkov on February 26, 2014:
Андрей Буганов on February 26, 2014:
оставить только функционал экспорта записей в zoho по крону
добавить поля:
ссылка на API doForms
ID анкеты и пароль к ней (возможность ввести несколько)
название БД в zoho
данные для авторизации в zoho
название таблицы куда выгружать данные
галочка включения/отключения сервиса
кнопка сохранить
вывод времени и даты последнего успешного обмена данными
Данные при каждом экспорте в zoho сначала удаляем, потом заливаем новые
Проверку наличия новых данных делать каждые 5 минут
Если есть новые анкеты в foDorms - выгрузка в zoho
Alexey Bychkov on February 26, 2014:
Андрей, несколько вопросов/уточнений:
1. "Данные при каждом экспорте в zoho сначала удаляем, потом заливаем новые" - заливать только новые или старые + новые?
1.1. В связи с медленной работой doForms (запрос всех данных по анкетам) запрос и перезапись всех данных будет очень долго выполняться. Как вы относитесь к варианту добавления только новых записей с doForms?
2. "ID анкеты и пароль к ней" - скорее всего имеется ввиду WebService ID и пароль к нему. Если не было изменений в doForms API — то доступ осуществляется через веб-сервисы. Или что-то изменилось?
3. Замечание: VTB24 экспортирует данные с SurveyGizmo, а не EasyData. Это означает что необходимо все делать практически с нуля, а не просто скопировать.
Андрей Буганов on February 27, 2014:
1. Старые+новые
2. Есть риск что анкету отредактировали на стороне doForms, на тогда оставить еще ручной механизм полного экспорта и тогда можно сделать только добавление новых
3. Да, ты все верное написал, изменений нет
4. Все равно, сервис нужен, у нас горят два очень серьезных потенциальных клиента
Кстати теперь нам это надо не только для мегафона :)
Поэтому надо оставить список клиентов при открытии сервиса, в списке только название клиента и дата добавления, при клике по названию переход на страницу настроек по клиенту (те поля что описывал вчера)
Alexey Bychkov on February 27, 2014:
Но по срокам сразу говорю - работы здесь примерно на 2 дня, не меньше. И то, при условии, что doForms не будет глючить, как обычно.
Андрей Буганов on February 27, 2014:
Слушай, а что произойдет если в easydata добавится еще одна колонка уже после первого импорта когда таблица будет создана?
Alexey Bychkov on February 27, 2014:
Судя по всему, у нас здесь опять будет проблема с doForms: нет метода, который бы доставал все записи. Единственная альтернатива (хотя это очень плохой вариант) - использовать метод getRecordKeyByDateRange, который достает уникальные ключи записей, по определенному промежутку времени, а потом методом getDataByRecordKey4 достать всю информацию, по каждому ключу. Почему этот вариант плохой? Будет делаться n+1 запросов к doforms, где n - количество записей (анкет от агентов).
То есть этот вариант нестабилен, долгий (в плане выполнения скрипта).
Но это пока предварительно в теории. Т.к. это пока единственный вариант - ничего не остаётся кроме как использовать его. Попробуем и тогда будем точно знать.
Андрей Буганов on February 28, 2014:
там же есть метод получения содержимого всех анкет, мы делали уже
Андрей Буганов on February 28, 2014:
Alexey Bychkov on February 28, 2014:
При импорте нет возможности указать тип поля, как вариант это только указывать дату в правильном формате, чтобы Zoho автоматически его распознал.
Слушай, а что произойдет если в easydata добавится еще одна колонка уже после первого импорта когда таблица будет создана?
Судя по всему, в конец таблицы добавляется эта колонка ( у всех предыдущих записей будет постое поле)
что за метод доставания всех записей?
там же есть метод получения содержимого всех анкет, мы делали уже
для смс информирования мы получаем содержимое анкет что-бы сделать рассылку по смс
В целом ситуация по этой задаче - работаем, опять были подводные камни, но разобрались. Возможно за 3,5 часа доделаем, но, скорее всего, не хватит времени на проверку/тестирование и выкладывание на сервер. Поэтому, скорее всего, конечный результат будет только в понедельник. В конце рабочего дня отпишу подробнее ситуацию по этой задаче.
Alexey Bychkov on February 28, 2014:
Готовность серверной части ~95%, осталось разобраться с ответами api doforms. Сейчас с этим есть проблемы. В понедельник, думаю, решим эти вопросы и выложим всё на сервер для тестов и проверок.
Alexey Bychkov on March 3, 2014:
http://chat.websumy.ru/inside/export_doforms_zoho_client - admin / 123123123
Пока в крон не добавляли задачу, для ручного запуска - http://chat.websumy.ru/inside/cron/export_doforms_zoho (для запуска нужно быть авторизованным в /inside/ админом)
Alexey Bychkov on March 3, 2014:
Андрей Буганов on March 3, 2014:
запускаю задачу по крону как ты писал, жду, обновляю страницы тут и в зохо - ничего нет
Alexey Bychkov on March 3, 2014:
Андрей Буганов on March 3, 2014:
Alexey Bychkov on March 3, 2014:
Alexey Bychkov on March 3, 2014:
нужно - на easydata.
если на doForms - то необходимо выносить еще один параметр, чтобы можно было менять.
Андрей Буганов on March 4, 2014:
Андрей Буганов on March 4, 2014:
Вы добавили учетную запись, я несколько раз перешел по ссылке на крон, при этом авторизован под админом, и дата последней выгрузки так и осталось 3-е число
Alexey Bychkov on March 4, 2014:
Андрей Буганов on March 4, 2014:
открыл ссылку крона, обновил страницу несколько раз, время последнего обмена не изменилась
Андрей Буганов on March 4, 2014:
сделайте кнопку ручной выгрузки в учетных записях, так будет проще всего, она все равно нужна
Alexey Bychkov on March 4, 2014:
easydata
открыл ссылку крона, обновил страницу несколько раз, время последнего обмена не изменилась
дата последней выгрузки изменяется, только если было что-то экспортировано. В данном случае не было никаких изменений (редактирование или добавление), поэтому и дата осталась неизменной. Или нужно дату каждый раз обновлять?
Андрей Буганов on March 4, 2014:
дату лучше каждый раз обновлять
Андрей Буганов on March 4, 2014:
Alexey Bychkov on March 4, 2014:
то есть с одной формы вы хотите делать выгрузку в разные таблицы вопреки медленной работе doForms?
Alexey Bychkov on March 4, 2014:
По поводу ручной выгрузки: выгрузка может повлиять на работу задачи крона и во время этого могут произойти непредсказуемые действия в zoho, как дублирование данных и их потеря. Как результат был сделан крон, который делает сам всю работу, а из админки выставляются маркеры (если надо сделать полную выгрузку).
Если это критично - будем думать как ее реализовать, но это не простая задача.
Alexey Bychkov on March 4, 2014:
http://chat.websumy.ru/inside/export_doforms_zoho_account/index/3
изменил параметры на свои - название базы, email и код авторизации
...
В данном случае вас запутал 1 момент.
Вчера была создана учетная запись экспорта и сразу же запущен экспорт по ней. В результате выставилось время выгрузки. После этого вы изменили данные zoho и запустили крон еще раз, но с момента последнего экспорта не произошло никаких изменений в doForms (записи не редактировались и не добавлялись), поэтому ничего и не происходило.
Я поставил галочку «Полный экспорт» в админке и все выгрузилось хорошо (можете проверить у себя в zoho).
Чтобы избежать подобной ситуации в дальнейшем можно сделать следующее:
при изменении таблицы в zoho — сбрасывать дату последнего экспорта, как-будто эта учетная запись только создана или автоматически ставить галочку «Полный экспорт», чтобы первый раз произошла полная выгрузка данных, а дальше отслеживались обновления.
Андрей Буганов on March 4, 2014:
Alexey Bychkov on March 4, 2014:
Андрей Буганов on March 4, 2014:
Вставляю unilever1$$02282014063435$$Published$$02282014131459
Сохраняю а там unilever1$$02282014063435$$Published$$022820141314
т.е. 2 цифры последних обрезались
Alexey Bychkov on March 4, 2014:
Андрей Буганов on March 4, 2014:
Alexey Bychkov on March 4, 2014: