Вопрос

Пользователь создает визит в мобильном приложении, синхронизируется. Удаляет визит в веб версии.

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

Возможно ли выполнять синхронизацию (чтобы удалялясь записи, уже удаленные в веб-версии) без сброса кэша?

Ответ

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



Если вы хотите, чтобы удаление происходило, то для нужных вам моделей, например, модели Активности, нужно включить дополнительную опцию в манифесте "IsAdministratedByRights": true. 



Например: 

{
   "SyncOptions": {
      "ModelDataImportConfig": [
         {
            "Name": "Activity",
            "IsAdministratedByRights": true
         }
      ]
   }
}

Этот признак добавляет в синхронизацию дополнительный шаг, в котором отбирается выборка данных с сервера и сравнивается с выборкой данных, которые есть в мобильном приложении. "Лишние" записи удаляются. Время синхронизации увеличится пропорционально объему выборок, которые нужно сравнить (чем больше будет данных, тем дольше будет проходить синхронизация). 

Нравится

Поделиться

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

Вопрос

При вставке элемента RICH_TEXT, его панель выглядит следующим образом:

Изображение удалено.

Подскажите, пожалуйста, что может быть не так?

Ответ

Возможно, в Вашей конфигурации переопределены некоторые базовые стили, в частности, стили класса .t-btn-image.

Нравится

Поделиться

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

Симптомы

Ошибка после перехода к показу презентации в действиях визита

 

Тип: Terrasoft.FileException

Сообщение: В процессе чтения файла произошла ошибка Дополнительная информация:

Имя: https://ourcompany.bpmonline.com/0/ServiceModel/EntityDataService.svc/ActivityFileCollection(guid'71fff37b-3e84-4042-a7bb-ec1b49876e1b')/Data?ForceUseSession=true&X-Terrasoft-Mobile=true

Цепочка вызовов:

failure@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/Documents/BPMonline700/AppStructure/rev_1/src/MobileUtilities.js?hash=b1e737c2-e66b-4a95-b823-bab46756b5b5:278:38

callback@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/appV1/Common/lib/SenchaTouch/sencha-touch-all-debug.js:10397:31

Terrasoft.File.callFailure@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/appV1/Common/Terrasoft.Mobile.Combined.js:4418:16

failure@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/appV1/Common/Terrasoft.Mobile.Combined.js:4463:20

callback@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/appV1/Common/lib/SenchaTouch/sencha-touch-all-debug.js:10397:31

file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/appV1/Common/Terrasoft.Mobile.Combined.js:4788:18

file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/plugins/org.apache.cordova.file/www/DirectoryEntry.js:112:22

callbackFromNative@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/cordova.js:288:57

file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/cordova.js:1098:35

nativeEvalAndFetch@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/cordova.js:1106:13

nativeCallback@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/cordova.js:1095:38

global code@file:///var/mobile/Applications/12072E52-5AC6-48DB-B608-A61D72AA7758/bpm'online.app/www/appV1/MobileApp/MobileMainPage.html:1:47

 

Тип: Terrasoft.FileSystemException

Сообщение: URL к объекту некорректно сформирован Дополнительная информация:

Код: 5

Data: {

"code": 5

}

Причина

Суть проблемы – мы не поддерживаем работу с файлами, содержащими в названии символ слеша (“/”). Поскольку ссылка на статью базы знаний – это, по сути, ссылка на файл, то приложение игнорировало эту ссылку и ничего локально не загружало, что и привело к описанной проблеме.

Решение

Что нужно сделать

- У клиента переименовать статью базы знаний, по которой была проблема;

- В приложении мы сейчас предусматриваем такую ситуацию, и если нужно будет загрузить файл\ссылку на статью базы знаний, то мы просто удаляем из названия «/» и загружаем файл. 

Нравится

Поделиться

0 комментариев
Показать все комментарии
"caption": {
    "bindTo": "Resources.Strings.SchemaLocalizableString4"  //Strings.SchemaLocalizableString4 - это строка, которую мы добавили
},

 

Нравится

Поделиться

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

Симптомы

В карточке не отображается информация, все поля пустые

Причина

Пользователь некорректно удалил справочное поле в объекте

Решение

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

Нравится

Поделиться

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

Вопрос

Не работает поиск по контактам если вводить фамилия и имя в порядке, отличном от сохраненного в базу.

Ответ

Поиск по полю «ФИО» контакта происходит по правилам сравнения строк. Если Вы поменяете местами фамилию и имя, в итоге получится совсем другая строка, которую система просто не сможет идентифицировать как изначальный контакт. Кроме того, в зависимости от порядка указания фамилии, имени и отчества контакта в поле «ФИО» и определённых системных настроек происходит автоматическое заполнение полей контакта, соответствующих отдельно фамилии, имени и отчеству.

Если Вы не уверены, в каком именно порядке указаны фамилия и имя контакта, Вы можете в поле поиска оставить только фамилию или только имя, добавив перед ним знак «%». В этом случае система будет искать все строки, которые не только начинаются, но и содержат указанное значение. Например, если указать в поле поиска значение «%Евгений», система отобразит и контакт «Мирный Евгений», и контакт «Евгений Мирный» (в том случае, если такие контакты есть в базе данных).

Можно выбрать в качестве параметра поиска поле «Фамилия» или «Имя».

Нравится

Поделиться

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

Вопрос

При коммите одного из пакетов решения BPMonline выводится на экран ошибка «The server is busy. Please try again later».

При коммите других пакетов ошибка не воспроизводится.

Ответ

Для пакета, на котором воспроизводится ошибка необходимо зайти на сервер SVN, например через TortoisSVN или Repo-Browser. Снять блокировку с файла CommitLocker. Независимо от того, под кем он заблокирован. Причина такого состояния блокировки связанна с ошибкой, произошедшей в одном из предыдущих сеансов фиксации пакета в SVN.

 

Нравится

Поделиться

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

Вопрос

Как добавить маску загрузки на деталь "Взаимосвязи" раздела "Контрагенты" (версия 7.7.0) в режиме отображения диаграммы?

Ответ

Для добавления маски загрузки на деталь "Взаимосвязи" раздела "Контрагенты" при отображении диаграммы взаимосвязей необходимо создать замещающий клиентский модуль для схемы AccountRelationshipDetailV2, в который вставить такой код:

define("AccountRelationshipDetailV2", [], function() {
    return {
        methods: {
            loadRelationship: function() {
                this.set("MaskId", Terrasoft.Mask.show({
                    selector: "#RelationshipTabContainer"
                }));
                this.callParent(arguments);
            },
 
            relationshipDiagramServiceCallback: function(response) {
                this.callParent(arguments);
                Terrasoft.Mask.hide(this.get("MaskId"));
            }
        },
 
        diff: /**SCHEMA_DIFF*/ []/**SCHEMA_DIFF*/
    };
});

После этого сохранить схему и перезагрузить страницу приложения с очисткой кеша.

Нравится

Поделиться

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

Вопрос

Как сделать, чтобы раздел "Итоги" не отображался в мобильном приложении

Ответ

Создать кастомную схему (Исходный код) (например, "MobileUtilitiesCustom")

/* Скрытие раздела "Итоги" */
 
Terrasoft.ApplicationUtils.initializeSystemData({
    success: function() {
        Terrasoft.ApplicationConfig.moduleGroups.get("sales").modules.splice(0, 1);
    }
});

В манифесте мобильного приложения (например, "UsrMobileApplicationManifestCustomMobile") указать кастомную схему

{
    "CustomSchemas": [
        "MobileUtilitiesCustom"
    ]
}

 

Нравится

Поделиться

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

Вопрос

Мобильное приложение. Как добавить кнопку "Добавить" в справочное поле у которого нет своего раздела

Ответ

Согласно базовой логике мобильного приложения добавлять новые значения в справочных полях можно только в том случае если для этого поля есть раздел со страницей редактирования (например, поле «Ответственный» и раздел «Контакты»). Для реализации необходимо добавлять отдельную страницу редактирования и необходимые для работы колонки. 

Для реализации необходимо следующее:

Terrasoft.LastLoadedPageData = {
    controllerName: "Terrasoft.configuration.UsrnomberoflidEditPageController",
    viewXClass: "Terrasoft.configuration.UsrnomberoflidEditPageView"
};
 
Ext.define("Terrasoft.configuration.view.UsrnomberoflidEditPage", {
    extend: "Terrasoft.view.BaseEditPage",
    alternateClassName: "Terrasoft.configuration.UsrnomberoflidEditPageView",
    config: {
        id: "UsrnomberoflidEditPage"
    }
});
 
Ext.define("Terrasoft.configuration.controller.UsrnomberoflidEditPage", {
    extend: "Terrasoft.controller.BaseEditPage",
    alternateClassName: "Terrasoft.configuration.UsrnomberoflidEditPageController",
    statics: {
        Model: Usrnomberoflid
    },
    config: {
        refs: {
            view: "#UsrnomberoflidEditPage"
        }
    }
});
  • создать схему, где прописать колонки, которые мы хотим отображать на странице (например, название схемы UsrMobileUsrnomberoflidModuleConfig (настройка колонок в новой странице)):
Terrasoft.sdk.GridPage.setPrimaryColumn("Usrnomberoflid", "Name");
Terrasoft.sdk.RecordPage.addColumnSet("Usrnomberoflid", 
    {
        name: "primaryColumnSet",
        isPrimary: true
    }, 
    [
        {
            name: "Name"
        }
    ]);
Terrasoft.sdk.RecordPage.addColumn("Usrnomberoflid", {
    name: "CreatedOn"
}, "primaryColumnSet");
  • и подключить эти схемы в манифест. например, «UsrMobileApplicationManifestOpportunities»:
"Usrnomberoflid": {
    "Edit": "UsrnomberoflidEditPage",
    "RequiredModels": [
        "Usrnomberoflid"
    ],
    "PagesExtensions": [
        "UsrMobileUsrnomberoflidModuleConfig"
    ]
},

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

Наглядные скриншоты:

Изображение удалено.

Изображение удалено.

Изображение удалено.

 

Нравится

Поделиться

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