Добрый день!

возможно ли реализовать в мобильном приложении действия над строками детали?

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

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

Нравится

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

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

 

Ниже приблизительный алгоритм реализации (возможно необходимо будет его доработать): 

Создаем новую схему UsrAccountBillingInfoModuleConfig, подключаем ее в манифесте

там пишем: 

Terrasoft.sdk.Actions.add("AccountBillingInfo", {

    name: "MyActionName",

    title: "MyLocalizibleTitle",

    isVisibleInGrid: true,

    isDisplayTitle: true,

    iconCls: "cf-action-my-icon",

    position: 3,

    actionClassName: "Terrasoft.configuration.MyAction",

});

 

AccountBillingInfo - имя модели, которая используется в детали

isVisibleInGrid - означает, будет ли действие показываться в реестре

Terrasoft.configuration.MyAction - имя класса кастомного действия (нужно создать свой новый класс. Пример можно глянуть тут Terrasoft.configuration.OpenPortalMessagePublisherPageAction)

cf-action-my-icon - название CSS стиля, который добавится к элементу иконки, на вкладке less можно будет иконку для него прописать

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

Добрый день!

есть ли ограничение на объем вложенных в письмо файлов при отправке из BpmOnline?

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

если ограничение есть, то где оно регулируется?

 

Нравится

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

Здравствуйте, Любовь

Ограничение на размер файлов есть и оно регулируется системной настройкой "Максимальный размер загружаемого файла в Мб" логика ограничения размеров прикрепляемых файлов работает так:

1. Срабатывает ограничение системной настройки "Максимальный размер загружаемого файла в Мб" - так как для отправки письма из BpmOnline необходимо сначала сохранить активность.

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

Denys Diachenko,

Спасибо!

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

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

Тестирую bpmonline Версия 7.11.3.1715 без кастомизации под нагрузкой. При определенном количестве пользователей в логах начинаются ошибки типа:

1. Object reference not set to an instance of an object.

   at System.IO.BufferedStream.ReadByte()

   at ServiceStack.Redis.RedisNativeClient.ReadLine()

   at ServiceStack.Redis.RedisNativeClient.SendExpectData(Byte[][] cmdWithBinaryArgs)

...

    Request URL: http://..../0/DataService/json/SyncReply/SelectQuery 

....

2.    Exception type: SocketException 

    Exception message: An established connection was aborted by the software in your host machine

   at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)

   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

Request information: 

    Request URL: http://......./0/DataService/json/SyncReply/BatchQuery 

....

3. Object reference not set to an instance of an object.

   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)

   at Quartz.Impl.AdoJobStore.Common.DbProvider.GetDbMetadata(String providerName)

   at Quartz.Impl.AdoJobStore.Common.DbProvider..ctor(String dbProviderName, String connectionString)

   at Quartz.Impl.StdSchedulerFactory.Instantiate()

Request information: 

    Request URL: http://......./ServiceModel/AuthService.svc/Login 

4. Scheduler with name 'BPMonlineQuartzScheduler' already exists.

   at Quartz.Impl.SchedulerRepository.Bind(IScheduler sched)

   at Quartz.Impl.StdSchedulerFactory.Instantiate()

   at Quartz.Impl.StdSchedulerFactory.GetScheduler()

....

    Request URL: http://....../ServiceModel/AuthService.svc/Login 

5. иногда сталкиваемся с подвисанием и 100% загрузкой процессора процессом ииса. В это время как правило резко возрастает счетчик "contention rate / sec" на сервере. 

Ошибки стабильные, появляются раз в несколько секунд в зависимости от нагрузки, пользователю приходит 500-ая ошибка. 

Кто-нибудь сталкивался с подобным, есть пути решения?

Нравится

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

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

Для анализа вопроса направьте, пожалуйста, в поддержку полные логи приложения, файл ConnectionStrings (необходимы значения параметров maxReadPoolSize=х;maxWritePoolSize=х), технические характеристики серверов, и детали по нагрузке (количество пользователей, кейсы нагрузки и.т.д).

 

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

Коллеги, как запретить добавлять новые города пользователям (в том числе и System adminsitator'ам) через такую прекрасную функциональность, как Создать в Lookup?

Это относится не только к городам, просто, как самый яркий пример.Изображение удалено.



Если честно, пользователи жмут, не думая. Потом чистить надоедает.

 

Нравится

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

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

Данная логика настраивается на уровне системной операции с кодом "CanManageLookups". На детали "Доступ к операции" удалить те пользователи или роли, у которых нужно забрать права на данную функциональность. После этого не будет появляется кнопка «Создать» в самом поле страницы, если такой записи еще нет в справочнике. Минусом данного варианта является тот момент, что у пользователей не будет доступа к разделу "Справочники", так как это взаимосвязанный функционал. 

в LookupQuickAddMixin закомментировать или изменить строчку:

config.objects[Terrasoft.GUID_EMPTY] = this.getNewListItemConfig(config.filterValue);

Поскольку LookupQuickAddMixin - это миксин и напихан черт знает сколько по всей конфигурации, я бы заместил модуль. Ну а о тотальных проблемах с замещением модуля, я надеюсь, вы знаете. 

upd. меня опередили) в принципе совет сверху тоже подойдет, ибо там же в init стоит проверка 

RightUtilities.checkCanExecuteOperation({
	operation: "CanManageLookups"
}

 

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

расскажите, пожалуйста, вкратце о тотальных проблемах замещения модуля

Борис Леонов пишет:

вкратце о тотальных проблемах замещения модуля

Resources. это вкратце.

Подробнее: замещаем схему (модуля). копируем туда подчистую код. 

1) отсутствует вкладка less. надо модуль сохранить, перезайти заново и только тогда она появится

2) локализ. строки - они есть, но их нет. В буквальном смысле. Приходится перед всеми строками ставить точку, сохранять, потом убирать точки и пересохранять

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

4) все messages нужно перевбивать. руками. good luck have fun

мб что-то ещё. уже не помню)

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

очень сильно вкратце :)

Борис Леонов пишет:

очень сильно вкратце :)

 расписал) ух как горит пятая точка - проблемы не могут исправить 2 год как

Адасюк Валерий Викторович пишет:

Данная логика настраивается на уровне системной операции с кодом "CanManageLookups"

У меня ощущение, что на города это не действует. Кроме того, эта логика останется на Контрагенты, Контакты и другие Lookup-поля, которые ссылаются не на Справочники, а на Разделы 

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

ценная инфо, спасибо!

это не всегда происходит, случайным образом?

Пока придумали workaround - добавили в городах и других важных справочниках/разделах обязательное поле, чтобы открывалась карточка для создания, что предотвратит неосознанное создание записей

Борис Леонов,

Всегда, при замещении модуля. при замещении простых page и section(к примеру) всё отлично.

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

еще раз спасибо за информацию!

Радикальный вариант — пустым INSTEAD OF INSERT триггером на таблице городов. Или такой же логикой на уровне БП при добавлении записей в этой таблице.

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

В моем БП возможна ситуация, когда в зависимости от условий ставятся задачи (Активности) от 0 до 3 разным людям. То есть, может быть так, что можно просто идти дальше, а может быть поставлено до 3 параллельных задач разным людям.

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

Как это лучше реализовать?

И можно ли ждать изменения Активности, которая не была создана?

Нравится

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

Алексей, здравствуйте!

Если я правильно понял Вашу задачу, достаточно реализовать логику, как показано на скриншоте.

http://prntscr.com/ilxavr

По поводу ждать изменения Активности, которой еще не существует - к сожалению, такой возможности в рамках процесса нет, так как Вам нужно явно указать id записи, а узнать его заранее не представляется возможным.

Логвин Андрей Витальевич,

да, почти так и пришлось сделать. Жаль что элементы "И" нельзя умно связать, чтобы выход одного соответствовал входу другого, тогда "огород" по размерам стал бы сильно меньше.

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

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

Хотелось бы узнать, как можно в событийном подпроцессе прервать сохранение. Например, на событии Inserting. Точно такой же вопрос обсуждался в теме https://community.terrasoft.ru/questions/proverka-polei-v-sobytiinom-po…, но там так и не было дано ответа. Вариант с завершающим элементом действительно не работает, проверка на клиенте не подходит, как и выкидывание Exception. Может кто-то знает, как правильно отменить дальнейшее выполнение события, в данном случае сохранения. 

Нравится

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

Ольга, здравствуйте!

Как раз правильно это делать одним из откинутым Вами способов.

Встроенные процессы для данной цели не предназначены (кроме как отправить exception).

Понятно, спасибо за ответ

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

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



Подскажите, пожалуйста, возможно ли в одной системе совмещать различные методы аутентификации. Например, аутентификацию с помощью технологии единого входа (Single Sign-On) , аутентификацию Windows и аутентификацию bpmonline. Или эти способы несовместимы?

Нравится

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

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

В одной системе Вы можете совмещать различные методы, зависимо то ваших потребностей, проблемы несовместимости при этом не возникают.

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

Регулярно вываливается вот такая ошибка

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

Все бы ничего, все работает дальше, но если она вывалится при компиляции, то комп затягивается на очень долгое время, кто стыкался с данным явлением?

Нравится

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

:DDD 

Добро пожаловать в bpm) У нас такая же фигня была, когда я смастерил громадный БП. Т.е БП компилировался без ошибок, я его запускаю и всё крашится/вылетает IIS. Как оказалось - баг платформы, который пофиксили в 11.3.

На вашем месте я бы отследил шаги, которые приводят к данной проблеме, и обратился в поддержку(ну а вдруг там опять какой-то косяк в dll-ке).

 

Здравствуйте, Виталий.

Для анализа вопроса направьте в поддержку логи приложения (C:\Windows\Temp\BPMonline\Site_ID) и логи windows (c текстом ошибки, пример на скриншоте)

 

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

Всем привет

Картинка под катом

Если открыть мини-карточку задачи, и навести курсор мыши на любую ссылку, окно миникарточки закрывается.

Подскажите это нормально поведение? Просто оно бесит всех наших менеджеров

Можно ли это поведение оключить?

 

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

Нравится

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

"и навести курсор мыши на любую ссылку,"

На всех не тестил, но завод - это скорее всего контрагент. А у контрагента тоже есть миникарточка. И соответственно при наведении на запись система выжидает тайминг и попытается открыть миникарточку контрагента, а у вас открыта активность, которую надо закрыть прежде чем отрендерить новую миникарточку для другой сущности.

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

"Подскажите это нормально поведение?" И да, это нормальное поведение. Нельзя спамить миллионами мини-страниц. Предыдущие надо "схлопывать".

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

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

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

Добрый день, коллеги!

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

Message SendCaseStatusToSection is not defined in CardModuleV2 (SectionModuleV2_CaseSection_CardModuleV2) module

Сталкивался ли кто-нибудь с подобной ошибкой, и если да, то каким образом можно ее исправить? Были попытки подписать эту схему на сообщение вручную, создав замещающую, но они ошибку не исправили.

Нравится

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

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

При переходе на другую стадию вызывается onActiveStageClick схемы ActionSectionDashboard. Рекомендую выполнить отладку, указав точку установки на данном методе.

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