1

Пробег через SDK

(edited by Andriy 19/06/2013 15:22:02)

Topic: Пробег через SDK

Как можно узнать пробег объекта за период, используя SDK?

Насколько я понимаю, то нужно создать отчет, или есть какие то другие методы?

Если возможно только через отчеты, то какой порядок действий нужно произвести? В SDK по этому поводу не очень ясно...

2

Пробег через SDK

(edited by zuve 19/06/2013 16:34:10)

Re: Пробег через SDK

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

Development Department
Gurtam
3

Пробег через SDK

Re: Пробег через SDK

Спасибо за ответ! С отчетами уже более-менее разобрался благодаря этой теме: Remote API отчеты.

Заглянул в документацию - создание слоя треков однозначно лучше!!!

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

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

4

Пробег через SDK

Re: Пробег через SDK

Andriy wrote:

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

да, можно. http://sdk.wialon.com/wiki/en/sidebar/r … xec_report

At the dark side of telematics...
5

Пробег через SDK

Re: Пробег через SDK

Хм... сделал создав слой треков. Но вот как проверить, то я не знаю:)
С каким значением в отчете нужно сравнивать это значение пробега, которое получаем со слоя треков?

6

Пробег через SDK

Re: Пробег через SDK

Всё, уже разобрался, все правильно показывает. Пробег, что в слое треков - это конечный пробег с отчета.

7

Пробег через SDK

Re: Пробег через SDK

Еще вопрос такой, а пробег в геозонах можно только с отчета получить?

8

Пробег через SDK

(edited by Andriy 20/06/2013 17:11:48)

Re: Пробег через SDK

И, может кто подскажет, Какой порядок действий для выполнения отчета через Remote API?

Там в параметрах запроса report/exec_report нужно указывать:
reportResourceId - его, я так понял, можно достать добавив в сессию объекты типа avl_resource.
reportTemplateId - id шаблона. Но тут непонятно. Выходит шаблон сначала создать надо, а после того как достали данные - удалить?

reportObjectId       ID элемента
reportObjectSecId  ID подэлемента, например геозоны или уведомления, если у элемента нету подэлементов, то 0
С этим вообще не понятно.
"reportTemplate":<object> - JSON шаблона отчета, который можно получить выполнив запрос get_report_data (необязательный параметр, используется только если reportResourceId равен 0). Это выходит, что если я не указываю id шаблона (0), то я должен указать шаблон в формате JSON, в котором указаны данные что мне нужно?

Добавлено спустя   6 минут  11 секунд:
И еще нет ли какого то описания таблиц, а то парсить JSON с report/get_report_table и потом разбирать - не очень простой выход:)

reportObjectId (ID элемента) - может быть - это id объекта, по которому надо выполнить отчет?

9

Пробег через SDK

Re: Пробег через SDK

Andriy wrote:

Еще вопрос такой, а пробег в геозонах можно только с отчета получить?

да

Andriy wrote:

Это выходит, что если я не указываю id шаблона (0), то я должен указать шаблон в формате JSON, в котором указаны данные что мне нужно?

Вы указываете reportResourceId равным 0, а в reportTemplate подаете JSON

Andriy wrote:

reportObjectId       ID элемента
reportObjectSecId  ID подэлемента, например геозоны или уведомления, если у элемента нету подэлементов, то 0
С этим вообще не понятно.

Ну вам же нужно выполнить отчет для какого то элемента, если это объект то в reportObjectId вы указываете  id объекта, если вам нужно выполнить отчет для водителя, то в reportObjectId вы указываете ресурс водителя, а в reportObjectSecId id  водителя.

Andriy wrote:

И еще нет ли какого то описания таблиц, а то парсить JSON с report/get_report_table и потом разбирать - не очень простой выход:)

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

Development Department
Gurtam
10

Пробег через SDK

Re: Пробег через SDK

Спасибо огромное!!! И что бы я без Вас делал:)
Еще не совсем ясным остается вопрос по id ресурсов: reportObjectId, reportObjectId, reportObjectSecId.
Вот я применяю поиск по типу avl_resource, получаю такой ответ:
[items] => Array
        (
            [0] => Array
                (
                    [nm] => report_template
                    [cls] => 3
                    [id] => 97915
                    [rep] => Array
                        (
                            [1] => Array
                                (
                                    [id] => 1
                                    [n] => Отчет по топливу
                                    [ct] => avl_unit
                                    [c] => 58079
                                )
.......
[1] => Array
                (
                    [nm] => wialon_test
                    [cls] => 3
                    [id] => 717314
                    [drvrs] => Array
                        (
                            [1] => Array
                                (
                                    [id] => 1
                                    [n] => Копия RRoman
                           ....
                      [rep] => Array
                        (
                            [1] => Array
                                (
                                    [id] => 1
                                    [n] => Пробег
                                    [ct] => avl_unit
                                    [c] => 10875
                                )

                        )

Добавлено спустя   4 минуты  41 секунду:
Значит  reportObjectId - это id ресурса (в данном случае id пользователя wialon_test), вот этот - [id] => 717314
reportObjectId - (id объекта) - это выходит то же самое?
а в reportObjectSecId будет в данном случае [id] => 1 (для водителя Копия RRoman)?

Добавлено спустя   6 минут  31 секунду:
Просто не совсем понятно что подразумевается под ресурсом.

11

Пробег через SDK

Re: Пробег через SDK

Я так понимаю вы все таки решили выполнить отчет из шаблона. В качестве примера рассмотрим отчет по топливу. Чтобы его выполнить в параметре reportResourceId нужно указать ресурс шаблона отчета, в вашем случае это 97915,  reportTemplateId - 1, reportObjectId - id бъекта для которого вы хотите выполнить отчет, reportObjectSecId - 0, т.к. объект не содержит подэлементов.

Development Department
Gurtam
12

Пробег через SDK

Re: Пробег через SDK

Здравствуйте. Извините, что так внезапно пропал, были проблемы не связанные с Виалоном.

zuve wrote:

Я так понимаю вы все таки решили выполнить отчет из шаблона.

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

Спасибо за Ваше объяснение на примере. У меня получилось выполнить через СДК отчет, который уже есть в системе. Но на этот раз загвоздка в своем шаблоне. Т.е. когда reportResourceId=0, а в последнем параметре указывается JSON шаблон отчета.
Шаблон беру самый простой по пробегу запросом report/get_report_data
[{
    "id":1,
    "n":"пробег",
    "ct":"avl_unit",
    "p":"",
    "tbl":[{
        "n":"unit_stats",
        "l":"Статистика",
        "c":"",
        "cl":"",
        "s":"address_format",
        "sl":"Address",
        "p":"{\"address_format\": \"0_10_5\"}",
        "sch":{
            "f1":0,
            "f2":0,
            "t1":0,
            "t2":0,
            "m":0,
            "y":0,
            "w":0
            },
        "f":0
        },
        {
        "n":"unit_trips",
        "l":"Поездки",
        "c":"",
        "cl":"",
        "s":"mileage,correct_mileage,urban_mileage,suburban_mileage,absolute_mileage_begin,absolute_mileage_end,avg_speed,max_speed",
        "sl":"Пробег в поездках,Пробег (скорректированный),Городской пробег в поездках,Загородный пробег в поездках,Начальный пробег,Конечный пробег,Средняя скорость в поездках,Макс. скорость в поездках",
        "p":"",
        "sch":{
            "f1":0,
            "f2":0,
            "t1":0,
            "t2":0,
            "m":0,
            "y":0,
            "w":0
            },
        "f":0
        }]
}]
когда указываю reportResourceId=0 - мне выдает ошибку 7 (Доступ запрещен). Пробовал ставить уже и reportTemplateId=0 и менять немного параметры, но тогда выдает 4-ю ошибку (неправильный ввод). Могу предположить, что для выполнения отчета мне не хватает прав (7-я ошибка) или я в чем то ошибся? Например в шаблоне. Возможно нам не все параметры надо указать? или id какой то конкретный?
Это уже остается последний шаг к поставленной задаче - все остальное уже по накатанной, и тут такая внезапная ошибка!

13

Пробег через SDK

Re: Пробег через SDK

В документации была допущена ошибка. Новая версия здесь.
reportResourceId должен быть указан в любом случае, от имени создателя данного ресурса будет выполняться отчет,  а вот  reportTemplateId должен быть 0.

Development Department
Gurtam
14

Пробег через SDK

Re: Пробег через SDK

Спасибо. Пробовал и так, но тогда выдает 4-ю:(
Ну, буду еще смотреть что и где...

15

Пробег через SDK

Re: Пробег через SDK

Хм... что не делаю - все равно 4-я ошибка. Уже даже полностью копировал JSON который приходил с report/get_report_data, записывал параметры массивом и использовал json_encode - все равно одно и тоже.

В шаблоне отчета точно все параметры нужно указывать (те что приходят из ) report/get_report_data?

16

Пробег через SDK

Re: Пробег через SDK

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

Development Department
Gurtam
17

Пробег через SDK

Re: Пробег через SDK

zuve wrote:

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

Пытаюсь сделать все это дело на php + curl (и как раз до этого момента все было ок smile). Собственно каждая команда типа report/get_report_data или report/exec_report сделана в виде отдельной фун-и. Так вот на счет выполнения отчетов... если я параметр reportTemplateId ставлю 1 (т.е. тот, что уже есть в системе) - получаю выполненный отчет, меняю 1 на 0 - получаю 4-ю ошибку (JSON шаблон, естественно, присутствует)...

zuve wrote:

Когда разбиралась с вашим вопросом выполняла отчет по пробегу который  вы присылали

А у Вас, случаем, кусочка кода с запросом не осталось? smile

18

Пробег через SDK

Re: Пробег через SDK

Andriy wrote:

А у Вас, случаем, кусочка кода с запросом не осталось?

Пример выполнения вашего отчета на одном из объектов Wialon Hosting

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report&params={
    "reportResourceId":717314,
    "reportTemplateId":0,
    "reportObjectId":898446,
    "reportObjectSecId":0,
    "interval":{
        "from":1370021400,
        "to":1372699799,
        "flags":0
    },
    "reportTemplate":{
        "id":1,
        "n":"пробег",
        "ct":"avl_unit",
        "p":"",
        "tbl":[{
            "n":"unit_stats",
            "l":"Статистика",
            "c":"",
            "cl":"",
            "s":"address_format",
            "sl":"Address",
            "p":"{\"address_format\": \"0_10_5\"}",
            "sch":{
            "f1":0,
            "f2":0,
            "t1":0,
            "t2":0,
            "m":0,
            "y":0,
            "w":0
            },
            "f":0
            },
            {
            "n":"unit_trips",
            "l":"Поездки",
            "c":"",
            "cl":"",
            "s":"mileage,correct_mileage,urban_mileage,suburban_mileage,absolute_mileage_begin,absolute_mileage_end,avg_speed,max_speed",
            "sl":"Пробег в поездках,Пробег (скорректированный),Городской пробег в поездках,Загородный пробег в поездках,Начальный пробег,Конечный пробег,Средняя скорость в поездках,Макс. скорость в поездках",
            "p":"",
            "sch":{
            "f1":0,
            "f2":0,
            "t1":0,
            "t2":0,
            "m":0,
            "y":0,
            "w":0
            },
            "f":0
        }]
    }    
}&sid=575e3b6a96f8646da5b08b355217b721
Development Department
Gurtam
19

Пробег через SDK

Re: Пробег через SDK

ОООО!!! Вы не поверите! Все вышло!!!

И как всегда в таких случаях, проблема была, ну, почти что элементарная - квадратные скобки окружающие шаблон. Когда я брал шаблон с помощью report/get_report_data, мне он присылался в виде [{"id":1,...}]. Вот я и отправлял его так же "reportTemplate":[{...}].
А я все это время голову ломал!
Спасибо Вам огромное за Ваше терпение и помощь! Если бы не Вы - 100% не смог бы разобраться.

20

Пробег через SDK

Re: Пробег через SDK

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

Development Department
Gurtam