Вопрос

Здравсвуйте! Создал View, нужно открыть модальное окно этой вьюшки, в конфиге для LookupUtilities.Open указываю эту вьюшку.

var config = {
	entitySchemaName: "ScVwSLPBalanseFApp",
);
 
LookupUtilities.Open(this.sandbox, config, this.loadFinStatementForPeriod, this, null, false, false);

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

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

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

Скорее всего, накладывается какой-то фильтр.

Посмотрите через SQL Profiler, какой запрос уходит в базу.

В response приходят все записи, что странно, почему отображаются не все.

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

Какая колонка у вас указана как идентификатор и как вы ее заполняете в вашей вьюхе?

Зверев Александр,

Спасибо за ответ, да дело было в Id во вьюшке.

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

О компании: AIZEL – это:

  • первый в России модный маркетплейс;
  • более 700 мировых брендов онлайн;
  • предзаказ новых коллекций прямо с подиума;
  • бесплатная консультация профессиональных стилистов;
  • Private Client Service;
  • экспресс-доставка заказов по всей России и СНГ;
  • новости, модные съемки, интервью с дизайнерами.

 

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

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

Задачи внедрения bpm’online:

  • Автоматизация процесса работы call-центра;
  • Организация процессов взаимодействия сотрудников между собой; 
  • Построение аналитики для мониторинга уровня удовлетворенности клиентов и качества выполнения задач сотрудниками.

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

 На первом этапе настройки системы в карточку контакта были добавлены колонки для фиксации необходимой информации о клиенте: ID клиента, сегмент, количество заказов и др.

Регистрация обращений происходит по нескольким каналам: звонок и email. Поэтому была настроена синхронизация bpmonline с почтовыми ящиками службы поддержи и автоматическое создание обращений и входящих писем клиентов. Кроме этого была реализована интеграция с телефонией. Это позволяет агрегировать всю информацию о коммуникациях с клиентами компании в карточке клиента.

Далее выполнена адаптация процесса обработки обращений в кейсах раздела [Обращения]. Настройки выполнены с помощью инструмента Case Management. Добавлены стадии «Дубль» и «Спам», они нужны для исключения обращений, которые не нужно обрабатывать. После этого добавлены категории сервисов, такие как: «Оформление заказа», «Подтверждение заказа», «Возврат товара», «Технические ошибки на сайте» и др.  В процессе решения обращений используется коробочная система уведомлений клиентов о смене состояния обращений, а сотрудников - о назначении их ответственными за обращения.

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

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

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

Результат

В результате внедрения bpm’online организован процесс обработки обращений сотрудниками call-центра.  Решение этой задачи позволило: улучшить внутренние процессы взаимодействия смежных отделов в компании и ускорить процесс обработки обращений. И как следствие повысить лояльность клиентов компании.

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

 

Поделиться

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

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

Как такое можно реализовать?

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

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

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

Алла Савельева,

Да, спасибо большое! Очень похоже на то, что мне нужно. Я создал событие которое мне нужно, далее с помощью системного элемента "читать данные" взял последнюю измененную запись. Теперь нужно ее отправить. Не могли бы вы подсказать как это сделать?

Попробовал данный код, чтобы считать и отправить данные, но запрос не доходит(

EntityCollection entities = Get<EntityCollection>("DataReader.ResultEntityCollection");
string json = JsonConvert.SerializeObject(entities);

string authServiceUri = "http://123/BPMTEST/test.php";

var authRequest = System.Net.HttpWebRequest.Create(authServiceUri) as System.Net.HttpWebRequest;

authRequest.Method = "POST";

authRequest.ContentType = "application/json";

using (var requestStream = authRequest.GetRequestStream())
{
    using (var writer = new System.IO.StreamWriter(requestStream))
    {
        writer.Write(json);
    }
}
return true;

Добрый день!
Попробуйте использовать элемент БП "Вызов веб-сервиса". Пример тут

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

О компании

Компания «ЭнДи-Консалт» занимается автоматизацией процессов предприятий на базе программных продуктов «1С: Предприятие 8» в таких сферах как ритейл, производство, консалтинг, медицина и строительство.

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

До внедрения bpmonline компания использовала систему, которая не смогла эффективно автоматизировать процесс сервисного обслуживания при динамическом росте компании.

Для улучшения качества обслуживания своих клиентов и для предоставления им возможности отслеживать состояние направленных обращений в режиме реального времени, компанией было принято решение внедрить максимально гибкую платформу по автоматизации клиентского сервиса. Таким требованиям соответствовала платформа bpm'online service.

Задачи внедрения bpm’online service:

  1. Автоматизация процесса обработки обращений клиентов;
  2. Построение системы формирования отчетности для мониторинга качества обслуживания клиентов и загруженности сотрудников;
  3. Консолидация информации в единой системе.

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

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

Первым шагом была выполнена настройка кейса для управления обращениями. Настройка реализована с использованием инструмента Case Management. В существующий кейс добавлены стадии «Ожидание» и «Оценка». Для контроля сроков реакции на новое обращение был настроен вспомогательный бизнес-процесс автоматической отправки писем руководителю, если обращения не взято в работу более 20 минут.

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

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

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

Благодаря установленному приложению Kanban view, сотрудники, а также пользователи портала могут визуально структурировать данные. Кроме этого у них есть возможность изменять состояние обращений и работать с активностями.

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

Результат

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

Поделиться

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

Коллеги, добрый день. 

 

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

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

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

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

 

Этот параметр по операциям администрируется, вроде. Возможно, где-то в режиме администратора есть настройка? 

Нашёл вот такую статью, но решение не помогает.

https://community.terrasoft.ru/articles/cto-delat-esli-cast-menedzerov-perestala-videt-soobsenia-drugih-menedzerov

Sunrise challenge,
По умолчанию все пользователи видят все сообщения. Ограничения накладываются на правах объектов. Это можно увидеть, взяв чистую демо версию Service Enterprice.
Если на вашей системе это не так, советую обратиться в тех поддержку, т.к. это коробочный функционал

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

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

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

Коллеги, добрый день.

 

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

 

 

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

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

Посмотрите эту тему и эту статью. Для деталей тоже должно работать

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

Добрый день.

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

Подскажите где генерируются данные кнопки?

Прикрепленные файлы

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

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

Все намного проще, обычно определяется (меняется в diff)

{
        "operation": "merge",
        "name": "DataGrid",
        "values": {
                "activeRowAction": {"bindTo": "onActiveRowAction"},
                "activeRowActions": [
                        {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "myButtonAction",
                                "tag": "myAction",
                                "caption": "MyButton"
                        }
                ]
        }
}

Подробнее тут

Григорий Чех пишет:

Григорий Чех у меня нет цели засорять код дифтами.

У меня будет 100 секций в которой будет такая же задача и я буду в каждой дифт делать? 

Мне проще заместить схему и внести свою логику.

Казанцев, 

см в ConfigurationGrid метод renderRowActions

Но его нет при генерации секции

Этот метод перебирает значения из массива activeRowActions:

  renderRowActions: function(renderTo, id) {
   var rowActions = Ext.clone(this.activeRowActions);
   var self = this;
   var isGridEnabled = this.model.get("IsEnabled");
 
   function actionHandler() {
    self.onActionItemClick(this.tag, id);
   }
 
   for (var i = 0, c = rowActions.length; i < c; i += 1) {
    var action = rowActions[i];
    if (isGridEnabled === false && action.tag !== "card") {
     continue;
    }
    action = Ext.apply({}, action, {
     renderTo: renderTo,
     handler: actionHandler,
     classes: {
      wrapperClass: ["configuration-grid-action-button"]
     }
    });
    var actionItem = Ext.create(action.className, action);
    var selectedViewModel = this.getActiveRowViewModel(id);
    actionItem.bind(selectedViewModel);
    actionItem.setEnabled(this.enabled);
    this.actionItems.push(actionItem);
   }
  },

Соответственно, в схемах с дополнительными кнопками в него добавляются элементы. Например, в схеме ContactOpenCasesDetail:

{
	"operation": "merge",
	"name": "DataGrid",
	"values": {
		"activeRowAction": {"bindTo": "onActiveRowAction"},
		"activeRowActions": []
	}
},
{
	"operation": "insert",
	"name": "OpenRecordButton",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": Terrasoft.controls.ButtonEnums.style.BLUE,
		//TODO localizablestring
		"caption": "Open",//{ "bindTo": "Resources.Strings.OpenButtonCaption"},
		"tag": "open"
	}
},
{
	"operation": "insert",
	"name": "MergeRecordButton",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": Terrasoft.controls.ButtonEnums.style.GREY,
		//TODO localizablestring
		"caption": "Merge doubles",//{ "bindTo": "Resources.Strings.MergeCaption"},
		"tag": "merge"
	}
}

 

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

Доброго времени суток.

 

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

Подскажите, пожалуйста, где это делается

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

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

Добрый день!
Перейти в раздел обращений, из него в мастер раздела, далее вкладка "Портал" и нажать кнопку "Редактировать страницу".
А там уже добавлять, изменять поля

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

 

А у обработчика ее нет. Как можно ее вернуть?

Разверните на отдельном сервере вашу версию bpmonline и заберите оттуда все что вам нужно востановить....

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

Коллеги, добрый день. 

Подскажите, пожалуйста, как в системе реализовано 2 задачи:

 

1) Шаблоны ответов представлены на английском(почему только на нём?), как сменить язык пакетно? Почему при добавлении русской локализации шаблон не переводится или не предоставляется аналог ? 

2) Если первая функция не реализована, почему нельзя выбрать весь пул ответов и сменить локализацию(пусть и пустую)? 

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

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

Стандартные шаблоны предоставлены на обоих языках. Нужно открыть шаблон на редактирование и сверху будет переключение в виде двух вкладок:

chapter_content_designer.png

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

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

BPMO Service Enterprise, версия 7.14.0.597

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

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

Логика интеграции конкретных полей реализована в схеме LDAPUtilities, там есть структуры LdapUser и LdapGroup:

public struct LdapUser
{
	#region Fields: Public
 
	public string Id;
	public string Name;
	public string FullName;
	public string Company;
	public string Email;
	public string Phone;
	public string JobTitle;
	public bool IsActive;
	public string Dn;
	public DateTime ModifiedOn;
 
	#endregion
}
 
public struct LdapGroup
{
	#region Fields: Public
 
	public string Id;
	public string Name;
	public string Dn;
	public DateTime ModifiedOn;
 
	#endregion
 
	#region Constructors: Public
 
	public LdapGroup(string id, string name, string dn) {
		Id = id;
		Name = name;
		Dn = dn;
		ModifiedOn = DateTime.MinValue;
	}
 
#endregion
}

 И дальше есть методы, с ними работающие. Например:

private LdapUser CreateLdapUser(SearchResultEntry entry, string attributeDefValue) {
	LdapUser ldapUser = new LdapUser();
	ldapUser.Id = GetEntryIdentityAttribute(entry, _ldapUserIdentityAttribute);
	ldapUser.Name = GetEntryRequiredAttributeStringValue(entry, _ldapUserLoginAttribute);
	ldapUser.FullName = GetEntryAttributeStringValue(entry, _ldapUserFullNameAttribute, attributeDefValue);
	ldapUser.Company = GetEntryAttributeStringValue(entry, _ldapUserCompanyAttribute, attributeDefValue);
	ldapUser.Email = GetEntryAttributeStringValue(entry, _ldapUserEmailAttribute, attributeDefValue);
	ldapUser.Phone = GetEntryAttributeStringValue(entry, _ldapUserPhoneAttribute, attributeDefValue);
	ldapUser.JobTitle = GetEntryAttributeStringValue(entry, _ldapUserJobTitleAttribute, attributeDefValue);
	string accountControlAttributeValue =
		GetEntryAttributeStringValue(entry, LdapUserAccountControlAttributeName, string.Empty);
	ldapUser.IsActive = string.IsNullOrEmpty(accountControlAttributeValue) ||
		IsActive(accountControlAttributeValue);
	bool useLoginUserLDAPEntryDN = _userConnection.AppConnection.UseLoginUserLDAPEntryDN;
	ldapUser.Dn = useLoginUserLDAPEntryDN ? entry.DistinguishedName : attributeDefValue;
	ldapUser.ModifiedOn = GetEntryDateTimeAttributeValue(entry, _ldapEntryModifiedOnAttribute);
	return ldapUser;
}
 
private LdapGroup CreateLdapGroup(SearchResultEntry entry) {
	LdapGroup ldapGroup = new LdapGroup();
	ldapGroup.Id = GetEntryIdentityAttribute(entry, _ldapGroupIdentityAttribute);
	ldapGroup.Name = GetEntryRequiredAttributeStringValue(entry, _ldapGroupNameAttribute);
	ldapGroup.Dn = entry.DistinguishedName;
	ldapGroup.ModifiedOn = GetEntryDateTimeAttributeValue(entry, _ldapEntryModifiedOnAttribute);
	return ldapGroup;
}

Для добавления новых атрибутов потребуется дорабатывать по аналогии с существующими. Сами названия атрибутов, а также параметры подключения к LDAP не жёстко зашиты, а хранятся в системных настройках (все можно найти по «LDAP» в их коде) и считываются на ходу тут же в конструкторе класса LdapUtilities.

Зверев Александр,

А можно ли замещать исходный код c#, который касается интеграции Ldap, в случае, если требуется добавить несколько новых атрибутов?
Или потребуется на уровне БП "Синхронизировать данные о пользователях с LDAP" переключаться на дублирующую логику с расширенным числом атрибутов?

Можно создать UsrLdapUtilities, скопировать базовую логику, внести свои доработки, а затем найти все использования оригинальной LdapUtilities и подменить.

Зверев Александр,

Я верно понимаю, что замена будет идти в БП и js, а коробочный C# заменять таким образом нельзя (можно только создавать свое рядом)?

В БП можно создавать изменённые версии стандартных, они попадут с таким же именем в пакет Custom (или другой свой). Для JS есть ограничения, схемы-модули замещать нельзя.

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