Тема: Групповые отчеты
Добрый день! Скажите пожалуйста предусмотрено ли через wialon pro sdk выполнение групповых отчетов?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Добрый день! Скажите пожалуйста предусмотрено ли через wialon pro sdk выполнение групповых отчетов?
Принцип выполнения групповых отчетов такой же как и для отдельных объектов.
Принцип выполнения групповых отчетов такой же как и для отдельных объектов.
По такому же принципу получаю {error: 4} для других отчетов все хорошо. Вместо id объекта я должен положить id группы? Как получить группу?
zuve пишет:Принцип выполнения групповых отчетов такой же как и для отдельных объектов.
По такому же принципу получаю {error: 4} для других отчетов все хорошо. Вместо id объекта я должен положить id группы? Как получить группу?
Да группу, в search_items подайте itemsType=avl_unit_group вместо avl_unit. http://sdk.wialon.com/wiki/ru/pro/remot … arch_items
Здравствуйте, у меня сложности отчетами.
Помогите определить параметры для svc=report/exec_report:
svc=report/exec_report¶ms={"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¶ms={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
}
]
}
Что это за параметр?
> После поиска 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]. Что эти дают?
Испробованы все мыслимые и немыслимые комбинации.
Вот полный вывод, если интересно:
root@wialon-srv:~# wialon-json "svc=core/search_items¶ms={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¶ms={"user": "*****", "password": "*****"}' -O- -q
wget 'http://localhost:8026/ajax.html?ssid=0dc13eef70536f8255c4b69a89d70205&svc=core/search_items¶ms={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¶ms={}' -O- -q
root@wialon-srv:~# wialon-json "svc=core/search_items¶ms={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¶ms={"user": "*****", "password": "*****"}' -O- -q
wget 'http://localhost:8026/ajax.html?ssid=a5aa8d6b739df07e310bda66b9c4eeed&svc=core/search_items¶ms={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¶ms={}' -O- -q
> Далее в запросе svc=report/exec_report вы указываете id группы объектов, по которой хотите выполнить отчет, id ресурса, в котором содержится нужный шаблон, и id шаблона отчета.
Вот не понимаю я этих id, id и еще раз id.
Мне надо как-то так: $json->{'items'}[0]{'id'}, или [?svc=core/search_items¶ms={...}]/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¶ms={"user": "*****", "password": "*****"}';
my $decoded = decode_json $json;
my $ssid = $decoded->{'ssid'};
$json = get 'http://localhost:8026/ajax.html?svc=core/search_items¶ms={
"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¶ms={
"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 и вопросов по коду обращайтесь на форуме к нашим разработчикам напрямую. Там вы можете завести новую тему либо поискать в существующих.
Поздравляю, я с Вами.
Пока не научусь колдунству, не отстану от вас. :-)
С флагом шаблонов отчета вообще все неверно, видимо вы не пердупредили техподдержку, чтоу вас 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
Смыславая нагрузка этих параметров разъеснена в документации, не вижу смысла ее дублировать.
Дада, спасибо! Я прыгаю и хлопаю синхронно с Вами :-)