Подскажите, пожалуйста, где ошибка в запросе:
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'
возвращает правильное значение.
Прошу помощи.
Нравится
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.