"В параметрах очереди нужно выбрать объект, на основании которого она будет формироваться.
Например, для настройки параметров обработки обращений, в поле [Тип очереди] необходимо
выбрать “Обращение”, а для обработки неподтвержденных контактов — “Контакт”. В поле
[Процесс] указывается бизнес-процесс, который запускается в момент, когда оператор берет в
работу тот или иной элемент очереди."
Приведите пожалуйста наглядные примеры того, как могут быть использованы очереди Контактов и Контрагентов.
Очереди Контактов Вы можете использовать в случае, когда Вы хотите провести опрос удовлетворенности среди клиентов, которые воспользовались Вашими услугами в текущем месяце.
Очереди Контрагентов могут использоваться в случаях, когда Вы приглашаете партнеров или клиентов на мероприятие.
В коробочной версии продукта bpm'online ITIL transitions предусмотрен процесс обработки обращений из очереди.
Вы можете самостоятельно настроить процесс для приглашения участников мероприятия. К примеру, такой процесс может включать вопрос пользователю "планирует ли клиент участвовать в мероприятии?" с вариантами ответа "Да", "Нет", "Еще не определился, перезвонить позже" и с соответствующими действиями при выборе каждого из ответов.
Если у Вас в разделе «Активности» создана новая пользовательская страница (например, «Визит»), то для поля «Результат» значения в выпадающем списке будут отсутствовать (Рис. 1).
Рис. 1
Для того, чтобы в поле «Результат» был выпадающий список со значениями, необходимо, чтобы в данном поле присутствовали значения результата.
Т.е. нужно перейти в справочник «Результаты активностей по категориям» и для необходимых значений добавить соответствующую категорию (например, «Визит») (Рис. 2).
Рис. 2
В результате выбор доступных значений для пользовательской страницы будут отображаться (Рис. 3).
При создании бизнес процессов в дизайнере процессов, пользователи очень часто сталкиваются с ситуацией, когда процесс запускается по нескольким событиям, а дальнейшее выполнение процесса происходит по одной ветке. При сведении потоков в одну ветку возникает проблема получения параметра Id записи, по которой был запущен экземпляр процесса. Для решения этой задачи, я предлагаю использовать следующую схему:
1) Создать параметр процесса:
Для созданного параметра Вы можете указать название и подпись (будет отображаться при использовании в дизайнере). Для созданного параметра необходимо указать тип данных "Уникальный идентификатор":
2) После каждого входа в процесс, используйте элемент "Формула". В поле "Установить значение в параметр" выберите созданный на первом шаге параметр процесса, во втором поле укажите параметр - идентификатор записи стартового сигнал.
Таким образом, при запуске процесса Id записи начинает существовать в параметрах процесса. В дальнейшем при необходимости использования Id записи, необходимо обращаться в созданный параметр.
В базовой версии приложения 7.х для поле «E-mail» стоит проверка того, чтобы после точки количество символов было от 2 до 4 (например, mailtest@yandex.ru или mailtest@gmail.com).
На данный момент можно изменить проверку, чтобы была, например, от 2 до 5 знаков, но, тогда хотелось бы отметить следующее, что в данное поле можно будет вводить не настоящие (не валидные) электронные адреса.
Если все таки необходимо изменить диапазон, то алгоритм реализации будет следующим:
Перейти в раздел «Конфигурация»;
Добавить «Замещающий клиентский модуль» (Рис. 1) и указать в поле «Родительский объект» - «EmailHelper» (Рис. 2);
Рис. 1
Рис. 2
Далее необходимо в разделе «Конфигурация» открыть родительский объект «EmailHelper» и скопировать весь код;
В замещенный объект вставить ранее скопированный код;
Далее в строке:
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
изменить диапазон проверки с 2 до 4 на желаемый (выделено черным). Например, с 2 до 10 символов (Рис. 2).
И сохраняем изменения объекта (Рис. 3). В результате должна возникать сообщение, что изменения успешно сохранены;
Зависает на первом элементе (элемент даже не открывается). В журнале никаких ошибок.
Изначально процесс работал, после сохранения новой версии процесс перестал работать. Ничего,что могло бы повлиять на его работу таким образом, не менялось.Изменилось состояние активности,по которой завершается один из конечных элементов процесса.
Уточните, пожалуйста, правильно ли я понимаю, что пользователю не открывается страница?
Здесь могут быть два варианта:
1) Ответственный (кому должна открываться страница) отличается от пользователя, который запускает процесс (в случае преднастроенной страницы и страницы редактирования).
2) Если ответственный на открывающейся странице не указан, тогда страница открывается текущему пользователю. В таком случае, проверьте, пожалуйста, ошибки консоли браузера.
Действительно, не открывается страница. Используется автогенерируемая страница. На ней всего одно справочное поле и 2 кнопки.
Ответственный не указывается. В консоли браузера никаких ошибок нет.
Также хочу добавить, что сразу после переезда с версии 7.4 на 7.5 процесс запускался и работал. После сохранения новой версии перестал.
Я для теста создал новый БП, перенес в него все элементы, результат не изменился. Не открывается окно автогенерируемой странийцы
Данное поведение обусловлено сохранением процесса в новой версии. Такое поведение иногда встречается.
В рабочих процессах двух версий уберите, пожалуйста, признак "Активен". Запускается ли тестовый процесс после снятия признака?
Убрал, все-равно не запускается. Создал процесс из одного элемента - автогенерируемой страницы, также не запускается.
Как ещё можно попробовать побороть данную проблему? На чистой базе(до изменений в процессе) БП запускался без проблем. На какие таблицы можно обратить внимание?
Предлагаю попробовать следующий вариант - помогает в большинстве случаев: находясь в дизайнере процессов, нажмите Дополнительно -> Копировать диаграмму. Укажите новое название и заголовок, а также пакет для сохранения. После того, как диаграмма будет скопирована, удалите новую версию процесса (старая удалится автоматически), а также тестовый процесс. Таким образом по событию будет запускаться только один процесс, который был создан путем копирования диаграммы. В нем автогенерируемые страницы должны открываться.
Добрый вечер!
Если Вы используете Windows Server 2012, тогда наиболее вероятно, что карточки по процессам не поднимаются из-за некорректных настроек веб соккетов.
Для исправления необходимо:
1. Установить компоненту WebSocket протокола (Server Manager\add roles and features … Web-server\Websocket protocol) – в R2 вроде как установлена по умолчанию
2. Откорректировать корневой web.config:
Алексей, сейчас нет возможности попробовать предложенное Вами решение, но используется Windows Server 2008 R2. Карточки по процессам поднимались до сохранения новой версии процесса.
Предложенный вами вариант смогу попробовать немного позже.
Заранее спасибо за отклик!
Александр, добрый день.
Для реализации функциональности «Подбор продуктов» вы можете в качестве образца использовать логику схем:
ProductSelectionModule
ProductSelectionView
ProductSelectionViewModule.
При возникновении конкретных вопросов будем рады помочь.
Спасибо.
Добрый день, кто то может подсказать как залить фото контакта через OData, используя xml или json? Знаю что вопрос поднимался https://community.terrasoft.ru/forum/topic/10486, тему изучил, но так и не смог понять как реализовать подобное не на C#. Отправляю POST запрос в SysImageCollection, передаю Name = имя_файла и Data = стрим_файла, в ответ получаю ошибку
При обработке этого запроса произошла ошибка.При обработке этого запроса произошла ошибка.System.Data.Services.DataServiceException at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)
at System.Data.Services.Serializers.Deserializer.HandlePostRequest()
at System.Data.Services.DataService`1.HandlePostOperation(RequestDescription description, IDataService dataService)
at System.Data.Services.DataService`1.ProcessIncomingRequest(RequestDescription description, IDataService dataService)
at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description)
at System.Data.Services.DataService`1.HandleRequest()Invalid character in the given encoding. Line 6, position 15.System.Xml.XmlException at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.InvalidCharRecovery(Int32& bytesCount, Int32& charsCount) at System.Xml.XmlTextReaderImpl.GetChars(Int32 maxCharsCount) at System.Xml.XmlTextReaderImpl.ReadData() at System.Xml.XmlTextReaderImpl.ParseElementContent() at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadInternal(Boolean ignoreInStreamErrors) at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadNextAndCheckForInStreamError() at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadInternal(Boolean ignoreInStreamErrors) at Microsoft.Data.OData.Atom.BufferingXmlReader.Read() at System.Xml.XmlReader.SkipSubtree() at Microsoft.Data.OData.Atom.ODataAtomEntryAndFeedDeserializer.FindTypeName() at Microsoft.Data.OData.Atom.ODataAtomReader.ReadEntryStart() at Microsoft.Data.OData.Atom.ODataAtomReader.ReadAtStartImplementation() at Microsoft.Data.OData.ODataReaderCore.ReadImplementation() at Microsoft.Data.OData.ODataReaderCore.InterceptException[T](Func`1 action) at System.Data.Services.Serializers.EntityDeserializer.ReadEntry(ODataReader odataReader, SegmentInfo topLevelSegmentInfo) at System.Data.Services.Serializers.EntityDeserializer.Read(SegmentInfo segmentInfo) at System.Data.Services.Serializers.ODataMessageReaderDeserializer.Deserialize(SegmentInfo segmentInfo)
Возможно какие то проблемы со стримом, но что именно там не так не могу понять, содержит следующие данные http://goo.gl/5jRcr6.
Поэтому буду признателен если у кого то есть пример реализации при помощи отправки json или xml данных
Процесс создания файлов состоит из двух запросов. Первым делом создается запись в таблице файлов, без заполненной бинарной колонки. Второй запрос пересылает уже бинарные данные (PreviewData - это имя бинарной колонки)
Ниже приведу алгоритм примера реализации, как сделать, чтобы была подсветка записей реестра если у продажи на объекте поле IsNotInterest = true:
1. Создаем метод gridRecolor
gridRecolor: function (){
var gridData =this.getGridData();
var items = gridData.getItems();
var loadedObject ={};
Terrasoft.each(items, function (item){
item.customStyle= null;
var facilityId = item.get("Facility").value;
var opportunityId = item.get("Opportunity").value;
var isNotInterest = item.get("IsNotInterest");//Если условие подходит, меняем цвет записи на темно-серый.if(isNotInterest){
item.customStyle={'color':"darkgrey"}}
var primaryValue = item.get(item.primaryColumnName);//Формируем новый набор данных уже с подсветкой
loadedObject[primaryValue]= item;}, this);
gridData.clear();//загружаем новый набор данных
gridData.loadAll(loadedObject);},
2. Замещаем метод onGridDataLoaded, добавив в него вызов gridRecolor
onGridDataLoaded: function (){this.callParent(arguments);this.gridRecolor();},
Дмитрий, такая функция выделяет нужным цветом текстовое содержимое полей. Скажите пожста, а можно ли выделять цветом не текст, а целый ряд(фон), который соответствует записи? Вот так:
Кто-то сталкивался в bpm 7.5 с ошибкой авторизации, сразу после получения и загрузки лицензионного файла и попытке входа пользователем?
Настройка благополучно существует, называется Издатель, содержит значение: Customer.
Exception Message: Элемент Системная настройка с кодом "Maintainer" не найдена не найден
Exception Type: Terrasoft.Common.ItemNotFoundException
Exception Source: Terrasoft.Core
Exception Stack Trace:
at Terrasoft.Core.UserConnection.get_Maintainer()
at Terrasoft.WebApp.Nui.ViewModuleHelper.CreateUserSysValuesScript(UserConnection userConnection, HttpRequest request)
at Terrasoft.WebApp.Nui.ViewModule.SetupUserSysValues()
at Terrasoft.WebApp.Nui.ViewModule.Page_Load(Object sender, EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)