1

Вопросы по Remote API

Тема: Вопросы по Remote API

Здравствуйте.

Занимаюсь разработкой приложения на C++ с использованием Remote API и библиотеки libcurl как посоветовали в соседней теме.
Наткнулся на ряд непонятных моментов.

Пытаюсь создать ресурс с помощью следующего тела POST-запроса

svc=core/create_resource&sid=4070a68ff1106b23b3fff3b08068912c&params={"creatorId":545712,"name":"r1templ","dataFlags":1}

В результате получаю

{"error":4}

Непонятно причем тут "Неверный ввод" (Invalid input)
С чем это может быть связано?

ID создателя делаю равным ID пользователя под которым вхожу в систему.
Чтобы найти этот ID вывожу список пользователей (cуперкласс 3) одним из описанных в документации способов и беру ID того элемента, у которого имя совпадает с тем под которым зашел в систему.

2

Вопросы по Remote API

Re: Вопросы по Remote API

alexeyma
Эта ошибка в вашем случае может возникать по причине name меньше четырех символов, какие-то другие параметры некорректные, либо у пользователя с указанным id нет прав на создание ресурса.

Mobile Development
Gurtam
3

Вопросы по Remote API

Re: Вопросы по Remote API

Следующий вопрос связан с формированием отчетов.
Пытаемся выполнить следующую последовательность действий:
Получаем список объектов и выбираем объект по которому хотим получить отчет:

Request = "svc=core/search_items&sid="+AnsiString(eid.c_str())+"&params={\"spec\":{\"itemsType\":\"avl_unit\",\"propName\":\"sys_name\",\"propValueMask\":\"*\",\"sortType\":\"\"},\"force\":1,\"flags\":1,\"from\":0,\"to\":100}";

получаем в ответ:

{"searchSpec":{"itemsType":"avl_unit","propName":"sys_name","propValueMask":"*","sortType":"","propType":""},"dataFlags":1,"totalItemsCount":2,"indexFrom":0,"indexTo":1,"items":[{"nm":"Ключавто_Toyota camry A951EX123","cls":2,"id":253051,"uacl":550624038903},{"nm":"Ключавто_Mercedes","cls":2,"id":318222,"uacl":825504042999}]}

Выбираем объект с id = 318222
Далее получаем идентификаторы шаблонов и список идентификаторов водителей для каждого из ресурсов (он в нашем приложении один)

Request = "svc=core/search_items&sid="+AnsiString(eid.c_str())+"&params={\"spec\":{\"itemsType\":\"avl_resource\",\"propName\":\"sys_name\",\"propValueMask\":\"*\",\"sortType\":\"\"},\"force\":0,\"flags\":8449,\"from\":0,\"to\":100}";

в ответ имеем:

{"searchSpec":{"itemsType":"avl_resource","propName":"sys_name","propValueMask":"*","sortType":"","propType":""},"dataFlags":8449,"totalItemsCount":1,"indexFrom":0,"indexTo":0,"items":[{"nm":"Krasnodar1","cls":3,"id":545712,"rep":{"1":{"id":1,"n":"водитель","ct":"avl_driver","c":21360},"2":{"id":2,"n":"пробег автомобиля","ct":"avl_unit","c":27508},"3":{"id":3,"n":"reportTemplate2","ct":"avl_unit","c":20650}},"repmax":0,"drvrs":{"1":{"id":1,"n":"КАРТА 1","c":"1470154","ds":"","p":"","r":0,"ck":6515},"2":{"id":2,"n":"КАРТА 3","c":"1470134","ds":"","p":"","r":0,"ck":6515},"3":{"id":3,"n":"КАРТА 2","c":"1470153","ds":"","p":"","r":0,"ck":6515}},"drvrsmax":0,"uacl":-1}]}

Из этого выбираем шаблон для отчета с id = 3 и водителя с id = 1. id нашего ресурса, содержащего шаблоны для отчетов и водителей равен 545712
Теперь пытаемся сформировать запрос на формирование отчета:

Request = "svc=report/get_result_rows&sid="+AnsiString(eid.c_str())+
"&params={\"reportResourceId\":545712,\"reportTemplateId\":3,\"reportObjectId\":318222,\"reportObjectSecId\":1,\"interval\":{\"from\":"+IntToStr(time(NULL)-3600)+",\"to\":"+IntToStr(time(NULL))+",\"flags\":0}}";

В ответ получаем

{"error":4}

В чем может быть проблема?

4

Вопросы по Remote API

(04/12/2012 22:04:47 отредактировано atc-mon)

Re: Вопросы по Remote API

alexeyma пишет:

Теперь пытаемся сформировать запрос на формирование отчета:

Request = "svc=report/get_result_rows&sid="+AnsiString(eid.c_str())+
"&params={\"reportResourceId\":545712,\"reportTemplateId\":3,\"reportObjectId\":318222,\"reportObjectSecId\":1,\"interval\":{\"from\":"+IntToStr(time(NULL)-3600)+",\"to\":"+IntToStr(time(NULL))+",\"flags\":0}}";

В ответ получаем

{"error":4}

В чем может быть проблема?

Вообще вроде сначала делается (да и по параметрам просится именно этот запрос):
Executing Report
svc=report/exec_report

А вот потом уже svc=report/get_result_rows

Так что вы видимо просто функции перепутали.

Козлов Сергей
ООО "ГК"АТС-Мониторинг"
Регион: ПФО и не только...
http://www.atc52.ru
5

Вопросы по Remote API

Re: Вопросы по Remote API

Спасибо, очень помогло!