1

Групповые отчеты

(edited by treasury 26/02/2014 18:02:50)

Topic: Групповые отчеты

Добрый день! Скажите пожалуйста предусмотрено ли через wialon pro sdk выполнение групповых отчетов?

2

Групповые отчеты

Re: Групповые отчеты

Принцип выполнения групповых отчетов такой же как и для отдельных объектов.

Development Department
Gurtam
3

Групповые отчеты

Re: Групповые отчеты

zuve wrote:

Принцип выполнения групповых отчетов такой же как и для отдельных объектов.

По такому же принципу получаю {error: 4}  для других отчетов все хорошо. Вместо id объекта я должен положить id группы? Как получить группу?

4

Групповые отчеты

Re: Групповые отчеты

treasury wrote:
zuve wrote:

Принцип выполнения групповых отчетов такой же как и для отдельных объектов.

По такому же принципу получаю {error: 4}  для других отчетов все хорошо. Вместо id объекта я должен положить id группы? Как получить группу?

Да группу, в search_items подайте itemsType=avl_unit_group вместо avl_unit. http://sdk.wialon.com/wiki/ru/pro/remot … arch_items

Mobile Development
Gurtam
5

Групповые отчеты

Re: Групповые отчеты

Здравствуйте, у меня сложности отчетами.

Помогите определить параметры для svc=report/exec_report:

svc=report/exec_report&params={"reportResourceId":<long>,
                   "reportTemplateId":<long>,
                   "reportObjectId":<long>,
                   "reportObjectSecId":<long>,
                   "interval":{
                           "from":<uint>,
                           "to":<uint>,
                           "flags":<uint>
                   },
                   "reportTemplate":<object>}

17.04.2014 20:34, Gurtam Support пишет:
> После поиска svc=core/search_items по группам объектам (avl_unit_group) и указания флага 1 (0x00000001 = 1)  вам вернется информация с id найденных групп и их именами, из них находите нужную.

Добываю какой-то параметр - 1478:

# wialon-json 'svc=core/search_items&params={spec:{itemsType:avl_unit_group,propName:sys_name,propValueMask:"Sweden Cargo",sortType:property},force:0,from:0,to:0xffffffff,flags:0x1}'

Ответ:

{
   "indexFrom" : 0,
   "totalItemsCount" : 1,
   "dataFlags" : 1,
   "searchSpec" : {
      "sortType" : "property",
      "itemsType" : "avl_unit_group",
      "propName" : "sys_name",
      "propValueMask" : "Sweden Cargo"
   },
   "indexTo" : 0,
   "items" : [
      {
         "cls" : 6,
         "nm" : "Sweden Cargo",
         "id" : 1478
      }
   ]
}

Что это за параметр?

  • reportResourceId
  • reportTemplateId
  • reportObjectId
  • reportObjectSecId

> После поиска svc=core/search_items по ресурсам ( avl_resource ) и указания флага 8193 (0x00000001 | 0x00002000 = 0x2001 = 8193) вам вернется информация c id ресурса и id шаблонов отчетов, находящихся в них.
> Из них находите нужный шаблон, запоминаете его id и id ресурса, в котором он находится.

Если flags:0x2001, то "id" : 1412

{
   "indexFrom" : 0,
   "totalItemsCount" : 1,
   "dataFlags" : 8193,
   "searchSpec" : {
      "sortType" : "property",
      "itemsType" : "avl_resource",
      "propName" : "sys_name",
      "propValueMask" : "dev"
   },
   "indexTo" : 0,
   "items" : [
      {
         "poimax" : -1,
         "cls" : 4,
         "nm" : "dev",
         "poi" : {},
         "id" : 1412
      }
   ]
}

Если flags:0x8193 (у меня Wialon Pro), то так:

{
   "indexFrom" : 0,
   "totalItemsCount" : 1,
   "dataFlags" : 33171,
   "searchSpec" : {
      "sortType" : "property",
      "itemsType" : "avl_resource",
      "propName" : "sys_name",
      "propValueMask" : "dev"
   },
   "indexTo" : 0,
   "items" : [
      {
         "cls" : 4,
         "pup" : {},
         "prp" : {},
         "nm" : "dev",
         "repmax" : -1,
         "id" : 1412,
         "rep" : {
            "1" : {
               "nm" : "превышение скорости в группе",
               "id" : 1,
               "ct" : "avl_unit_group"
            }
         }
      }
   ]
}

И так, есть еще три новых значения:
[1412, 1, 1]. Что эти дают?

  • reportResourceId
  • reportTemplateId
  • reportObjectId
  • reportObjectSecId

Испробованы все мыслимые и немыслимые комбинации.

Вот полный вывод, если интересно:

 
root@wialon-srv:~# wialon-json "svc=core/search_items&params={spec:{itemsType:avl_resource,propName:sys_name,propValueMask:"dev",sortType:property},force:0,from:0,to:0xffffffff,flags:0x8193}"
wget 'http://localhost:8026/ajax.html?svc=core/login&params={"user": "*****", "password": "*****"}' -O- -q
wget 'http://localhost:8026/ajax.html?ssid=0dc13eef70536f8255c4b69a89d70205&svc=core/search_items&params={spec:{itemsType:avl_resource,propName:sys_name,propValueMask:dev,sortType:property},force:0,from:0,to:0xffffffff,flags:0x8193}' -O- -q
{  
   "indexFrom" : 0,
   "totalItemsCount" : 1,
   "dataFlags" : 33171,
   "searchSpec" : {
      "sortType" : "property",
      "itemsType" : "avl_resource",
      "propName" : "sys_name",
      "propValueMask" : "dev"
   },
   "indexTo" : 0,
   "items" : [
      {  
         "cls" : 4,
         "pup" : {},
         "prp" : {},
         "nm" : "dev",
         "repmax" : -1,
         "id" : 1412,
         "rep" : {
            "1" : {
               "nm" : "превышение скорости в группе",
               "id" : 1,
               "ct" : "avl_unit_group"
            }
         }
      }
   ]
}
wget 'http://localhost:8026/ajax.html?ssid=0dc13eef70536f8255c4b69a89d70205&svc=core/logout&params={}' -O- -q
root@wialon-srv:~# wialon-json "svc=core/search_items&params={spec:{itemsType:avl_resource,propName:sys_name,propValueMask:"dev",sortType:property},force:0,from:0,to:0xffffffff,flags:8193}"
wget 'http://localhost:8026/ajax.html?svc=core/login&params={"user": "*****", "password": "*****"}' -O- -q
wget 'http://localhost:8026/ajax.html?ssid=a5aa8d6b739df07e310bda66b9c4eeed&svc=core/search_items&params={spec:{itemsType:avl_resource,propName:sys_name,propValueMask:dev,sortType:property},force:0,from:0,to:0xffffffff,flags:8193}' -O- -q
{  
   "indexFrom" : 0,
   "totalItemsCount" : 1,
   "dataFlags" : 8193,
   "searchSpec" : {
      "sortType" : "property",
      "itemsType" : "avl_resource",
      "propName" : "sys_name",
      "propValueMask" : "dev"
   },
   "indexTo" : 0,
   "items" : [
      {  
         "poimax" : -1,
         "cls" : 4,
         "nm" : "dev",
         "poi" : {},
         "id" : 1412
      }
   ]
}
wget 'http://localhost:8026/ajax.html?ssid=a5aa8d6b739df07e310bda66b9c4eeed&svc=core/logout&params={}' -O- -q

> Далее в запросе svc=report/exec_report вы указываете id группы объектов, по которой хотите выполнить отчет, id ресурса, в котором содержится нужный шаблон, и id шаблона отчета.

Вот не понимаю я этих id, id и еще раз id.
Мне надо как-то так: $json->{'items'}[0]{'id'}, или [?svc=core/search_items&params={...}]/items/1/id,что бы я понимал точный путь элемента.
Вот, пример кода, написанного специально для выяснения вопроса:

#!/usr/bin/perl -w

use strict;
use JSON qw( decode_json );
my $jsonopt = new JSON;
$jsonopt->allow_nonref;

my $json = get 'http://localhost:8026/ajax.html?svc=core/login&params={"user": "*****", "password": "*****"}';
my $decoded = decode_json $json;
my $ssid = $decoded->{'ssid'};

$json = get 'http://localhost:8026/ajax.html?svc=core/search_items&params={
     "spec":{
         "itemsType":"avl_unit_group",
         "propName":"sys_name",
         "propValueMask":"Sweden Cargo",
         "sortType":"guid"
     },
     "force":0,
     "from":0,
     "to":0xffffffff,
     "flags":0x8193
 }';
$decoded = decode_json $json;
my $reportResourceId = $decoded->{'items'}[0]{'id'} if $decoded->{'indexTo'} == 0;

$json = get 'http://localhost:8026/ajax.html?svc=core/search_items&params={
     "spec":{
         "itemsType":"avl_resource",
         "propName":"sys_unique_id",
         "propValueMask":"*",
         "sortType":"property"
     },
     "force":0,
     "from":0,
     "to":0xffffffff,
     "flags":0x8193
 }';
$decoded = decode_json $json;
my $reportTemplateId;
for (my $i = 0; $i <= $decoded->{'indexTo'}; $i++) {
  $reportTemplateId = $decoded->{'items'}[$i]{'id'} if $decoded->{'items'}[$i]{'nm'} == "превышение скорости в группе";
}

$json = get 'http://localhost:8026/ajax.html?svc=не/знаю';
$decoded = decode_json $json;
my $reportObjectId = $decoded->{'items'}[0]{'id'};

$json = get "http://localhost:8026/ajax.html?svc=report/exec_report&
    params={
        reportResourceId:$reportResourceId,
        reportTemplateId:$reportTemplateId,
        reportObjectId:$reportObjectId,
        reportObjectSecId:0,
        interval:{
            from:0,
            to:0xffffffff,
            flags:0x02
        },
        tzOffset:14400,
        lang:ru
    }&ssid=$ssid";
$decoded = decode_json $json;

Надеюсь, я достаточно подробно объяснил, что именно мне нужно.

> Для получения консультаций по работе с SDK и вопросов по коду обращайтесь на форуме к нашим разработчикам напрямую. Там вы можете завести новую тему либо поискать в существующих.

Поздравляю, я с Вами.
Пока не научусь колдунству, не отстану от вас. :-)

6

Групповые отчеты

(edited by zuve 21/04/2014 14:30:16)

Re: Групповые отчеты

С флагом шаблонов отчета вообще все неверно, видимо вы не пердупредили техподдержку, чтоу  вас Pro, поэтому сервер вам прислал информацию о poi. Для pro отчеты можно получить флагом 0x8000 (http://sdk.wialon.com/wiki/ru/pro/remot … t/resource).  И по скольку вам вернулись пои, то ни о каком айди отчета мы не можем говорить)))

В целом, переварить все, что вы написали очень сложно, но резюмирую:
reportResourceId - 1412
reportTemplateId - вы получаете из запроса core/search_items c флагом 0x8001
reportObjectId - 1478
reportObjectSecId - 0

Смыславая нагрузка этих параметров разъеснена в документации, не вижу смысла ее дублировать.

Development Department
Gurtam
7

Групповые отчеты

Re: Групповые отчеты

Дада, спасибо! Я прыгаю и хлопаю синхронно с Вами :-)