Вопрос

Добрый день!

Возможно кто-нибудь ранее сталкивался с проблемами в мобильном приложении на iOS. Приложение постоянно намертво зависает при создании/редактировании активностей. Очистка кэша помогает ровно до первого раза. Пользователи устройств на android таких проблем не испытывают. С интернетом и свободным пространством на телефоне проблем нет.

Десктопная версия BPM 7.12, мобильная 7.13.

Чем могут быть вызваны проблемы в мобильном приложении на iOS? Может ли кто-нибудь посоветовать метод борьбы с данными проблемами? 

У меня такой же вопрос

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

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

По поводу диагностирования самих причин:
Если ошибка возникает только на мобильном приложении (в то время, как на веб-версии все отрабатывает нормально), тогда необходимо понимать какие действия выполняются в системе и приводят к ошибке. Информация об ошибках хранится мобильном устройстве.

И как итог, для того, чтобы локализировать причины проблем с прозводительностью необходимо учитывать следующие факторы:

  • версия ОС системы
  • действия, которые выполняются в системе перед началом проблем (к примеру, в какие разделы мобильного приложения переходили, какие записи в разделе активностей редактировали)
  • логи приложения (в них можно найти сообщения о возможных ошибках, которые повлияли на проседание производительности)

Мотков Илья,

Спасибо за ответ!

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

Добрый день.
Настраиваю мобильное приложение и столкнулся со следующей ситуацией.

Настройки часовых поясов: 

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

Добавляю запись через мобильное приложение со следующими значениями:

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

В основном приложении значения:
Дата подачи: 20.12.2017 9:28
Дата начала командировки: 19.12.2017
Дата окончания командировки: 19.12.2017

Что можно с этим сделать?

У меня такой же вопрос

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

Искандер, здравствуйте!

Уточните, пожалуйста:

- версию мобильного приложения;

- версию приложения bpm'online;

- какой конкретно (название) часовой пояс стоит в мобильном устройстве и в приложении;

- в каком разделе создаете запись;

- какой режим (offline/online) мобильного приложения используется;

- какую версию платформы Вы используете (UIv1/UIv2).

Вильшанский Дмитрий,

Версия мобильного приложения: 7.11.7
Версия приложения  7.11.0.3122
Часовой пояс в мобильном приложении определяется автоматически (GMT+03:00 Москва, стандартное время)
Запись создаем в новом разделе (раздел создан в рамках проекта)
Режим приложения - Онлайн
Использовать мобильный интерфейс V2 : да

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

Добрый день. Подскажите пожалуйста как добавить возможность загружать файлы через мобильное приложение.

В академии есть инструкция для настройки embeded детали. Но мне бы хотелось сделать обычную деталь.

Спасибо

У меня такой же вопрос

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

Здравствуйте.
Что в Вашем понимании "обычная" деталь?
В мобильном приложении есть два типа деталей: встроенные (например, адреса, средства связи и т.д.) и стандартные (Активность в контакте и прочие, сюда же входят детали с редактируемым реестром).
В инструкции на данный момент представлена наиболее удобная для разработчика и пользователя реализация встроенной детали "Файлы и ссылки" из возможных. Пользователь нажимает "Добавить" и может сделать фото с камеры, прикрепить картинку с галереи или добавить файл.
Помимо инструкции можете также посмотреть реализацию данной детали в пакете Mobile.

Добрый день!

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

Хочу отметить, что загруженные записи отображаются на страницы записи, а не на отдельной странице - http://prntscr.com/hpzz3r.

Вопрос: чем Вам не подходит встроенная деталь?

В версии bpm'online 7.11.3 добавлена возможность добавить деталь "Файлы и ссылки" в любой раздел мобильного приложения (если для аналогичного раздела деталь существует в основном интерфейсе) через мастер мобильного приложения.

Для этого требуется зайти в мастер мобильного приложения – выбрать раздел – выбрать настройку страницы - добавить встроенную деталь, которая будет ссылаться на соответствующий объект – сохранить настройку - выполнить синхронизацию мобильного приложения.

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

Добрый день.

Можно ли как то задавать значения по умолчанию для полей в мобильном приложении?
Хочется сделать предзаполнение полей  (в идеале даже не выводить их в интерфейс мобильного приложения), например заполнить "дату подачи" текущей датой, и поле "поле канал поступления" указать "мобильное приложение".

Можно ли такое сделать и если можно, то как?

У меня такой же вопрос

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

Добрый день.

Для того, чтобы задать значение по умолчанию для поля при создании записи, можно использовать SDK модели:

Terrasoft.sdk.Model.setDefaultValuesFunc("НазваниеМодели", function(config) {
    var myValue = "Мобильное приложение";
    config.record.set("НазваниеКолонки", myValue);
    Ext.callback(config.success, config.scope);
});

Скрыть колонку тоже можно. Теперь используем SDK страницы:

Terrasoft.sdk.RecordPage.addColumn("НазваниеМодели", {
    name: "НазваниеКолонки", // название колонки как в объекте
    position: 0,
    hidden: true // Здесь скрывается колонка
}, "primaryColumnSet");

Значения должны записываться, несмотря на скрытость колонки.

Больше примеров можете найти в пакете Mobile в схемах MobileActivityModelConfig и MobileActivityModuleConfig соответственно.

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

Здравствуйте.

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

В общем, на странице, контакта необходимо скрывать или показывать деталь в зависимости от значения поля.

Решение начал с добавления custom-бизнес правила на событие Load. И в нём просто попробовал без всяких условий удалить деталь со страницы методом

Terrasoft.sdk.Details.remove

К сожалению, результат выполнения виден только при последующих открытиях карточки, а не сразу.

Есть ли другие решения?

У меня такой же вопрос

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

Для скрытия детали по условию, необходимо в расширить метод shouldHidePanelItem

 

Пример:

 

Ext.define("ContactPreviewPage.View", {
extend: "Terrasoft.view.BasePreviewPage",

xtype: "contactpreviewpageview",
config: {
id: "ContactPreviewPage"
},

/**
* @inheritdoc
* @protected
* @overridden
*/

shouldHidePanelItem: function(loadedRecord, component) {
var detailName = component.config.name;
if
(detailName === "MyDetailName" && Ext.isEmpty(loadedRecord.get("MyColumn"))) {
return true;
} else {
return this.callParent(arguments);
}
}
})
;

Здравствуйте, Илья. Спасибо за ответ, двигался в этом направлении. Но с вашим советом получилось быстрее.

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

Коллеги, добрый день!
Как можно изменить логотип bpm'online в мобильной версии приложения? Скриншот прикладываю во вложения.
Спасибо!

У меня такой же вопрос

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

Загрузить файл логотипа в системную настройку "Логотип мобильного приложения"

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

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

Отнаследовался от BasePage контроллера и представления.

Ext.define("MobileEmptyPage.View", {
        extend: "Terrasoft.view.BasePage",
        xtype: "mobileemptypageview",

        config: {

                id: "MobileEmptyPage",

                scrollable: "vertical",

                navigationPanel: {
                        menuButton: true,
                        showMenuOnSwipe: true
                },

                pageType: Terrasoft.PageTypes.Custom,
                pageId: "MobileEmptyPage",
                menuList: true,
                items: [
                        {
                                xtype: "container",
                                cls: "x-login-form",
                                id: "LoginPageForm",
                                items: [
                                        {
                                                id: "LoginPage_logoImage",
                                                xtype: "image",
                                                cls: "x-settings-logo"
                                        }
                                ]
                        }
                ]
        }
});

и контроллер
Ext.define("MobileEmptyPage.Controller", {
        extend: "Terrasoft.controller.BasePage",       
        config: {
                pageId: null,
                refs: {
                        view: "#MobileEmptyPage"
                }
        },

        launch: function() {
                this.callParent(arguments);
        },

        pageLoadComplete: function() {
        },
       
        pageUnloadComplete: function() {}
});

вызов данной страницы происходит кодом
var pageData = {
                        controllerName: "MobileEmptyPage.Controller",
                        pageSchemaName: "MobileEmptyPage.View",
                        viewXType: "mobileemptypageview"
                };
                var pageName = "MobileEmptyPage";
                Terrasoft.PageCache.addItem(pageName, pageData);
                var pageConfig = {
                        pageSchemaName: pageName
                };
                var mainPageController = Terrasoft.util.getMainController();
                setTimeout(function () {
                        Terrasoft.Router.route("record", mainPageController, [pageConfig]);
                }.bind(this), 1000);

Переход на страницу переходит чудесно! НО потом страница блокируется индикатором загрузки и невозможно его убрать!
Пробовал и Terrasoft.Mask.hide(); и вызывал метод view.setMasked(false);
Подскажите, как завершить процесс загрузки страницы?

У меня такой же вопрос

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

Павел, по-моему дело не в маске, а в том, что "предположительно" есть свал в пользовательском коде. Отладчиком проходились? Можно ли весь код посмотреть?

Илья, прошу прощения за долгий ответ. Действительно, свал был в другом участке кода.

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

Добрый день!

Можно ли для мобильного приложения добавить валидацию к полю или, например, ограничение (для даты)?

У меня такой же вопрос

8 комментариев

Здравствуйте!

Уточните, пожалуйста, какую валидацию вы хотите настроить?

"Демьяник Алексей" написал:

Здравствуйте!

Уточните, пожалуйста, какую валидацию вы хотите настроить?


Здравствуйте.

Я хочу сделать так, чтобы нельзя было выбрать дату меньше текущей.

Здравствуйте.
Есть пример реализации в MobileActivityModelConfig. В «Активностях», по умолчанию, не разрешается устанавливать дату начала больше даты завершения активности.

Terrasoft.sdk.Model.addBusinessRule("Activity", {
ruleType: Terrasoft.RuleTypes.Comparison,
triggeredByColumns: ["StartDate"],
leftColumn: "DueDate",
comparisonOperation: Terrasoft.ComparisonTypes.GreaterOrEqual,
rightColumn: "StartDate"
});

Terrasoft.sdk.Model.addBusinessRule("Activity", {
ruleType: Terrasoft.RuleTypes.Comparison,
triggeredByColumns: ["DueDate"],
leftColumn: "StartDate",
comparisonOperation: Terrasoft.ComparisonTypes.LessOrEqual,
rightColumn: "DueDate"
});

Спасибо большое!

А у меня появился вопрос, а как можно сравнивать не с другой колонкой, а с текущим значением даты?

"Колебянов Виталий Романович" написал:

А у меня появился вопрос, а как можно сравнивать не с другой колонкой, а с текущим значением даты?

Опишите, пожалуйста, более подробно бизнес-задачу. Приведите конкретный пример.

"Вильшанский Дмитрий" написал:
Колебянов Виталий Романович пишет:

А у меня появился вопрос, а как можно сравнивать не с другой колонкой, а с текущим значением даты?

Опишите, пожалуйста, более подробно бизнес-задачу. Приведите конкретный пример.

Нужно сделать так, чтобы нельзя было выставить дату регистрации в обращении меньше текущей даты.

Здравствуйте!

Датой регистрации обращения считается дата создания записи. В случае, если на сервер не будет передаваться дата регистрации, то подставляться будет текущая дата/время.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Для клиентов, продолжающих использовать Террасофт 3.х, и испытывающих потребность в работе с данными с мобильных устройств, мы выпустили новую версию UseCRM (http://www.community.terrasoft.ua/catalog/10478):

  • добавлена поддержка iOS 10 CallKit - для входящих звонков отображается ФИО контакта из UseCRM, исходящие звонки из UseCRM отображаются в списке недавних звонков iOS вместе с именем абонента;
  • добавлена поддержка 3D Touch - нажав на иконку приложения, можно добавить новые или открыть недавно просмотренные записи;
  • добавлены уведомления об изменениях данных на сервере;
  • добавлены действия над записями - код Террасофт при этом выполняется на сервере и может быть любым (создание задач, запуск процессов и т.д.);
  • оптимизирована синхронизация с сервером - теперь она проходит гораздо быстрее;
  • и немного мелких улучшений:
    - сняты ограничения на количество записей, передаваемых с сервера;
    - добавлена настройка работы с сервером только через WiFi;
    - оптимизирован поиск в списках;
    - обновлен интерфейс приложения.

По-прежнему доступен демо-сервер, по-прежнему можно установить тестовую версию на свою базу, пишите!

Приложение для Андроид также развивается, скоро будет доступна новая версия.

Также мы предлагаем новую услугу - создание мобильного приложения для компании, с отдельным логотипом и дизайном, и его интеграция с данными в Террасофт 3.x (рекламные акции, заказы зарегистрированных пользователей и т.п.). Ваши клиенты будут всегда на связи!

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Идея

Необходимо улучшить поиск в мобильном приложении. Поиска по основной колонке зачастую недостаточно. Как и добавлять колонки в конфигурацию раздела.Как минимум нужна возможность пользоваться настроенными группами (например, работая в полях, найти клиентов, расположенных в данном районе)

Реализована
4 комментария

Добрый день, Владимир!

Добавлять дополнительные поля в мобильное приложение возможно с версии 7.5, посредством мастера мобильного приложения.
Расширенный поиск по всем полям уже запланирован, в версию 7.7 он еще не войдет, но в последующие планируем включить.
Что касается добавления работы со статическими группами\тегами – планируем в 7.7.

Добрый день!

В релизе 7.11 реализована функциональность быстрой фильтрации в разделах и деталях мобильного приложения. Для поиска нужных записей в разделе (или на детали) можно настроить "быстрый" фильтр по колонкам объекта. 

Наталия Крылова,

Добрый день! А как можно искать в мобильном приложении не по самим колонкам объекта, а по связанным колонкам. Например, находясь в активностях, отфильтровать активности по контрагенту определенного типа, и т.п.

Фильтровать по связанным колонкам нельзя, зато скоро обещают добавить динамические группы. То есть в веб-версии настраиваем, потом в мобильной в онлайн-режиме заходим в группу и фильтруем по её условию.

Войдите или зарегистрируйтесь, чтобы комментировать