Как из действий CTI панели при запуске бизнес процесса открывать мини карточку?
Необходимо заполнить результаты звонка, но показывать оператору не всю карточку а только пару полей в ней.
 

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

Нравится

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

В самом процессе, который привязан к кнопке на панели, можно создать блок «автогенерируемая страница» и вывести на неё нужные поля. Или «Преднастроенная страница», там возможности дизайна шире: можно создать новую страницу с полями или указать интересующую мини-карточку. То есть нужно в конфигурации или библиотеке процессов найти нужный БП и доработать.

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

Автогенерируемая страница не подойдет, нужна именно миникарточка.
Если использовать "преднастроенную страницу" и туда указывать мини карточку, то из CTI панели мини карточка не открывается. Просто по нажатию проставляется url типа CallMiniPage/add/GUID и ничего больше не происходит.

А какие-то ошибки при этом пишутся в консоли?

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

Добрый день!

 

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

 

Спасибо!
 

Нравится

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

Здравствуйте! В нужном Вам разделе перейдите в мастер разделов(https://prnt.sc/tr326c), затем уберите галочки(https://prnt.sc/tr32qw) - это что касается первой части вопроса.

Касательно второго, прочтите данное обсуждение

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

Владимир, в таком случае нужно смотреть, где в коде отрисовки разделов идёт считывание поля MiniPageModes из SysModuleEdit (точнее, из представления VwSysModuleSchemaEdit) и вносить там правку, чтобы для конкретного раздела читало одно, а действовало, как будто бы там другое.

 

Пока нашёл схему ConfigurationSectionHelper, которая генерирует  Terrasoft.configuration.ModuleStructure с информацией о всех разделах, доступной из JS. Возможно, поможет правка в этой схеме в функции GetModuleStructure, где читают свойства каждого зарегистрированного раздела, в том числе и MiniPageModes, и другой функции GetQuickAddConfig в этой же схеме. Вот она:

  /// <summary>
  /// Gets quick add menu items configuration.
  /// </summary>
  /// <param name="userConnection">User connection.</param>
  /// <returns>Quick add menu items configuration.</returns>
  public virtual string GetQuickAddConfig(UserConnection userConnection) {
   Dictionary<Guid, string> quickItems = new Dictionary<Guid, string> ();
   string tpl = @"{{QuickAddMenu: [{0}]}}";
   string itemTpl = @"{{itemId:'{0}',SysEditId:'{1}',name:{2},EditPageName:'{3}',TypeColumnValue:'{4}',TypeColumnName:{5},ModuleName:'{6}',EntitySchemaName:'{7}',miniPageSchema:'{8}',hasAddMiniPage:{9}}}";
   bool useMultilanguageData = !userConnection.GetIsFeatureEnabled("DoNotUseMultilanguageData");
   Select quickAddMenuItemsSelect = GetQuickAddMenuItemsSelect(userConnection);
   using (DBExecutor dbExecutor = userConnection.EnsureDBConnection()) {
    using (IDataReader dataReader = quickAddMenuItemsSelect.ExecuteReader(dbExecutor)) {
     while (dataReader.Read()) {
      Guid itemId = dataReader.GetColumnValue<Guid>("Id");
      Guid sysModuleEditId = dataReader.GetColumnValue<Guid>("SysModuleEditId");
      Guid typeColumnValue = dataReader.GetColumnValue<Guid>("TypeColumnValue");
      string editPageName = dataReader.GetColumnValue<string>("EditPageName");
      string name = dataReader.GetColumnValue<string>("Name");
      string caption = useMultilanguageData ? dataReader.GetColumnValue<string>("Caption") : string.Empty;
      name = Json.Serialize(caption.IsNullOrEmpty() ? name : caption);
      string typeColumnName = Json.Serialize(String.Empty);
      Guid sysEntitySchemaUId = dataReader.GetColumnValue<Guid>("SysEntitySchemaUId");
      string entitySchemaName = dataReader.GetColumnValue<string>("EntityName");
      string moduleName = dataReader.GetColumnValue<string>("ModuleName");
      // TODO CRM-53025
      bool rightLevel = string.IsNullOrEmpty(entitySchemaName) ? true :
       userConnection.DBSecurityEngine.GetIsEntitySchemaAppendingAllowed(entitySchemaName);
      Guid columnUId = dataReader.GetColumnValue<Guid>("TypeColumnUId");
      Guid miniPageSchemaUId = dataReader.GetColumnValue<Guid>("MiniPageSchemaUId");
      string miniPageModes = dataReader.GetColumnValue<string>("MiniPageModes");
      bool hasAddMiniPage = HasSchemaEditAddMiniPage(userConnection, entitySchemaName, miniPageModes);
      if (columnUId != null && columnUId != Guid.Empty) {
       typeColumnName = Json.Serialize(userConnection.EntitySchemaManager.GetInstanceByUId(sysEntitySchemaUId).Columns.GetByUId((Guid)columnUId).Name);
      }
      if (!quickItems.ContainsKey(itemId) && rightLevel) {
       quickItems.Add(itemId, string.Format(itemTpl, itemId, sysModuleEditId, name, editPageName, typeColumnValue, typeColumnName, moduleName, entitySchemaName, miniPageSchemaUId, hasAddMiniPage.ToString().ToLower()));
      }
     }
    }
   }
   var items = string.Join(",", quickItems.Select(x => x.Value));
   return string.Format(tpl, items);
  }

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

 

Главное, не забыть потом.

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

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

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

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

Передали данное пожелание команде разработки для анализа возможности внедрения такой возможности в будущих версиях продукта.

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

Добрый день!

Возможно ли реализовать добавление файлов (или хотя бы одного файла) на мини-карточке при создании записи?
Учитывая, что файлы хранятся в детали, а деталь требует уже сохраненной записи, это как-то решаемо по-другому?

Спасибо!

Нравится

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

НУ как то выкрутится конечно можно создать какойто объект к которому прикреплять файлы (сохранять их Id)  и после создания основной записи переприкрпеплять файы к ней.

Есть пример противоположного, мини-карточка со скачиванием из неё файлов.

В Вашем случае, с учётом отсутствия основной записи для привязки к ней записи детали файлов, может, лучше посмотреть в сторону БП с преднастроенной страницей?

 

НУ как то выкрутится конечно можно создать какойто объект к которому прикреплять файлы (сохранять их Id)  и после создания основной записи переприкрпеплять файы к ней.

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

Коллеги, возникло желание (очень справедливое) при создании контакта из лида не вбивать заново информацию, которую уже занесли в систему.

Соответственно, вопрос: как в мини-карточке (второй вопрос - в нормальной карточке) создания нового контакта заполнить поля имеющейся информацией?

 

Нравится

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

Владимир,

Вы можете воспользоваться кнопкой "Квалифицировать" (скриншот) для автоматической генерации Контакта и Контрагента на основе регистрационных данных (скриншот). Эта кнопка также доступна из реестра записей раздела (скриншот).

Более подробная информация о квалификации лида находится на сайте академии в статье Квалификация лида.

"(очень справедливое)" - справедливости в этом мире нет. Поэтому придётся ручками на странице лида подписываться вот на это сообщениеНу и возвращать список дефолтных значений.

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

Соротюк Татьяна пишет:
Вы можете воспользоваться кнопкой "Квалифицировать" (скриншот) для автоматической генерации Контакта и Контрагента на основе регистрационных данных (скриншот). Эта кнопка также доступна из реестра записей раздела (скриншот).

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

Будем пробовать предложенный вариант. Спасибо!

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

Было бы хорошо отметку о напоминаниях автору и ответственному вынести в мини-карточку Активности, так как это одна из основных функций, которую заполняют при создании задач

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

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

 

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

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

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

!

Нравится

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

Добрый день, Мария.

За стили отображения мини карточки контакта отвечают стили, описанные в модулях ContactMiniPageCSS и BaseMiniPageCSS. Вам необходимо создать свой модуль с css стилями по аналогии с ContactMiniPageCSS и добавить его в зависимости к замещающей схеме ContactMiniPage.

При замещении css стилей Вам необходимо смотреть в сторону добавления стилей height и overflow-y к селектору MiniPageContentContainer.

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

Добрый день, стоит задача убрть поле “Название контрагента” из мини-карточки лида во время добавления
!
Создали замещающую схему:

define("LeadMiniPage", ["MiniPageResourceUtilities", "EmailHelper", "BaseProgressBarModule",
        "css!BaseProgressBarModule", "css!LeadMiniPageCSS"
    ],
    function(miniPageResources, EmailHelper) {
        return {
            entitySchemaName: "Lead",
            details: /**SCHEMA_DETAILS*/ {} /**SCHEMA_DETAILS*/ ,
            attributes: {

            },
            methods: {},
            diff: /**SCHEMA_DIFF*/ [{
                    "operation": "insert",
                    "name": "Account",
                    "parentName": "MiniPage",
                    "propertyName": "items",
                    "values": {
                        "layout": {
                            "column": 0,
                            "row": 4,
                            "colSpan": 24
                        },
                        "isMiniPageModelItem": true,
                        "visible": false
                    }
                },

            ] /**SCHEMA_DIFF*/
        };
    }
);

но не срабатывает, также переопределяли метод getContactAccountVisibility, но тогда пропадают также и ФИО контакта.
Пробовали также такой вариант:
methods: {
        getContactAccountVisibility: function(columnNames) {
            return false;
        },
        getContactVisibility: function(columnNames) {
            if (this.get("IsFromSection") || this.get("IsFromQuickAddMenu")) {
                return true;
            }
            return !this.get("IsQualifiedLookupVisible") && this.isViewMode(columnNames);
        },
    },
    diff: /**SCHEMA_DIFF*/ [{
            "operation": "insert",
            "name": "Account",
            "parentName": "MiniPage",
            "propertyName": "items",
            "values": {
                "layout": {
                    "column": 0,
                    "row": 4,
                    "colSpan": 24
                },
                "isMiniPageModelItem": true,
                "visible": {
                    "bindTo": "getContactAccountVisibility"
                }
            }
        },
        {
            "operation": "insert",
            "name": "Contact",
            "parentName": "MiniPage",
            "propertyName": "items",
            "values": {
                "layout": {
                    "column": 0,
                    "row": 5,
                    "colSpan": 24
                },
                "isMiniPageModelItem": true,
                "visible": {
                    "bindTo": "getContactVisibility"
                }
            }
        },
    ] /**SCHEMA_DIFF*/

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

Нравится

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

вариант 1:

diff: /**SCHEMA_DIFF*/ [
{
     "operation": "remove",
     "name": "Account"
}
] /**SCHEMA_DIFF*/

В этом случе вы удаляете элемент (ну и он скрывается соответственно)

вариант 2:

diff: /**SCHEMA_DIFF*/ [
{
    "operation": "merge",
     "name": "Account",
     "values": {
            "visible": false
      }
}
] /**SCHEMA_DIFF*/

Тут вы его просто скрываете

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

Предлагаю разработать функциональность - дизайнер страницы для мини-карточки (для всех мини-карточек). Предложение в списках на улучшение с середины прошлого года. Может быть через канал "Идеи" будет быстрее?

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

А сколько голосов надо набрать, чтобы реализовали? :)

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

Спасибо, за Ваше пожелание.

Данный функционал будет реализован в будущих версиях.

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

Добрый день!

Функциональность дизайнера миникарточек уже в работе. В одной из ближайших версий выпустим в релиз! 

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

Рада сообщить, что функциональность дизайнера миникарточек будет доступна в версии 7.12.2.

 

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

Здравствуйте, коллеги!
Подскажите пожалуйста, как сделать так, чтобы при нажатии на кнопку "Добавить Продажу" раздела "Продажи" открывалось окно редактирования новой записи, как в старой версии, а не мини-карточка?
bpm'online 7.8.

Нравится

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

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

Мини-карточки отключаются. Для отключения:
1) Перейдите в "Дизайнер системы"
2) Перейдите в "Системные настройки"
3) Найдите системные настройки, название которых начинается с "Использовать мини"
В результате Вы получите набор системных настроек, которые отвечают за мини-карточки во всех разделах.
4) Отключите мини-карточку для раздела "Продажи" (в поле "Значение" снимите галочку)
5) Перезайдите в систему

"Демьяник Алексей" написал:

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

Мини-карточки отключаются. Для отключения:
1) Перейдите в "Дизайнер системы"
2) Перейдите в "Системные настройки"
3) Найдите системные настройки, название которых начинается с "Использовать мини"
В результате Вы получите набор системных настроек, которые отвечают за мини-карточки во всех разделах.
4) Отключите мини-карточку для раздела "Продажи" (в поле "Значение" снимите галочку)
5) Перезайдите в систему


Огромное спасибо!

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