1

Поиск Заказа через API по имени или произвольным полям

(edited by prog77 01/12/2016 21:37:57)

Topic: Поиск Заказа через API по имени или произвольным полям

Добрый день!

Делаю интеграцию 1с с Wialon-logistics. Возник вопрос.

Как образом с помощью метода core/search_item найти заказ по Имени или произвольному свойству? Возможно ли это?

Из мануала не смог понять как установить условие по Имени или произвольному свойству. "Эксперименты" результата не дали.

Например запрос, возвращает все заявки:
{"spec":{"itemsType":"avl_resource","propName":"sys_name","propValueMask":"*","sortType":"sys_name"},"force":1,"flags":"0x00080000","from":0,"to":0}

Ответ сервера и поля (1,2) по которым нужно установить условие поиска на скриншоте.

Поиск Заказа через API по имени или произвольным полям

  • Поиск Заказа через API по имени или произвольным полям
2

Поиск Заказа через API по имени или произвольным полям

Re: Поиск Заказа через API по имени или произвольным полям

prog77, search_items может возвращать только удовлетворящие условиям поиска айтемы. А у найденных айтемов будут выводиться все указанные флагами пропайтемы. Т.е search_items не может вернуть только часть заказов. Он вернёт их все (если выставлен датафлаг) для каждого найденного айтема (ресурса).
Но искать айтемы можно например по наличию строки в имени пропайтема. В этом случае в ответе будут только те ресурсы, у которых есть хотя бы один заказ с таким именем (но сами заказы будут все).
Пример: https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"orders","propValueMask":"*order*","sortType":"sys_name"},"force":1,"flags":"0x00080000","from":0,"to":0}&sid=<sid>
А искать среди самих заказов придётся уже самостоятельно.

Head of Wialon Local Department
Gurtam
3

Поиск Заказа через API по имени или произвольным полям

Re: Поиск Заказа через API по имени или произвольным полям

Теперь мне всё ясно с search_items. Проблема в том, что все Заказы привязываются к одному Ресурсу. При 100 заказов в день (24000 в год) поиск среди заказов будет слишком долгим. От Виалон будет приходить огромный JSON.

Вижу решение в том, чтобы постоянно удалять из Виалон завершенные/отклоненные заказы (orders/update с callMode=delete). Как только забрал статус заказа в 1с - удалил. Статус беру из ( search_items  "s":<uint>,            /* статус: 0 - неактивный (не привязан объект), 1 - активный, 2 - завершен вовремя, 3 - завершен с опозданием, 4 - отклонён */)

Спасибо за помощь!

4

Поиск Заказа через API по имени или произвольным полям

Re: Поиск Заказа через API по имени или произвольным полям

prog77
Не спешите удалять заказы, они уходят в историю (и перестают приходить в search_items) автоматически через сутки после выполнения

5

Поиск Заказа через API по имени или произвольным полям

Re: Поиск Заказа через API по имени или произвольным полям

Это очень важный момент. С одной стороны это хорошо, а с другой плохо.
Если я в течении суток не забрал статус заказа то как тогда его забрать?  Он же уже в search_items не приходит.
Пожалуйста, поясните какие статусы (0,1,2,3,4) отправляют заказ в историю через сутки?