Добрый день,
в документации об очередях сказано:

"В параметрах очереди нужно выбрать объект, на основании которого она будет формироваться.
Например, для настройки параметров обработки обращений, в поле [Тип очереди] необходимо
выбрать “Обращение”, а для обработки неподтвержденных контактов — “Контакт”. В поле
[Процесс] указывается бизнес-процесс, который запускается в момент, когда оператор берет в
работу тот или иной элемент очереди."

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

Нравится

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

Добрый день, Маргарита!

Очереди Контактов Вы можете использовать в случае, когда Вы хотите провести опрос удовлетворенности среди клиентов, которые воспользовались Вашими услугами в текущем месяце.

Очереди Контрагентов могут использоваться в случаях, когда Вы приглашаете партнеров или клиентов на мероприятие.

а какие Процессы подключаются к таким очередям?

они есть в базовом пакете, или их нужно создавать самостоятельно?

Маргарита, Все зависит от Ваших целей.

В коробочной версии продукта bpm'online ITIL transitions предусмотрен процесс обработки обращений из очереди.

Вы можете самостоятельно настроить процесс для приглашения участников мероприятия. К примеру, такой процесс может включать вопрос пользователю "планирует ли клиент участвовать в мероприятии?" с вариантами ответа "Да", "Нет", "Еще не определился, перезвонить позже" и с соответствующими действиями при выборе каждого из ответов.

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

Если у Вас в разделе «Активности» создана новая пользовательская страница (например, «Визит»), то для поля «Результат» значения в выпадающем списке будут отсутствовать (Рис. 1).


Рис. 1

Для того, чтобы в поле «Результат» был выпадающий список со значениями, необходимо, чтобы в данном поле присутствовали значения результата.
Т.е. нужно перейти в справочник «Результаты активностей по категориям» и для необходимых значений добавить соответствующую категорию (например, «Визит») (Рис. 2).


Рис. 2

В результате выбор доступных значений для пользовательской страницы будут отображаться (Рис. 3).


Рис. 3

Нравится

Поделиться

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

При создании бизнес процессов в дизайнере процессов, пользователи очень часто сталкиваются с ситуацией, когда процесс запускается по нескольким событиям, а дальнейшее выполнение процесса происходит по одной ветке. При сведении потоков в одну ветку возникает проблема получения параметра Id записи, по которой был запущен экземпляр процесса.
Для решения этой задачи, я предлагаю использовать следующую схему:
1) Создать параметр процесса:

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

2) После каждого входа в процесс, используйте элемент "Формула". В поле "Установить значение в параметр" выберите созданный на первом шаге параметр процесса, во втором поле укажите параметр - идентификатор записи стартового сигнал.

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

Нравится

Поделиться

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

В базовой версии приложения колонка "Полное название должности" заполняется, если заполнить поле "Должность". Т.е. срабатывает бизнес-правило.

Если у Вас стоит задача, например, чтобы поле "Полное название должности" автоматически не проставлялось при заполении поля "Должность" (Рис. 1)


Рис. 1

то для этого необходимо на замещающей странице «ContactPageV2» добавить следующий метод:

jobChanged: function() {
return false;

},

который отключает базовый метод jobChanged (отвечает за изменение данных полей).

Нравится

Поделиться

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

В базовой версии приложения 7.х для поле «E-mail» стоит проверка того, чтобы после точки количество символов было от 2 до 4 (например, mailtest@yandex.ru или mailtest@gmail.com).

На данный момент можно изменить проверку, чтобы была, например, от 2 до 5 знаков, но, тогда хотелось бы отметить следующее, что в данное поле можно будет вводить не настоящие (не валидные) электронные адреса.

Если все таки необходимо изменить диапазон, то алгоритм реализации будет следующим:

  1. Перейти в раздел «Конфигурация»;
  2. Добавить «Замещающий клиентский модуль» (Рис. 1) и указать в поле «Родительский объект» - «EmailHelper» (Рис. 2);

  3. Рис. 1


    Рис. 2

  4. Далее необходимо в разделе «Конфигурация» открыть родительский объект «EmailHelper» и скопировать весь код;
  5. В замещенный объект вставить ранее скопированный код;
  6. Далее в строке:
  7. var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

    изменить диапазон проверки с 2 до 4 на желаемый (выделено черным). Например, с 2 до 10 символов (Рис. 2).

  8. И сохраняем изменения объекта (Рис. 3). В результате должна возникать сообщение, что изменения успешно сохранены;

  9. Рис. 3

  10. Компилируем конфигурацию ("Скомпилировать измененное");
  11. Обновляем страницу приложения в браузере.

В результате электронные адреса можно будет добавлять, например, до 5 знаков после запятой.

Нравится

Поделиться

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

Здравствуйте, есть БП.

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

В чем может быть проблема?

Нравится

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

Добрый день!

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

Здесь могут быть два варианта:
1) Ответственный (кому должна открываться страница) отличается от пользователя, который запускает процесс (в случае преднастроенной страницы и страницы редактирования).
2) Если ответственный на открывающейся странице не указан, тогда страница открывается текущему пользователю. В таком случае, проверьте, пожалуйста, ошибки консоли браузера.

Действительно, не открывается страница. Используется автогенерируемая страница. На ней всего одно справочное поле и 2 кнопки.
Ответственный не указывается. В консоли браузера никаких ошибок нет.
Также хочу добавить, что сразу после переезда с версии 7.4 на 7.5 процесс запускался и работал. После сохранения новой версии перестал.
Я для теста создал новый БП, перенес в него все элементы, результат не изменился. Не открывается окно автогенерируемой странийцы

Данное поведение обусловлено сохранением процесса в новой версии. Такое поведение иногда встречается.
В рабочих процессах двух версий уберите, пожалуйста, признак "Активен". Запускается ли тестовый процесс после снятия признака?

Убрал, все-равно не запускается. Создал процесс из одного элемента - автогенерируемой страницы, также не запускается.
Как ещё можно попробовать побороть данную проблему? На чистой базе(до изменений в процессе) БП запускался без проблем. На какие таблицы можно обратить внимание?

Предлагаю попробовать следующий вариант - помогает в большинстве случаев: находясь в дизайнере процессов, нажмите Дополнительно -> Копировать диаграмму. Укажите новое название и заголовок, а также пакет для сохранения. После того, как диаграмма будет скопирована, удалите новую версию процесса (старая удалится автоматически), а также тестовый процесс. Таким образом по событию будет запускаться только один процесс, который был создан путем копирования диаграммы. В нем автогенерируемые страницы должны открываться.

Алексей, верно ли я Вас понял, что должна остаться только копия процесса, созданная через Дополнительно -> Копировать диаграмму?

Сделал все как указано. Все удалилось, остался всего один процесс в моем пакете, но элемент "Автогенерируемая страница" так и не выполнился.

Добрый вечер! Для решение требуется удаленное подключение. Как и было согласовано, подключение осуществим после 8 июня в удобное для Вас время.

Добрый вечер!
Если Вы используете Windows Server 2012, тогда наиболее вероятно, что карточки по процессам не поднимаются из-за некорректных настроек веб соккетов.
Для исправления необходимо:

1. Установить компоненту WebSocket протокола (Server Manager\add roles and features … Web-server\Websocket protocol) – в R2 вроде как установлена по умолчанию
2. Откорректировать корневой web.config:

<location path="." inheritInChildApplications="false">
             <system.web>
             ...
             <httpRuntime maxRequestLength="102400" executionTimeout="28800" targetFramework="4.5" />

3. Откорректировать Terrasoft.WebApp\Web.config
Секция wsService должна выглядеть так:

<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService, Terrasoft.Messaging.MicrosoftWSService" encrypted="false" portForClientConnection="0" />

Секция location\system.web:

<location path="." inheritInChildApplications="false">
    <system.web>
     ...
      <httpRuntime maxRequestLength="102400" executionTimeout="28800" <strong>targetFramework="4.5"</strong> />
      <httpHandlers>
        ...
       <add verb="GET" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />

Секция system.webServer:

<system.webServer>
    ...
    <handlers>
      ...
      <add name="WSHandler" verb="*" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />

Алексей, сейчас нет возможности попробовать предложенное Вами решение, но используется Windows Server 2008 R2. Карточки по процессам поднимались до сохранения новой версии процесса.
Предложенный вами вариант смогу попробовать немного позже.
Заранее спасибо за отклик!

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

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

Нравится

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

Александр, добрый день.
Для реализации функциональности «Подбор продуктов» вы можете в качестве образца использовать логику схем:
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 данных

Нравится

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

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

POST http://mybpmonline:8082/7/ServiceModel/EntityDataService.svc/SysImageCo… HTTP/1.1
Connection: keep-alive
Content-Length: 91
MaxDataServiceVersion: 3.0
Content-Type: application/json;odata=verbose
ForceUseSession: true
Accept: application/json;odata=verbose
DataServiceVersion: 1.0
Accept-Encoding: gzip, deflate
Accept-Language: en-US
X-Requested-With: com.bpmonline.mobile70

{"Name":"640a7878-0637-4d09-b9de-5834fd559998","Id":"640a7878-0637-4d09-b9de-5834fd559998"}

PUT http://mybpmonline:8082/7/ServiceModel/EntityDataService.svc/SysImageCo… HTTP/1.1
Content-Type: multipart/form-data;boundary=+++++
MaxDataServiceVersion: 3.0
ForceUseSession: true
Accept: application/octet-stream,application/json;odata=verbose
Connection: close
Content-Length: 7199
Accept-Encoding: gzip

[ЗДЕСЬ В ТЕЛЕ ЗАПРОСА СОДЕРЖАТСЯ БИНАРНЫЕ ДАННЫЕ]

Спасибо большое, помогло

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

Здравствуйте!
Есть следующая задача:
В зависимости от условий в реестре раздела поле отображается либо зеленым, либо красным цветом.

Как можно реализовать данный функционал?

Нравится

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

Добрый день!

Ниже приведу алгоритм примера реализации, как сделать, чтобы была подсветка записей реестра если у продажи на объекте поле 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();
},

3. Profit!

Дмитрий, ваш пример работает, но мне нужно изменить цвет не у всей записи, а конкретно проверяемой колонки.

"Пащенко Александр Сергеевич" написал:

Дмитрий, ваш пример работает, но мне нужно изменить цвет не у всей записи, а конкретно проверяемой колонки.

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

Добрый день!

Дмитрий, такая функция выделяет нужным цветом текстовое содержимое полей. Скажите пожста, а можно ли выделять цветом не текст, а целый ряд(фон), который соответствует записи? Вот так:

 

Добрый день!

Такая реализация выделяет цветом текстовое содержимое записи. А можно сделать так, чтобы выделялась цветом весь ряд/запись как фон указанного цвета?

Есть бесплатное дополнение Records color highlighting.

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

можно покрасить просто строку указав 

item.customStyle =  {

                    'color' : "black",

                    'background' : "#33FF33"

                         }

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

Добрый день!

Кто-то сталкивался в 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)

Application Version: 7.5.0.1122

Нравится

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

Redis сессии сбрасывал?
Redis client: flushall
Или это on demand?

"Александр Кудряшов" написал:Redis сессии сбрасывал?

Добрый день, Александр! Почистили. Не помогло. Есть еще варианты?

Данный вопрос был решен в рамках удаленного подключения по обращению 0248304.(Пересоздали пользователя).

"Пономаренко Артем Николаевич" написал:Пересоздали пользователя

Да, видимо что-то произошло "не по плану" когда создавались исходные контакты/пользователи.

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