Вопрос

Запрос не возвращает значение

Подскажите, пожалуйста, где ошибка в запросе:

                var NumberFromRTK = 0;

                var SobjId = item.get("ITdsServiceObject").value;

                var esq = Ext.create("Terrasoft.EntitySchemaQuery", {

                    rootSchemaName: "ITdsCopySObjects"

                });

                esq.addColumn("ITdsObjectsNumber");

                esq.getEntityCollection(SobjId, function(result) {

                    if (result.success) {

                        NumberFromRTK = result.entity.get("ITdsObjectsNumber");

                    }

                }, this);

Переменной присваивается значение реального гуида '45c57641-4307-471a-9a1e-9a49bbce3646'

а sql запрос

select   ITdsObjectsNumber   from   ITdsCopySObjects where id='45c57641-4307-471a-9a1e-9a49bbce3646'

возвращает правильное значение.

Прошу помощи.

 

Нравится

3 комментария

esq.getEntityCollection не принимает 3 параметров.



Вы либо делаете esq.getEntityCollection, даёте туда 2 параметра (callback, scope) и предварительно добавляете esq.filters.addItem(...)

либо

esq.getEntity(guid, callback,scope)



Ну и плюс проверка на значение в ITdsServiceObject(чисто для красоты)

 var SobjId = item.get("ITdsServiceObject") ? item.get("ITdsServiceObject").value : null;
if (SobjId !== null) {...}

 

Варфоломеев Данила,

На сколько я знаю, фильтр используется тогда, когда выбирается несколько строк по критерию, а мне нужна единственная строка по ID

Стригина Наталья,

можно еще фильтр по id добавить. и тогда getEntityCollection вернёт коллекцию из 1 записи. Ну не суть. В  вашем примере, как я уже написал, нужно использовать esq.getEntity вместо esq.getEntityCollection.

Показать все комментарии