Всем доброго времени суток. Версия 7.12.

Что делать в такой ситуации?

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

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

Пока проверяю на демо-сборке.

Нравится

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



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

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

Добрый день!

При отправке сообщения на подключенную в Сервис почту -автоматически приходит пустая отбивка на почту отправляющего сообщение клиента.

Что это за системная настройка и где её отключить?

Нравится

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

Похоже, это стандартная логика отправки письма при регистрации обращения, реализованная в процессе SendEmailToCaseContactProcess или каком-то из ему подобных. Она берёт нужный шаблон в справочнике «Шаблоны email сообщений» и отправляет автору обращения.

Может, у Вас нужный шаблон в этом справочнике сделан пустым или вовсе отсутствует? Можно поднять демо-сайт той же версии и сравнить наполнение справочника шаблонов с ним.

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

Всем доброго времени суток. Версия 7.12.

Возможно ли отследить изменение любой колонки объекта?

Есть удобное свойство dependencies в attributes, которое позволяет отследить изменение конкретной колонки (причём вне зависимости от того, изменяет ли значение колонки непосредственно пользователь, или изменение происходит вследствие какой-либо зависимости в схеме карточки). Можно ли подобным образом отследить изменение любой колонки в карточке?

Нравится

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

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

Нравится

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

Получить содержимое раздела обращений можно так:

select * from [case]

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

Для деталей аналогично, только дописать where с фильтрацией детали по Id записи основного раздела.

Теги — это обычная деталь-развязка со значениями справочника. В таблице CaseTag будет справочник тегов обращения, в CaseInTag — связь обращений и тегов.

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

Всем доброго времени суток. Версия 7.12.

Можно ли как-нибудь по id раздела (записи SysModule) получить список всех входящих в него колонок с типами и названиями? Возможно, есть какой-то объект, где они хранятся?

Нашёл что-то такое: SysPackageSchemaDataColumn но не похоже, что это оно.

Нравится

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

я так понимаю хранятся в SysSchema, колонка MetaData.

скрипт глянуть из базы:

select cast(MetaData as varchar(max)) from SysSchema where caption='Account' 
order by createdOn desc

На JS колонки вытягиваюся через this.entitySchema.columns (ну или require объекта).

На С# можно перебрать колонки

var manager = UserConnection.EntitySchemaManager.GetInstanceByName("Account");
foreach (var column in manager.Columns) {
    if (column.IsValueCloneable) {
 
    }
    var fixedColumnName = column.IsLookupType ? column.Name+"Id" : column.Name;
    var uid = column.UId;
    var columnName = column.Name;
    var columnCaption = column.Caption;
}

Ну и как всегда, без сюрпризов не обошлось. Лукап колонки идут без Id-окончания. 

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

SELECT  t.name AS [Table Name], c.name AS [Column Name], value AS [Extended Property]
FROM sys.extended_properties AS ep
INNER JOIN sys.tables AS t ON ep.major_id = t.object_id 
INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
WHERE class = 1 and t.name = 'ContactAddress'
AND CAST(value AS VARCHAR) LIKE 'ru-RU|%'

 

Александр, интересный пример. А есть ли аналог для JS?


 
addAllColumns: function(esq) {
	Terrasoft.each(this.columns, function(column, columnName) {
		if (column.type === Terrasoft.ViewModelColumnType.ENTITY_COLUMN) {
			if (!esq.columns.contains(columnName)) {
				esq.addColumn(columnName);
			}
		}
	}, esq);
},	

 

Нет, через JS такое невозможно. Это даже не таблицы базы bpm'online, а служебные таблицы на том же сервере БД.

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

Добрый день!

нужно реализовать кейс.

по ходу процесса Обработка обращения нужно назначить задачи типа Открыть страницу редактирования пользователям из определенной детали Соисполнители. То есть у каждого соисполнителя должна быть активность вида Открыть страницу редактирования.

Может кто-то уже реализовывал такой кейс, подскажите как его можно сделать

 

Нравится

1 комментарий
Лучший ответ

1) Сделать мальнький бп на открытие страницы редактирования. 

2) В основном - считывать записи из детали и на каждого пользователя в записи запускать бп из п.1. при помощи AppScheduler

1) Сделать мальнький бп на открытие страницы редактирования. 

2) В основном - считывать записи из детали и на каждого пользователя в записи запускать бп из п.1. при помощи AppScheduler

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

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

"В процессе синхронизации произошла ошибка"

Отчет прикрепляю:

Model Name: Benefit_M503

Platform: Android

Platform Version: 5.1

Resolution: 360x640

UIVersion: UIV2

ApplicationVersion: 7.12.9

ApplicationMajorVersion: 7.12

BackgroundSyncMode: Always

ServerUrl: https://bpmstest.abiconnect.ru/

ContactId: a0469676-80b4-4b52-a740-8a5a1f72c5c2

CultureName: ru-RU

ApplicationRevision: null

WorkplaceCode: NPD01

ProductInfo: {"ProductName":"bpm'online","ProductEdition":"studio","CustomerId":"201712251022","Version":{"Major":7,"Minor":12,"Build":1,"Revision":924,"MajorRevision":0,"MinorRevision":924}}

CurrentDateTime: Tue Jul 17 2018 15:24:47 GMT+0300 (MSK)

Type: Terrasoft.SyncException 

Message: В процессе синхронизации произошла ошибка 

Stack trace: 

Function.Ext.define.statics.handleException(Terrasoft.Mobile.Combined.js:32396:34) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

Ext.define.callUserErrorHandler(Terrasoft.Mobile.Combined.js:26185:7) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

Ext.define.callFailure(Terrasoft.Mobile.Combined.js:25724:8) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

Function.Terrasoft.RequestManager.issueRequest.requestFnConfig.failure(Terrasoft.Mobile.Combined.js:40521:11) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

Object.config.requestItemFailure(Terrasoft.Mobile.Combined.js:39654:11) 

Ext.define.onRequestFailure(Terrasoft.Mobile.Combined.js:39422:12) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

null.(Terrasoft.Mobile.Combined.js:39658:9) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

Ext.define.executeCallbackIfNotCanceled(Terrasoft.Mobile.Combined.js:39903:8) 

Ext.define.failureHandler(Terrasoft.Mobile.Combined.js:39925:8) 

Object.Ext.apply.callback(sencha-touch-all-debug.js:10397:26) 

Ext.define.onComplete(sencha-touch-all-debug.js:36402:17) 

Ext.define.onStateChange(sencha-touch-all-debug.js:36338:18) 

XMLHttpRequest.(sencha-touch-all-debug.js:3233:27) 

Type: Terrasoft.ServerException 

Message: Запрос на сервер вернул ошибку 

AdditionalInfo: {"request":{"id":27,"headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"Cookie","X-Terrasoft-Mobile":true,"X-Requested-With":"XMLHttpRequest"},"options":{"isCancelable":true,"url":"https://bpmstest.abiconnect.ru/0/Mobile/Services/MobileCodeService.ashx…","success":null,"failure":null,"scope":{"asyncOperation":{"initConfig":null,"initialConfig":{"isCancelable":true,"asyncQueueId":null},"config":{"isCancelable":true,"asyncQueueId":null},"_isCancelable":true,"_asyncQueueId":null,"asyncManagerIsDisabled":true},"initialConfig":{"isCancelable":true,"url":"https://bpmstest.abiconnect.ru/0/Mobile/Services/MobileCodeService.ashx…","success":null,"failure":null,"scope":null,"onRequestCreate":null,"headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"Cookie","X-Terrasoft-Mobile":true},"method":"GET","disableCaching":false},"performanceCounterKey":"d94e002c-ed82-4549-8981-2404db92e317"},"onRequestCreate":null,"headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"Cookie","X-Terrasoft-Mobile":true},"method":"GET","disableCaching":false},"async":true},"requestId":27,"status":500,"statusText":"Internal Server Error","getResponseHeader":null,"getAllResponseHeaders":null,"responseText":"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\nhttp://www.w3.org/1999/xhtml\">\r\n\r\n\r\n500 - \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.\r\n\r\n\r\n\r\n\r\n\r\n\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\r\n\r\n \r\n 

500 - \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.

\r\n 

\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c; \u0440\u0435\u0441\u0443\u0440\u0441 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d.

\r\n \r\n\r\n\r\n\r\n","responseXML":null,"responseBytes":null} 

Нравится

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

По результатам анализа, у Вас в приложении настроена аутентификация по NTLM-протоколу. К сожалению, на данный момент в мобильном приложении нет возможности работать при сквозной аутентификации по NTLM-протоколу (https://academy.terrasoft.ru/documents/studio/7-12/kak-nastroit-autentifikaciyu-windows#XREF_44889_NTLM) при открытии bpm'online приложения, так как в мобильной версии идет переход на страницу логина, а не на "ntlmlogin". Для работы в мобильной версии необходимо отключить (признак false) использование ключа "UsePathThroughAuthentication". Перед правками убедитесь, что в providerNames используется LDAP (https://academy.terrasoft.ru/documents/studio/7-12/chasto-zadavaemye-voprosy-po-sinhronizacii-s-ldap#XREF_37112)

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

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

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

 

О компании

Компания Сервис Групп специализируется на сервисном обслуживании розничных сетей. Предоставляет широкий спектр услуг, от мониторинга качества работы клининговых компаний до ремонта помещений.

Предпосылки внедрения bpm’online

До внедрения bpm’online сотрудники Сервис Групп не использовали системы управления работы с клиентами, что усложняло контроль обработки обращений операторами и подрядчиками.

 

Основная задача проекта — повышение качества обслуживания клиентов подрядчиками, а также контроль выполнения договорных обязательств всеми сторонами процесса. Для выполнения поставленной задачи были автоматизированы процессы работы контакт-центра с помощью решения bpmonline customer center.

Выполненные настройки

Процесс обработки нового обращения выглядит таким образом: при поступлении обращения оператор компании заполняет в нем сервис и ответственного со стороны подрядчика. За каждым направлением обслуживания закреплен определенный подрядчик. Согласно условий работы компании, подрядчики должны видеть только те обращения, по которым они назначены ответственными. Также обращения должны видеть руководители направлений. Для распределения прав доступа на обращения только для указанных ответственных и руководителей направлений был разработан масштабируемый бизнес-процесс.

 

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

 

Существует категория обращений от контрагентов с признаком VIP, которая требует более оперативного реагирования. Для удобства такие обращения подсвечиваются оранжевым цветом. При получении обращения от контрагента категории VIP руководитель подрядчика соответствующего направления получает email-уведомление.

У компании появилась возможность формировать отчеты для анализа таких показателей, как соблюдение сроков решения обращений подрядчиками, загруженность операторов и подрядчиков, количество закрытых обращений за период, средний бал удовлетворенности, среднее время решения обращений. Настройка аналитики выполнена не только базовыми возможностями раздела [Итоги], а и с помощью интеграции bpm’online с MS Power BI. Настройка интеграции достаточна проста, а возможности для составления аналитики значительные.

Результат

Запуск bpm’online позволил:

  • подключить 10 дополнительных подрядчиков и расширить бизнес благодаря возможностям масштабируемого процесса распределения прав доступа;
  • аккумулировать всю информацию о взаимодействии с клиентами и подрядчиками в единой системе, что повышает эффективность сотрудников и качество обработки обращений;
  • оптимизировать процесс формирования аналитики для контроля работы менеджеров и подрядчиков.

Нравится

Поделиться

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

Добрый день. В БД sql server, есть таблица "VwSysCaseLog", для ведения логов изменений обращений, прошу проконсультировать:

1. Есть ли ещё подобные логи-таблицы в БД, связанные с обращениями, таблицой "Case"?

2. Если есть такие таблицы или представления, то можно ли будет их соединить через "JOIN" соединение с таблицей "Case" в запросе sql server?

Нравится

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

Если в таблице включается логирование, в базе создаётся таблица с названием Sys...Log. Соответственно, для Case это будет SysCaseLog. Не знаю, откуда взялась VwSysCaseLog. Возможно, это уже какая-то доработка. Обычно в базе стараются с Vw начинать названия представлений (view), а не таблиц.

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

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

Вопрос по правам доступа в портале:

на текущий момент пользователь имеет доступ или к своим обращениям (где он заявитель) , или ко всем обращениям Контрагента

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

 

Нравится

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

По идее, эта логика меняется в функции GetContactFilter страницы PortalServiceRequestsModulePage или PortalServiceRequestsGridPage. Возможно, в обеих местах. Нужно тестировать.

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