1

CustomFields & Batch

Topic: CustomFields & Batch

Добрый день.

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

Параметры запроса для batch:
params=[{"svc":"item/update_custom_field","params":{"itemId":418506,"id":0, "callMode": "create", "n":"test1", "v":"test1"}},{"svc":"item/update_custom_field","params":{"itemId":418506,"id":0, "callMode": "create", "n":"test2", "v":"test2"}}]

Ответ от сервера:
[[7,{"id":7,"n":"test1","v":"test1"}],[8,{"id":8,"n":"test2","v":"test2"}]]

Судя по ответу было создано два произвольных поля с названиями test1 и test2 соответственно с id 7 и 8. Но если открыть в Wialon в настройках объекта произвольные поля, то видно, что было создано по две пары таких полей.

Если выполнить запрос search item для объекта, то тоже видно, что таких произвольных поля 4:

{"item":{"nm":"Demo01","cls":2,"id":418506,"flds":{"1":{"id":1,"n":"*","v":"*"},"2":{"id":2,"n":"*","v":"*"},"3":{"id":3,"n":"*","v":"*"},"4":{"id":4,"n":"*","v":"*"},"5":{"id":5,"n":"*","v":"*"},"6":{"id":6,"n":"*","v":"*"},"7":{"id":7,"n":"test1","v":"test1"},"8":{"id":8,"n":"test2","v":"test2"},"9":{"id":9,"n":"test1","v":"test1"},"10":{"id":10,"n":"test2","v":"test2"}},"fldsmax":0,"uacl":551903300195},"flags":9}

Gurtam Operator
www.gurtam.by
2

CustomFields & Batch

Re: CustomFields & Batch

Судя по всему у вас где то 2 раза вызывается batch. Проверяла у себя, создается ровно столько полей сколько указано.

Development Department
Gurtam
3

CustomFields & Batch

(edited by daek 27/06/2013 19:11:35)

Re: CustomFields & Batch

zuve
Batch вызывается только один раз. Перепроверяла проблема действительно не в ней. Дублирующее поле создается при вызове svc=item/update_custom_field.

Код:
include_once('WialonConnection.php');
        //****************************Авторизация********************************************
                $url = 'hst-api.wialon.com';
                $wialon = new WialonConnection( $url );
        $ansLoginJson = $wialon -> Login($_REQUEST["login"], $_REQUEST["password"]);    
        $ansLogin = json_decode( $ansLoginJson, true );
        $wialon -> SetSid( $ansLogin[eid] );
        //***********************************************************************************
       
       
        //****************************Получение информации об объекте************************
        $answerSearchJson = $wialon -> SearchItemsById( $_REQUEST["id"], "9");
        echo $answerSearchJson."<br>";
        //***********************************************************************************
       
       
        //****************************Создание произвольного поля*****************************
        echo "----------------------------------------------------------------------------<br>";
        $answerCustmoJson = $wialon -> CreateCustomField( $_REQUEST["id"], 'test', 'test' );
        echo $answerCustmoJson."<br>";
        echo "----------------------------------------------------------------------------<br>";
        //***********************************************************************************
       
       
        //****************************Получение информации об объекте************************
        $answerSearchJson = $wialon -> SearchItemsById( $_REQUEST["id"], "9");
        echo $answerSearchJson."<br>";
        echo "----------------------------------------------------------------------------<br>";
        //***********************************************************************************
       
       
        //Второе произвольное поле создается уже после выполнения этого кода, исходя из ответа сервера
       
        // Функция создания произвольно поля(без каких либо циклов)
        function CreateCustomField( $itemId, $nameField, $valueField ){
            $url = $this -> url."item/update_custom_field&sid=".$this -> eid;
            $params = '{"itemId":'.$itemId.',"id":0,"callMode":"create","n":'.$nameField.',"v":'.$valueField.'}';
            $params = 'params='.$params;
            $answer = $this -> SendRequest($url, $params);
            return $answer;
        }


Ответ после выполнения всего этого кода:
{"item":{"nm":"Demo01","cls":2,"id":418506,"flds":{"1":{"id":1,"n":"Статус","v":"Ремонт"},"2":{"id":2,"n":"Клиент","v":"Gurtam"},"3":{"id":3,"n":"Дата прибытия","v":"20.06.2012"},"4":{"id":4,"n":"Пункт разгрузки","v":"Воронеж"},"5":{"id":5,"n":"Водитель","v":"Иванов И.И."},"6":{"id":6,"n":"Номер таможенной декларации","v":"53049793"}},"fldsmax":0,"uacl":551903300195},"flags":9}
----------------------------------------------------------------------------
[7,{"id":7,"n":"test","v":"test"}]
----------------------------------------------------------------------------
{"item":{"nm":"Demo01","cls":2,"id":418506,"flds":{"1":{"id":1,"n":"Статус","v":"Ремонт"},"2":{"id":2,"n":"Клиент","v":"Gurtam"},"3":{"id":3,"n":"Дата прибытия","v":"20.06.2012"},"4":{"id":4,"n":"Пункт разгрузки","v":"Воронеж"},"5":{"id":5,"n":"Водитель","v":"Иванов И.И."},"6":{"id":6,"n":"Номер таможенной декларации","v":"53049793"},"7":{"id":7,"n":"test","v":"test"}},"fldsmax":0,"uacl":551903300195},"flags":9}
----------------------------------------------------------------------------


За время пока я перехожу к произвольным полям объекта появляется еще одно поле с такими же параметрами.

Gurtam Operator
www.gurtam.by
4

CustomFields & Batch

(edited by zuve 28/06/2013 10:22:43)

Re: CustomFields & Batch

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

Development Department
Gurtam
5

CustomFields & Batch

Re: CustomFields & Batch

Во-первых, я бы попросил меньше сарказма и больше ответственности с Вашей стороны.
А во вторых, если Вы хотите наглядную демонстрацию - можем приехать в гости smile

С уважением, Евгений.