Вопрос

Запрос к серверу из мобильной версии

Добавляю фильтр в правиле поля:

        let vFilter = Ext.create("Terrasoft.Filter", {

            name: "CaseOwnerByGroupFiltration",

            modelName: "SysAdminUnit",//фильтрующая таблица

            property: "Id",//по какой колонке фильтруем

            assocProperty: "ContactId",//результат фильтрации

            funcType: Terrasoft.FilterFunctions.In,

            funcArgs: ["87ca4908-f689-4b6b-b87b-934b4bf1c148",

                    "ae82c2be-09a2-4e7e-be52-b38a24a45037",

                    "fbf4d7aa-a7af-43e6-9d45-ca0a100576cf",

                    "9e58f420-47d7-4d5e-a4e2-dd11c27fce86",

                    "5181364d-ce77-472e-aadc-eaf0d6d97f18"

            ]

        });

        record.changeProperty("Owner", {addFilter: vFilter});



Вижу запрос, кот. улетает на сервер, получаю в списке отфильтрованные значения в соотв. с таблицей.



Пытаюсь получить указанную выше таблицу для фильтрации отдельным запросом.... ухожу уже в совсем примитив:

        let vGroupId = record.get("Group.Id");

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

            rootSchemaName: "SysUserInRole"

        });

        esq.addColumn("Id");

        esq.getEntityCollection(function(result) {

            var items = result.collection.getItems();

            var exists = result.success && (items.length > 0);

            //Ext.callback(callback, this, [exists]);

        }, this);



Получаю ошибку: "getEntityCollection не существует" эм.... и как сформировать хотя-бы примитивный запрос на сервер из мобильной версии?

Нравится

1 комментарий

Виктор, в мобильной версии используются запросы к моделям.

См., например, схему MobileActivityGridPageControllerV2, там в функции getContactRecord используют Terrasoft.DataUtils.loadRecords, перед этим наложив фильтр по Id.

 getContactRecord: function(recordId) {
  return new Promise(function(resolve) {
   var filter = Ext.create("Terrasoft.Filter", {
    property: "Id",
    value: recordId
   });
   Terrasoft.DataUtils.loadRecords({
    proxyType: Terrasoft.ProxyType.Online,
    modelName: "Contact",
    columns: ["Name", "Account", "Photo.Id"],
    filters: filter,
    success: function(loadedContactRecords) {
     if (loadedContactRecords.length === 0) {
      resolve();
      return;
     }
     resolve(loadedContactRecords[0]);
    },
    failure: function() {
     resolve();
    },
    scope: this
   });
  });
 },

И ниже её использование:

this.getContactRecord(ownerId).then(function(contactRecord) {

 

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