Алексей разработка

Задачи, обсуждения и баги

From the to-do list: Отчет для мегафона по дилерам

❏ Починить интеграцию Zoho c Doforms

Comments

Vladimir Korochkin on July 31, 2014:

Описание Ошибки: 
Для синхронизации анкет используется наша система http://chat.mytask.me/inside/export_doforms_zoho_client  (admin/123123123)
Схема работы:
Система по крону каждые 10 минут подключается к doForms по API http://www.doforms.com/support/integration-guide.pdf , проверяет появились ли анкеты за период между прошлой синронизацией и текущим временем
Если появились: формирует список ID этих анкет, а затем по одной выкачивает с doForms в один файл на нашем сервере
Затем выгружает весь файл по API  https://zohoreportsapi.wiki.zoho.com  в Zoho в определенную базу и таблицу

Особенности решения
1. doForms очень медленно отдает данные. Есть метод API которые возвращает все не прочитанные анкеты, но когда их много doForms возвращает ошибку о превышении таймаута, переписывались с саппортом, пришлось делать криво: сначала запрашивать за период дат все ID анкет, а потом по одной анкете по этим ID загружать к нам.

Проблемы:
1. Если возникла ошибка на любом участке/проекте - то стопорится синхронизация по всем проектам, пока не поправить руками
2. Тип данных для колонок таблицы в zoho бывает определяется ошибочно, например во всех анкетах в колонке были числа, а потом пришла анкета где в этой колонке строка (просто агенты не выбирали раньше такой вариант), в итоге анкета не грузится в zoho
3. doForms почему-то возвращает не все анкеты иногда, например клиент Декеник: в doForms 214 анкет, при полной синхронизации выгружается только 202
4. Иногда записи просто дублируются в Zoho - не понятно почему


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

Vladimir Korochkin on August 4, 2014:

Алексей, добрый день! Можете пожалуйста сориентировать по срокам когда Вы сможете исправить эту ошибку? У нас сегодня-завтра появится задача от ключевого клиента "Мегафон" настроить автоматические отчеты. И если еще что от меня понадобится пишите. 

Alexey Bychkov on August 4, 2014:

Добрый день, Владимир.
Постараемся на этой неделе выделить ресурсы и время для решения проблемы.

И если еще что от меня понадобится пишите. 

Алексей, для предоставления всех необходимых доступов по DoForms пишите мне здесь.  

Напишите, пожалуйста, здесь все доступы, на всякий случай.

Vladimir Korochkin on August 4, 2014:

Доступ на сервер Doforms (это текущий сервер Мегафон) - для тестирования работоспособности. 
http://www.mydoforms.com/stolica
Учетная запись: stolica
Почта: super1000form@gmail.com
Пароль: natashakoroleva
В нем ничего не удаляйте, это регулярный сервер Мегафон. 
Там Вы можете взять данные по API: 
Manage \\\\ Account > Manage Website > Web Services

Alexey Bychkov on August 5, 2014:

Владимир, добрый день.

Уточняющие вопросы и просьбы по проблемам:

1. Если возникла ошибка на любом участке/проекте - то стопорится синхронизация по всем проектам, пока не поправить руками

Что именно приходится править руками для восстановления работоспособности? Опишите поподробнее, по возможности.

2. Тип данных для колонок таблицы в zoho бывает определяется ошибочно, например во всех анкетах в колонке были числа, а потом пришла анкета где в этой колонке строка (просто агенты не выбирали раньше такой вариант), в итоге анкета не грузится в zoho

Можете показать пример со стороны doForms и/или Zoho?

3. doForms почему-то возвращает не все анкеты иногда, например клиент Декеник: в doForms 214 анкет, при полной синхронизации выгружается только 202

Можно получить доступы к doForms для Декеник и к Zoho соответственно?

4. Иногда записи просто дублируются в Zoho - не понятно почему

Опять таки, было бы очень полезно увидеть конкретный пример.

Спасибо.

Vladimir Korochkin on August 5, 2014:

"3. doForms почему-то возвращает не все анкеты иногда, например клиент Декеник: в doForms 214 анкет, при полной синхронизации выгружается только 202

Можно получить доступы к doForms для Декеник и к Zoho соответственно?" 

Алексей, начнем с этого клиента, это наиболее показательный пример из всех, сначала починим там интеграцию и будем смотреть следующих. Скидываю все доступы по клиенту. 

Доступ к аккаунту Декенинг

http://www.mydoforms.com/
Учетная запись: deceuninck
Почта: korochkin89@yandex.ru
Пароль: Roman123

Анкета с которой берем данные называется Merch - просмотреть данные по ней в Doforms можно View Data - (date range - all) - View

Доступ к Зохо: 
админка: 
https://reports.zoho.com/login
почта: ds@mytask.me
 пароль: 123Slabakov

Отчеты, которые были сделаны в зохо для Декенинг: 
http://mytask.me/reports/deceuninck/
Для входа логи и пароль deceuninck

Андрей Буганов on August 5, 2014:

Уточняющие вопросы и просьбы по проблемам:

1. Если возникла ошибка на любом участке/проекте - то стопорится синхронизация по всем проектам, пока не поправить руками

Что именно приходится править руками для восстановления работоспособности? Опишите поподробнее, по возможности.

В базе в таблице storage если в результате ошибки была прервана работа скрипта - остается 1, в результате этого операция синхронизации больше не запускается. Приходится руками ставить 0

2. Тип данных для колонок таблицы в zoho бывает определяется ошибочно, например во всех анкетах в колонке были числа, а потом пришла анкета где в этой колонке строка (просто агенты не выбирали раньше такой вариант), в итоге анкета не грузится в zoho

Можете показать пример со стороны doForms и/или Zoho?
Уже все было исправлено, пример привести не могу, наиболее частые проблемы:
Колонка определена как число, а потом приходит туда строка
Колонка определена как целое число, а потом приходит дробь
Колонка определена как текст (на него действует ограничение в 255 символов), а потом приходит текст более 255 символов.
Решение этой проблемы думаю только следующее: делать все колонки с типом multitext, но не знаю как это скажется на формулах.
Другое более правильное решение - валидировать данные перед загрузкой в zoho, и если система видит что типы не совпадают - менять тип колонки в Zoho

3. doForms почему-то возвращает не все анкеты иногда, например клиент Декеник: в doForms 214 анкет, при полной синхронизации выгружается только 202

Можно получить доступы к doForms для Декеник и к Zoho соответственно?

Владимир предоставил

4. Иногда записи просто дублируются в Zoho - не понятно почему

Опять таки, было бы очень полезно увидеть конкретный пример.

Пример привести нет возможности, так как все ошибки исправлены. Такая проблема возникала обычно если на некоторое время останавливалась синхронизация из-за ошибок, например неделю. Затем выполнялась синхронизация за этот период времени. Выгружаю из Zoho в exсel ищу дубликаты (функционал excel) и может найтись и 50 и 200 записей даже с идентичным ID, т.е. явно дубликаты

Alexey Bychkov on August 7, 2014:

Владимир, Андрей, добрый вечер.

Мы начали плотно разбираться с проблемами - появились некоторые вопросы/предложения. Давайте обсудим по каждой проблеме:

Проблема 1. Такое предложение: давать скрипту какое-то время (2 часа, например). И если даже и возникли какие-то проблемы или ещё что-то, то по истечению этого времени крон возвратится к своему обычному выполнению. То есть единичку в таблицу вручную скидывать не нужно будет. Это, по сути, произойдёт автоматически через 2 часа. Как вы на это смотрите?

Проблема 2. Пока не ясно, будем ещё разбираться и анализировать.

Проблема 3. Возможно, проблема в лимитах. Мы столкнулись с ней как раз. Вот что doForms пишет у себя в API по этому поводу:
Limits on Data Record Reads: The limit is currently set to 50 times the number of mobile units in your 
account per day. So as an example, if you have 30 mobile units in your account, you can read 
50X30=1500 records per day. 
Например: пусть WSID имеет 2 mobile units. Значит лимит 2*50=100. Если за сутки добавляется 150 новых записей. То при запросе мы получим id всех 150 записей, но конкретную информацию мы сможем получить только о первых 100 (из-за лимитов). И, соответственно, добавим в Zoho только 100 записей. При этом на следующий день не добавленные 50 записей мы уже не увидим, т.к. будем запрашивать записи с даты последнего обновления.
Как считаете, актуальна ли эта проблема и может ли это влиять?

Проблема 4. Уточнение такого плана - дубликаты обычно находятся рядом друг с другом (то есть добавлены за один запуск крона - если так, то проблема решается проще) или в разных частях файла (то есть добавлены за разные запуски крона - если так, то проблема сложнее)? И сюда же - а это точно дубликаты? Потому как мы ведь добавляем в Zoho не только новые записи (с разными id соответственно), но и уже имеющиеся изменённые. Возможно, в этом дело - меняется какое-то одно поле - запись добавляется в Zoho - и становится похоже на дубликат.

Андрей Буганов on August 7, 2014:

Проблема 1. Владимир, устроит задержка в 2 часа в синхронизации?
Есть другой вариант, но он чуть сложнее в реализации:
- флаг сохранять для каждой анкеты а не всего обмена в целом. Тем более я ранее уже сделал что для каждой анкеты сохраняется свой временный файл.
- Добавить обработку исключений в процессе обмена, что-бы 0 установился гарантированно.
- По истечении 2-х часов ставить 0 принудительно, если обмен завис или тупо убили процесс php

Проблема 3. Владимир сколько у декеника и 7к устройств?

Проблема 4. Дубликаты добавляются за один запуск крона. Насчет измененных записей не могу подсказать.

Vladimir Korochkin on August 7, 2014:

Проблема 1. Владимир, устроит задержка в 2 часа в синхронизации?
- да, устроит - это еще допустимо

1) У Декенинга 7 устройств 
2) У 7K   5 устройств
3) У RazDva 4 устройства
4) Но у Мегафона 40 устройств и для него в последствии приоритетнее будет настроить Зохо

Андрей Буганов on August 7, 2014:

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

Alexey Bychkov on August 7, 2014:

Есть другой вариант, но он чуть сложнее в реализации:

- флаг сохранять для каждой анкеты а не всего обмена в целом. Тем более я ранее уже сделал что для каждой анкеты сохраняется свой временный файл.

- Добавить обработку исключений в процессе обмена, что-бы 0 установился гарантированно.

- По истечении 2-х часов ставить 0 принудительно, если обмен завис или тупо убили процесс php

Флаг для каждой анкеты - шаг к распараллеливанию работы по каждому WSID параллельно? Честно говоря, мне кажется, что в такой ситуации API doForms и Zoho вообще с ума сойдут (и мы вместе с ними, пытаясь отловить проблемы). А для последовательных запросов одного флага на весь крон вполне достаточно. Или я не уловил ваш замысел?

Тем более я ранее уже сделал что для каждой анкеты сохраняется свой временный файл

Да, видели

для него в последствии приоритетнее будет настроить Зохо
Честно говоря, не совсем понял, что имеется ввиду

Вообще надо как-то лимит учитывать в синхронизации
Надо. Но как?
Предположим, ситуация такая:
У декенинга 7 устройств. Значит лимит 350 в сутки.
И пусть в сутки по нему появляется 500 новых записей.
Как это учесть?

Андрей Буганов on August 7, 2014:

Флаг для каждой анкеты - шаг к распараллеливанию работы по каждому WSID параллельно? Честно говоря, мне кажется, что в такой ситуации API doForms и Zoho вообще с ума сойдут (и мы вместе с ними, пытаясь отловить проблемы). А для последовательных запросов одного флага на весь крон вполне достаточно. Или я не уловил ваш замысел?


почему они сойдут с ума, если работа в каждом потоке выполняется изолированно :)

У декенинга 7 устройств. Значит лимит 350 в сутки.
И пусть в сутки по нему появляется 500 новых записей.


вообще тут конечно беда, даже с учетом что записи не будут каждый день 500 добавлять, но отложенная загрузка вызовет ситуацию что клиент в отчете видит не актуальные данные и определить это может только косвенно по датам анкет. Как решить эту проблему - не представляю. Владимир?
А вот при полной синхронизации надо лимит учитывать, что-бы система после исчерпания лимита продолжала до загрузку на следующий день, и как-то обозначить этот факт в списке учетных записей, например статусом "Исчерпан лимит за сутки".

Alexey Bychkov on August 7, 2014:

почему они сойдут с ума, если работа в каждом потоке выполняется изолированно :)
не уверен, что API doForms адекватно будет реагировать на много одновременных запросом с одного IP. Хотя, конечно, проблемы быть не должно. Но это ведь API doForms - от них можно всего ожидать :) В любом случае давайте оттолкнёмся от ваших потребностей - надо это или нет. Если надо - будем делать. Если нет - не будем. В исходных проблемах я не увидел ничего, что заставило бы подойти к мысли о распараллеливании.

Как решить эту проблему - не представляю. 
Может быть вам (Денису? у него вроде хорошо получалось с ними договариваться) попробовать договориться о снятии ограничений с doForms для вашего IP? Просто как вариант.

и как-то обозначить этот факт в списке учетных записей, например статусом "Исчерпан лимит за сутки"
Да, хорошо, сделаем это. Но тут проблема такая - узнать, что дело именно в лимите. Когда лимит исчерпан они просто не возвращают данные и всё. Вижу 2 варианта:
1) Считать кол-во пустых возвратов (например, 2-3 раза подряд) и делать вывод о том, что лимит исчерпан
2) Изначально добавлять кол-во устройств для конкретного WSID и от него уже отталкиваться. 
Думаю, первый предпочтительнее. Как вы думаете?

Андрей Буганов on August 7, 2014:

Подобьем итоги:
1. 2 часа Владимира устраивает
2. Задача на стороне Алексея
3. Решаем проблему с лимитами только при полной синхронизации, используем вариант: Считать кол-во пустых возвратов (например, 2-3 раза подряд) и делать вывод о том, что лимит исчерпан
4. У Алексея есть решение проблемы

Alexey Bychkov on August 7, 2014:

Да, верно.
Примерно ориентирую по срокам:
1,4 решим сегодня-завтра.
2,3 боюсь, одолеем только на следующей неделе.

Vladimir Korochkin on August 7, 2014:

Да, и тестировать будем на Декенинг сначала.

Alexey Bychkov on August 7, 2014:

 То есть пока отключить все другие WSID и оставить активным только Декенинг?

Vladimir Korochkin on August 7, 2014:

Отключать не надо, но с него начнем тестирование и проверку работоспособности. 

Alexey Bychkov on August 8, 2014:

Добрый день.
Проблемы 1 и 4 решили.
Но в данный момент крон заглушен и не выполняется.
Если хотите, можем запустить его в боевом режиме только для Декенинга.
Ну либо тогда уже после устранения оставшихся проблем.

Vladimir Korochkin on August 8, 2014:

Давайте лучше запустим решив все задачи. Спасибо. 

Alexey Bychkov on August 8, 2014:

Ок, без проблем.
Кстати, Владимир, для проверок и тестов можно использовать текущие настройки Zoho для Декенинга или лучше сделать отдельную "песочницу"?

Vladimir Korochkin on August 8, 2014:

Можете использовать Декенинг. 

Alexey Bychkov on August 8, 2014:

Понял, спасибо.

Alexey Bychkov on August 12, 2014:

Андрей, Владимир, добрый день.
Мы сейчас занимаемся 3й проблемой, по ней всё понятно. А вот проблему 2 хочу предварительно обсудить:

Решение этой проблемы думаю только следующее: делать все колонки с типом multitext, но не знаю как это скажется на формулах.

Другое более правильное решение - валидировать данные перед загрузкой в zoho, и если система видит что типы не совпадают - менять тип колонки в Zoho

Судя по всему, API Zoho не позволяет при импорте влиять на типы колонок. И также через API нет возможности изменять типы колонок в существующих таблицах. То есть я пока не вижу вариантов исправить эту проблему со стороны нашей системы.

Vladimir Korochkin on August 12, 2014:

А если, вопросы на которые отвечают агенты, будут 1) 1 (да) или 0 (нет) и на сервере мы будем собирать соответственно цифры 2) или просто текстовые ответы.  Это упрощает в дальнейшем связку с Zoho? 

Alexey Bychkov on August 12, 2014:

Главное, чтобы Zoho типы определял одинаково.
1) 1 или 0 zoho определяет одинаково - как Positive Number. Здесь проблем быть не должно.
2) А вот простые текстовые ответы - могут определиться, как Plain Text или как Multi Line Text. Здесь могут быть заминки, о которых говорил Андрей ("Колонка определена как текст (на него действует ограничение в 255 символов), а потом приходит текст более 255 символов").

Андрей Буганов on August 12, 2014:

С длинным текстом тогда мы ничего сделать не можем.
Бывает еще и проблема когда а списков символьный код стоит: 0, 1, 2, variant
И когда сначала нет анкет с символьным кодом "variant" Zoho посчитает что это числовая колонка.
Алексей, а zoho возвращает ошибку для такой анкеты когда типы не совпали? Добавить лог таких ошибок облегчило бы работу.

Vladimir Korochkin on August 12, 2014:

Относительно длинного текста буду уведомлять если что клиентов, это не страшно потому что зохо мы используем для визуализации данных на 99%

Alexey Bychkov on August 12, 2014:

Алексей, а zoho возвращает ошибку для такой анкеты когда типы не совпали? Добавить лог таких ошибок облегчило бы работу.

Да, тоже об этом подумал. Уточним этот момент. 

Alexey Bychkov on August 13, 2014:

Добрый день, Андрей, Владимир.
 
Алексей, а zoho возвращает ошибку для такой анкеты когда типы не совпали? Добавить лог таких ошибок облегчило бы работу.

Да, Zoho возвращает ошибку такого плана: [Line: 2 Field:  4] (variant) -ERROR: Invalid POSITIVE NUMBER value

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

Причём, ещё обнаружили такую особенность zoho: если мы пытаемся одновременно добавить 10 записей и одна из них имеет проблемы с несовпадением типов, то zoho не добавит ни одну из 10 записей. Впрочем, в следующий раз наша система снова попробуем добавить эти 10 записей. Можем, в принципе, изменить этот алгоритм и сделать поштучное добавление (тогда Zoho добавить 9 нормальных и не добавит 1 с ошибкой).

Андрей Буганов on August 14, 2014:

Можно ли сделать так:
В колонке "название колонки" ошибка: Invalid POSITIVE NUMBER value. {вся анкета из json}.

Пусть будет длинный горизонтальный скролл (переносить строки не надо). И сделать кнопку очистки лога, при нажатии запрос подтверждения действия и если ок - очищаем лог для данной учетной записи.

Alexey Bychkov on August 14, 2014:

Ок, Андрей, понял, сделаем.

Vladimir Korochkin on August 14, 2014:

Алексей, добрый день! У нас запрос от Мегафона сделать отчет по всем собираемым ими анкетам. Нам нужно будет настроить пересылку этих анкет, собранных, начиная с 1-го августа в Zoho, а там уже наш новый специалист по Zoho сделает по ним финальный отчет. 

На всякий случай дублирую доступ в аккаунт Мегафон.
Доступ на сервер Doforms (это текущий сервер Мегафон) - для тестирования работоспособности. 
http://www.mydoforms.com/stolica
Учетная запись: stolica
Почта: super1000form@gmail.com
Пароль: natashakoroleva
В нем ничего не удаляйте, это регулярный сервер Мегафон. 
Там Вы можете взять данные по API: 
Manage \\\\ Account > Manage Website > Web Services

Я сделал Веб Сервисы (Web Services) по всем анкетам, которые нужно связать с Zoho.  
Теперь как понимаю нужно сделать настройку в интеграции. 

Alexey Bychkov on August 14, 2014:

Добрый день, Владимир.
Честно говоря, не совсем понял, что именно нужно от нас в связи с этим. Кроме того, что решить все выше обозначенные проблемы + то, что обсудили с Андреем насчёт лога (думаю, закончим, как и планировали, до конца этой недели. в крайнем случае напряжемся на выходных, если что). Так что с понедельника сможете сами, как и раньше, пользоваться и настраивать систему.

Vladimir Korochkin on August 14, 2014:

Алексей, да все верно, после того как я создам учетные записи, от Вас нужно будет только настроить так чтобы синхронизация началась с 1 августа. 

Alexey Bychkov on August 14, 2014:

Понял, без проблем, сделаем.
Дайте знать, когда это понадобится.

Vladimir Korochkin on August 14, 2014:

Учетные записи, готовы, их номера с 16 по 25. Настроить синхронизацию "с 1 августа" нужно будет сразу как только починим интеграцию. 

Alexey Bychkov on August 14, 2014:

Ок, принял.

Alexey Bychkov on August 17, 2014:

Андрей, Владимир, добрый вечер.

Все работы завершены.

В таблице учётных записей появились колонки "Исчерпан лимит за сутки" и "Количество ошибок" (если кликнуть по количеству ошибок - можно перейти на подробный лог, где есть возможность его очистки).

Учетные записи с 16 по 25 настроены на синхронизацию "с 1 августа", но не активированы (активируйте их самостоятельно, когда нужно будет включить их в работу).

Крон сейчас работает, как обычно (раз в 10 минут), но активна только одна учётная запись - Декенинк (активируйте остальные, когда посчитаете нужным). Для финишной проверки сегодня (17.08.2014) я включил его полный экспорт - крон дошёл до лимита и остановился (это верно) - завтра должны доэкспортироваться оставшиеся записи.

Жду от вас вопросы/комментарии/замечания.

Vladimir Korochkin on August 18, 2014:

Алексей, спасибо большое!
 Вопросы/комментарии/замечания скорее всего появятся при запуске Мегафона на этой неделе.  Если что будем писать. 

Alexey Bychkov on August 18, 2014:

Добрый день, Владимир.

Без проблем, договорились.

Проверили Декенинка только что - отработал прекрасно. Сам докачал все записи в Zoho, никаких ошибок при этом не появилось (и лимит за сегодня не исчерпан, о чём видим соответствующий флажок в системе). И вот сейчас имеем чётко 428 записей в doForms, 428 записей в Zoho. Ну и 428 соответствующих записей в нашем новом внутреннем логе.

Так что финальный тест прошёл хорошо. 

Vladimir Korochkin on August 19, 2014:

Алексей, добрый день!
Сегодня при тесте пересылки анкет Мегафон. У 6 анкет были зафиксированы ошибки. Можете пожалуйста посмотреть что там произошло. 

Андрей Буганов on August 19, 2014:

Владимир, в логе пишется текст ошибки http://joxi.ru/j0LzU4wyTJB1G0VWw6Y
Насколько видим не совпадают типы данных Zoho ожидает число, а пришел текст NewTT http://joxi.ru/0ULzU_3JTJBbebI7Vng.
Решение - в зохо в таблице изменить тип этой колонки с Positive number на String

Alexey Bychkov on August 19, 2014:

Добрый день, Владимир.
Согласен с ответом Андрея.

Андрей Буганов on August 19, 2014:


Алексей, у меня лог не помещается по ширине на экране http://joxi.ru/QkPzU4wyTJC6AqHBYvI

И я сейчас вижу что реально не хватает еще одного кейса: Для каждой ошибки добавить кнопку "Выгрузить в Zoho":
Анкета еще раз выгружается в зохо, если успешно - запись в логе исчезает. Если не успешно - эта запись удаляется и выводится новая ошибка в логе

Vladimir Korochkin on August 19, 2014:

Понял, спасибо, сейчас смотрю и исправляю. 

Alexey Bychkov on August 19, 2014:

ок, Андрей, поправим ширину и добавим такую кнопочку (навскидку всё что нужно для этого у нас сейчас есть, так что в целом переделывать ничего не придётся)

Андрей Буганов on August 19, 2014:


спс!

Андрей Буганов on August 19, 2014:


Алексей, судя по тому что в ошибках одни и те же причины, эту кнопку можно даже сделать одну на все ошибки в рамках учетки, а для каждой записи в логе не выводить. Т.е. после исправления ошибки разом зальем все, а у которых ошибка другая - со второй попытки зальются

Alexey Bychkov on August 19, 2014:

да, логично

Vladimir Korochkin on August 19, 2014:

Еще одна интересная ситуация. По анкете Megafon_Mult_v43 выгрузило в зохо 15 записей, лимит не превышен при этом и ошибок нет. 

Vladimir Korochkin on August 19, 2014:

За август их там 1188

Vladimir Korochkin on August 19, 2014:

А по анкете Audit_FS_13.03.2014_6 - их всего 5, а оно выгрузило туда их 80, причем они дублируются множество раз. 

Alexey Bychkov on August 19, 2014:

Проверим.
Дайте, пожалуйста, данные для доступа к 1) doForms и 2) Zoho для 1) Megafon_Mult_v43 и 2) Audit_FS_13.03.2014_6.

Vladimir Korochkin on August 19, 2014:

Доступ на сервер Doforms (это текущий сервер Мегафон) - для тестирования работоспособности. 
http://www.mydoforms.com/stolica
Учетная запись: stolica
Почта: super1000form@gmail.com
Пароль: natashakoroleva

Доступ к Зохо: 
админка: 
https://reports.zoho.com/login
почта: ds@mytask.me
 пароль: 123Slabakov

Vladimir Korochkin on August 19, 2014:


если что я в скайпе : vk-easydata (подскажу как открыть те или иные анкеты)

Alexey Bychkov on August 19, 2014:

Ок, принял.

Alexey Bychkov on August 20, 2014:

Пока что понял одну проблему. Вот эту:

По анкете Megafon_Mult_v43 выгрузило в зохо 15 записей, лимит не превышен при этом и ошибок нет. За август их там 1188

Проблема в API doForms. Ситуация такая. Мы запрашиваем массив ID с такого-то времени по текущее. И должны получить массив со всеми ID.
И эта функция API работает хорошо, если ID не очень много.
Но если таких ID много (как в Megafon_Mult_v43) (по моим наблюдениям >1000), то происходит одна из следующих вещей:
1. Мы получаем всё как надо (редко)
или
2. Мы получаем пустой массив (и считаем, что это нормально - т.к. ошибок-то нет, а в след. раз сделаем запрос уже с нового времени)
или
3. Мы получаем массив c 1 ID (и считаем, что это нормально - т.к. ошибок-то нет, а в след. раз сделаем запрос уже с нового времени)
или
4. Получаем ошибку

Так и произошло с Megafon_Mult_v43. Мы сделали запрос с 1го августа - получили массив с 1 ID (а должны были получить больше 1000). Записали его и обновили время синхронизации. Через какое-то время сделали новый запрос - получили несколько последних анкет. И таком образом имеем несколько десятков записей вместо тысяч.


Андрей Буганов on August 21, 2014:

Владимир, надо писать в doForms скорее всего, что их метод getRecordKeyByReceivedDateRange после каждого вызова за один и тот же период времени (привести в пример август и нашу анкету) возвращает разное количество анкет, если их там много. Привести пример от Алексея.

На своей стороне мы конечно можем отправлять каждый раз по 10 запросов что-бы выбрать из них с максимальным количеством ID, но это очень не надежно

Vladimir Korochkin on August 21, 2014:

Андрей, добрый день! Все ясно, я напишу им. 

Alexey Bychkov on August 21, 2014:

Владимир, Андрей, добрый день.

Проблема в том, что эксперименты показали, что API doForms могут вернуть неверный результат даже если данных не много. Но вероятность ошибки повышается с ростом кол-ва данных.

Мы вчера реализовали и запустили на тест вот такой алгоритм для получения данных из doForms:

Получаем записи как обычно за промежуток от последней синхронизации до сейчас.
Если записи есть - добавляем.
Если записей нет - делаем проверки - получаем общее кол-во записей из doForms (используем функцию из API для этого, ранее не используемую) и считаем, о скольких записей знаем мы.
Если у нас записей меньше чем всего в doForms И текущий WSID содержит не очень много записей (<1000) - запрашиваем ещё раз все ID записей из doForms и недостающие добавляем к нам в систему.
Если у нас записей меньше чем всего в doForms И текущий WSID содержит много записей (>1000) - мы выбираем случайно промежуток времени в одну неделю за последние пол-года и получаем все ID записей за этот промежуток времени. Те, которых у нас нет - добавляем к нам.

Запустили этот алгоритм вчера на проверку для Декенинга и 9 анкет Мегафона. Результат по небольшим WSID - замечательный. Буквально за 1-2 часа наша система набрала абсолютно все записи без каких-либо пропусков (пока тестируем только получение от doForms без импорта в Zoho).

Что касается большого WSID. То примерно за 12 часов работы мы получили 7149 записей из всего 7999. Если за сутки удастся получить все - думаю, это будет хороший результат.

Ясно, что всё это залипухи и костыли и таких усложнений в идеале быть не должно.

Но, к сожалению, имеем, что имеем.

Vladimir Korochkin on August 21, 2014:

Алексей, добрый день! 
Точный результат узнаем завтра?

Alexey Bychkov on August 21, 2014:

Да, думаю, сегодня понаблюдаем и завтра можно будет сделать какие-то выводы.

Vladimir Korochkin on August 21, 2014:

Алексей, почему то в отчете Декенинга анкеты Березкина не попали в зохо. 

Alexey Bychkov on August 21, 2014:

Владимир,

пока тестируем только получение от doForms без импорта в Zoho

То есть на данный момент весь импорт в Zoho отключён.
Сейчас сначала разберёмся с doForms и приступим к отладке Zoho.

Vladimir Korochkin on August 21, 2014:

Понял. Посмотрел там дата последней выгрузки была 21.08.2014 16:50:01 по Декенинк, следовательно подумал что пересылка анкет идет. 

Alexey Bychkov on August 22, 2014:

Добрый день, Владимир, Андрей.

Примерно сутки уже работает система получения IDs от doForms, о которой я писал вчера. Она работает для декенинка + 9 мегафонов.
Результаты такие: для всех кроме Megafon_Mult_v43 IDs получаются прекрасно - штучка в штучку. Для Megafon_Mult_v43 - на текущий момент мы получили информацию о 8087 записях. Хотя doForms говорит, что всего у него 8089 записей.
Я считаю, это вполне хороший результат. И 2 недостающие по Megafon_Mult_v43 рано или поздно подтянутся.
Либо когда-нибудь doForms повысит качество своего API и тогда наша систему не будет делать доп. запросы (она их делает только если видит, что кол-во записей у нас и возвращаемое от doForms не совпадает).
То есть, я думаю, надо всё так и оставить, как сейчас.
Как считаете?

Также вчера добавили подробный сбор информации и запустили на одну итерацию нашего крона импорт записей в Zoho (для Декенинка + 9 мегафонов) с нуля, чтобы собрать материал для проверок и анализа. Уже вижу, что проблема в API Zoho и дубли появляются тогда, когда появляются ошибки добавления записей в Zoho. Но это всё будем ещё внимательно анализировать и думать.
Вы главное пока что в Zoho для этих таблиц не удаляйте дубли. Мы когда решим проблему с ними - перезапустим импорт в них строк с нуля и всё зальётся нормально без дублей.

Владимир, вопрос к вам насчёт Megafon_Mult_v43. По этой анкете мы сейчас имеем 8087 строк. После решения вопроса с дублями в Zoho - мы включим импорт строк в Zoho. Все строки для всех анкет импортируются за 1-2 дня, я думаю. А вот сколько займёт импорт всех строк Megafon_Mult_v43 с учётом лимитов - даже не знаю, минимум 4-5 дней, я думаю.
Вопрос в следующем: критично ли иметь по этой анкете все строки импортированные ко вторнику? Если да - будем городить какую-то спец. штуку именно для этой анкеты, чтобы импортировать только строки с 1го августа и тем самым уменьшить кол-во дней на импорт и успеть ко вторнику. Если нет - то запустим и пусть грузятся все последовательно.

Vladimir Korochkin on August 22, 2014:

Алексей, добрый день! 
Это не критично, 
но все же я буду сверять каждую неделю этот показатель в течении двух первых месяцев и смотреть отклонения. 
Запускаем загрузку. А я начинаю работы по формированию для них отчета. 

Alexey Bychkov on August 22, 2014:

Это не критично, 
Ок, тогда работаем над проблемами с дубликатами. И затем запускаем импорт в обычном режиме.

но все же я буду сверять каждую неделю этот показатель в течении двух первых месяцев и смотреть отклонения
Правильно

Запускаем загрузку. А я начинаю работы по формированию для них отчета.
Сейчас загрузка в Zoho отключена. Мы работаем над решением проблемы с дубликатами. Решим - и запустим в обычном режиме. О новостях буду сообщать.

Vladimir Korochkin on August 22, 2014:

Понял Вас. Спасибо)

Alexey Bychkov on August 25, 2014:

Добрый день.

Проблему с дубликатами решили. Проблема была в данных, которые возвращал doForms для некоторых WSID. Почему-то иногда приходили подмассивы в массивах данных. В таких случаях Zoho неадекватно делал импорт и появлялись дубликаты.

Алексей, судя по тому что в ошибках одни и те же причины, эту кнопку можно даже сделать одну на все ошибки в рамках учетки, а для каждой записи в логе не выводить. Т.е. после исправления ошибки разом зальем все, а у которых ошибка другая - со второй попытки зальются
Это готово. После нажатия на эту кнопку - все ошибки для данного аккаунта очистятся и эти записи скачаются и импортируются в Zoho снова в ближайшие запуски крона.

Алексей, у меня лог не помещается по ширине на экране 
http://joxi.ru/QkPzU4wyTJC6AqHBYvI
Поправили. Но, чтобы это исправить, пришлось задавать принудительную ширину столбца. Задали 1000px. Дайте знать, если нужно сделать уже/шире.

Также вчера запустили в полностью боевом режиме крон для Декенинка + 9 Мегафонов (всего 10 аккаунтов).

Сейчас всё проверили - 9 из них полностью закончили импорт и все записи уже в Zoho (есть, конечно, ошибки в логах про несовпадение - с ними ничего не делали). Ну а 10й - огромный WSID с 8000+ записей ещё импортируется.

Так что с нашей стороны все проблемы/замечания устранены. Ждём от вас вопросы/комментарии.

Vladimir Korochkin on August 25, 2014:

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

Alexey Bychkov on August 25, 2014:

Договорились, Владимир.

Vladimir Korochkin on September 1, 2014:

Алексей, добрый день!
Результаты тестирования интеграции с Зохо: 
По всем анкетам, кроме Multibrend v 43, данные передаются без потерь на данный момент. Сегодня сравнил количество анкет  в Zoho c  Doforms за один день, 29 августа. Расхождение было значительным, но потом были выявлены ошибки и исправлены. Сейчас все ошибки исправлены но все же в Zoho попало на 5 анкет меньше чем имеется в Doforms (в Doforms - 92, d Zoho - 87). Проверил, вдруг ошибся филансер при написании запроса в зохо - выяснилось что с его стороны все в порядке. 

Alexey Bychkov on September 1, 2014:

Добрый день, Владимир.
Подскажите, а как вы проверяете кол-во анкет в doForms и Zoho за определённый день?

Vladimir Korochkin on September 1, 2014:

В Doforms - 
View data --> далее выбираем анкету Megafon_Mult V 43 (specify range 08.29.2014) --> view 

В Зохо я пользуюсь либо новым сделанным отчетом (выгружаю из него данные за 29 число например): 
https://reports.zoho.com/ZDBDataSheetView.cc?OBJID=836798000001789434&STANDALONE=true&privatelink=5c25e1108536b8c3cddd5ffbdc096d7c&ZDB_THEME_NAME=grey&INTERVAL=-1&REMTOOLBAR=false&INCLUDETITLE=true&INCLUDEDESC=true

Или же использую для сверки первоначальную базу с которой формируется отчет, ссылка на который приведена выше: 
https://reports.zoho.com/ZDBDataSheetView.cc?DBID=836798000000417001

Alexey Bychkov on September 1, 2014:

Или же использую для сверки первоначальную базу с которой формируется отчет, ссылка на который приведена выше: 

https://reports.zoho.com/ZDBDataSheetView.cc?DBID=836798000000417001

А как здесь можно проверить записи за определённый день?

Vladimir Korochkin on September 1, 2014:

здесь никак, а вот здесь можно: https://reports.zoho.com/ZDBDataSheetView.cc?DBID=836798000000417001
Их можно проверить там же или выгрузить за определенный день. 

Alexey Bychkov on September 1, 2014:

здесь никак, а вот здесь можно: 
https://reports.zoho.com/ZDBDataSheetView.cc?DBID=836798000000417001

а как? перешёл по вашей ссылке - вижу Explorer - список таблиц в базе Мегафон.

Vladimir Korochkin on September 1, 2014:

Опуститесь в низ страницы и нажмите на "БАЗОВЫЙ ОТЧЕТ"

Alexey Bychkov on September 1, 2014:


А, ну таким образом мы вернулись к тому, с чего начали. 
Ок, я понял.

А нельзя сюда в базовый отчёт добавить колонку recordId? Она бы очень пригодилась для проверки.

Vladimir Korochkin on September 1, 2014:

Я написал, добавим, согласен с Вами. 

Vladimir Korochkin on September 1, 2014:

 сервер http://chat.websumy.ru/inside/sms_inform_user/login
не работает.

Alexey Bychkov on September 1, 2014:

websumy.ru - наш тестовый сервер.
вам следует использовать ваш - http://chat.mytask.me/inside/sms_inform_user/

Alexey Bychkov on September 1, 2014:

Я написал, добавим, согласен с Вами. 

Спасибо, дайте знать, когда добавите.

Vladimir Korochkin on September 2, 2014:

Алексей, доброе утро! 
добавили recordid
https://reports.zoho.com/ZDBDataSheetView.cc?OBJID=836798000001783057&STANDALONE=true&privatelink=41d0328daa8eb6e9da814c8afdd54c8b&ZDB_THEME_NAME=grey&INTERVAL=-1&REMTOOLBAR=true

Подскажите пожалуйста сроки решения вопроса? 

Alexey Bychkov on September 2, 2014:

Доброе утро, Владимир. 
Спасибо.
Сегодня в течении дня внимательно посмотрим и проверим.
И затем я сообщу выводы и прикидки.

Vladimir Korochkin on September 2, 2014:

Хорошо, в свою очередь еще раз проверю еще несколько временных интервалов, может как то данные с задержкой приходят. 

Alexey Bychkov on September 2, 2014:

Владимир, а как в списке в doForms можно получить recordId определённой строки? Мы вычислили 5 недостающих строк, теперь хотелось бы понять, какие у них recordId.

Vladimir Korochkin on September 2, 2014:

Если Вы откроете данные по анкете в Doforms, recordid будет в самом последнем столбце таблицы - называется " Form Record"

Vladimir Korochkin on September 2, 2014:


Точнее третий если смотреть с правой стороны базы данных. 

Alexey Bychkov on September 2, 2014:

Нет, это немного разные поля.

Form Record - stolica$$04172014135459$$Published&&8678

RecordId - ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgIDBk-uWCAw

То есть, это разные поля. К тому же, Form Record - не уникальное поле. В базе может быть несколько записей с одинаковыми Form Record.

Vladimir Korochkin on September 2, 2014:

Да все верно. А если найти по полю дата и время? (там вполне уникальные ячейки)

Alexey Bychkov on September 2, 2014:

Компромиссы-то мы поищем, если надо будет. Пока что вопрос в RecordID всё-таки. Т.к. именно на основании этого поля добавляются, учитываются и обновляется записи в нашей системе.
У нас не получилось никак добраться до этого значения со стороны doForms. 
Мы подумали, может быть вы знаете, как это сделать.
Потому что в doForms мы видим для каждой строки разные Options (Map, Edit, Add...) и может быть как-то через них можно это увидеть? 
Но мы нажимать их не рискуем, чтобы случайно не испортить данные.

Vladimir Korochkin on September 2, 2014:

Тоже не нашел, а зохо его почему то выгружает. Еще есть вариант сделать сводные таблицы из выгрузки Doforms и Zoho по столбику ID - можно очень сильно сузить поиск. 

Alexey Bychkov on September 2, 2014:

Тоже не нашел, а зохо его почему то выгружает
RecordId получает наша система без проблем, когда запрашивает данные у doForms через API. 
Проблема в том, чтобы получить этот RecordId для определённых строк именно из интерфейса doForms без использования API.
Именно это сейчас нам нужно сделать.

Еще есть вариант сделать сводные таблицы из выгрузки Doforms и Zoho по столбику ID - можно очень сильно сузить поиск.
Сейчас вопрос именно к стороне doForms. с Zoho пока что всё понятно.
Мы знаем 5 строк, которые есть в doForms и их нет в Zoho.
Нужно проверить, есть ли они в нашей системе или нет.
Для этого нужно как-то докопаться до их recordId.

Vladimir Korochkin on September 2, 2014:

Это я понимаю. Попробовал выгрузить разными способами данные, ничего не получилось. 

Alexey Bychkov on September 2, 2014:

Ок, Владимир, понял, спасибо.
Будем что-то придумывать значит.

Vladimir Korochkin on September 2, 2014:

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

Alexey Bychkov on September 2, 2014:

Как я и говорил, мы уже давно нашли все 5 строк, которые есть в doForms но нет в Zoho за 29.08.2014.
Теперь нам помогут их recordId :-)

Vladimir Korochkin on September 3, 2014:

Алексей, доброе утро!
Есть какие то зацепки, почему стопорится передача? 

Alexey Bychkov on September 3, 2014:

Доброе утро, Владимир.

Мы всё проверили - ситуация оказалась ещё запутаннее, чем предполагалось, но никаких критических ошибок мы не обнаружили.

Описываю подробно, что мы сделали и проверили...

Проверяли 29 августа.

Взяли список из 87 строк из Zoho и получили через API набор recordId для 92 строк из doForms. Имеем 2 списка с чёткими recordId.

Затем вычеркнули из обоих списков общие recordId.

Результат оказался неожиданным.

В списке Zoho остались 29 записей (которых нет в списке doForms за этот день):
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC016jcCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC06ZTwCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC087C9Cww
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0rtPlCgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCM2MG3Cgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMkpbgCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMobfaCww
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMytLACQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCc76PGCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCc7JDCCgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCcqpKTCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCcvP_YCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCcztHRCgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM4Lm_Cgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDc1OaGCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDckszHCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDcktrWCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDs-7yACgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDs08D2Cgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDs1LCbCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDs7tquCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDshuzRCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDshvqQCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDsj8b7Cgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDsmY6jCww
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDsu6CnCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDsvrvOCgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDswpa3CQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDsx5y5CQw

В списке doForms остались 34 записи (которых нет в списке Zoho за этот день):
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0gLrACww
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMzdDtCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM7rnrCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMgq7BCww 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMxNDnCQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMD0x_3DCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDU-oXLCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMvv7uCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDUjdySCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMxPPGCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM-c6nCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMD0hK3ICAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC06YSWCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMD0hK2oCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0hNy2CQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMtKjDCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM9LL5Cgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMt9W1CAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDU8erdCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCM7dC6CQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMm6KJCQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMobTvCww 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM3YzeCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMwPSxCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMirG6Cgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMrIHRCQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMo-G_CQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMo8jWCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0p4_BCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCM18SMCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMycvACQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMvuH3CAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMi6-ECAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMtqe8CAw 

Делаем внимательную проверку по этим recordId.

С Zoho Всё ясно - они все добавлены в Zoho, проверять это не нужно, они и так не пропущены и присутствуют в Zoho.

Проверяем recordId, оставшиеся в списке doForms:

О 7 записях из 34 наша система знает, но ещё не успела импортировать их в Zoho (таких записей в нашей системе 2404 штуки на данный момент):
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0gLrACww
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMzdDtCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMirG6Cgw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMrIHRCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMo-G_CQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMo8jWCAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0p4_BCAw

27 записей из 34 есть в нашей системе и уже импортированы в Zoho (только их Date_Created датированы 28 и 27 августа, а по факту импортированы в Zoho они в конце августа - начале сентября):
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM7rnrCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMgq7BCww 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMxNDnCQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMD0x_3DCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDU-oXLCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMvv7uCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDUjdySCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMxPPGCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM-c6nCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMD0hK3ICAw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC06YSWCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMD0hK2oCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMC0hNy2CQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMtKjDCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM9LL5Cgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMt9W1CAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDU8erdCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCM7dC6CQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCMm6KJCQw
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMobTvCww 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDM3YzeCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMwPSxCAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMCM18SMCgw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMycvACQw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMvuH3CAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMi6-ECAw 
ag9zfm15ZG9mb3Jtcy1ocmRyPQsSMGFnOXpmbTE1Wkc5bWIzSnRjeTFvY21SeUVRc1NCRVp2Y20wWWdJQ0Fxdl9ndUFnTRiAgMDMtqe8CAw 

То есть на основании этих проверок я делаю такие выводы:
1. Наша система знает о всех участвующих в тесте записях и ничего не пропустила (только какие-то из них не участвуют в выборке Zoho, а какие-то ещё не импортированы в Zoho)
2. Фильтр по датам в doForms и Zoho работает по-разному и кол-во записей за один день там и там совпадать и не должны похоже

То есть я пока не вижу проблемы, которые следует решать/исправлять. Жду ваших комментариев.

Vladimir Korochkin on September 3, 2014:

Алексей, спасибо большое. 

На счет фильтра это верно. Сегодня мы сделаем в zoho фильтр по колонке "Date_Created" - потому что DoForms именно по нему фильтрует данные. И следовательно буду разбираться по какой логике данные переправляются чтобы понимать когда можно было бы их выгружать для анализа нашему клиенту. 

Alexey Bychkov on September 3, 2014:

Хорошо, Владимир.
Сигнализируйте, если будут какие-то вопросы/проблемы.

Vladimir Korochkin on September 3, 2014:

"О 7 записях из 34 наша система знает, но ещё не успела импортировать их в Zoho (таких записей в нашей системе 2404 штуки на данный момент):"

Алексей, я также делал и ручную выгрузку всех анкет за август и часть сентября, их на данный момент на 02.09.2014  4488  (это моя ручная выгрузка) а В Зохо их за тот же период всего 2678. Следовательно 1810 анкет мы не дополучили. Мы не имеем проблем с интеграцией, но получается мы имеем проблемы с скоростью передачи данных. К сожалению клиент не будет ждать пока ему в конце сентября могут прийти оставшиеся 1810 анкет за август - ему отчет нужен каждую неделю.  Максимум мы можем дать время 3-5 дней на переправку той или иной анкеты. 

Alexey Bychkov on September 3, 2014:

Наш крон запускается раз в 10 минут. То есть примерно 6 раз в час, 144 в сутки. За каждый запуск по каждой анкете наш крон пытается обработать (получить данные из doForms и добавить в Zoho) до 50 записей. То есть в теории наш крон может добавлять в сутки до 7200 строк по каждой анкете.

Но! Как мы обсуждали выше - doForms имеет лимиты. И, насколько я вижу, на сегодня эти лимиты для Megafon_Mult_v43 уже превышены. 

Проверяю по базе - вижу, что за последние сутки в Zoho по этой анкете добавлено 1800 записей. Значит это и есть наш лимит в doForms для этой анкеты.

То есть за 2 дня недобавленные 2404 записи спокойно добавятся.

Другой вопрос - откуда они появились - эти недобавленные записи?

Я думаю, что кто-то недавно очищал ошибки для этой анкеты и их, судя по всему, было много (несколько тысяч). А очистка ошибок - это по сути добавление пустых записей в нашу систему на проботку. И таким образом добавили большое количество записей на добавление. Вот они сейчас и добавляются потихоньку.

Так что, по сути, проблем со скоростью передачи данных нет.

Vladimir Korochkin on September 3, 2014:

Я понял.  Да я занимался исправлением ошибок их там было 7243. Это логично объясняет ситуацию. Просто в системе напротив анкеты стоит статус "лимит не превышен" - поэтому я не предполагал что мы превышали лимиты. 
Тогда будем ждать еще некоторое время и смотреть как количество анкет в DoForms сравняется с количеством анкет в Zoho. 

Alexey Bychkov on September 3, 2014:

Просто в системе напротив анкеты стоит статус "лимит не превышен" - поэтому я не предполагал что мы превышали лимиты. 
Странно, проверил только что.
Вот здесь: http://chat.mytask.me/inside/export_doforms_zoho_account/index/9
Исчерпан лимит за сутки - ДА. В строке с анкетой Megafon_Mult_v43.

Alexey Bychkov on September 3, 2014:


Тогда будем ждать еще некоторое время и смотреть как количество анкет в DoForms сравняется с количеством анкет в Zoho.

Ок, сигнализируйте.