Здравствуйте!
Реализую процесс визирования, сделал на основе визирования счетов – бизнес-процессы, кнопка меню действия, провайдер уведомлений, добавил запись в таблицу NotificationProvider
Бизнес процесс отрабатывает, записи в детали визирования появляются, ошибок нет, но уведомления в ленте не появляются.
Подскажите, пожалуйста, в какую сторону копать (sales 7.8.0.1134).

Нравится

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

Добрый день!

Следует убедится:
1. Уведомление действительно создается в таблице Reminding.
2. В уведомлении указано корректное время и адресат.
3. Если запись в таблице есть, но уведомление не отображается в коммуникационной панели – не создан/некорректно создан провайдер уведомления для объекта. Пример можно посмотреть в схеме – InvoiceVisaNotificationProvider.

После сохранения визы, запись в таблицу Reminding действительно не добавляется... подскажите, каким образом она туда должна попадать?

В бизнес-процессах визирования счёта ни чего подобного не нашёл...

Добрый день!

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

В InvoiceVisa запись появляется но Уведомлений нет... буду разбираться с провайдером
Я так понимаю что с периодичностью указанной в настройке "Интервал проверки уведомлений" (RemindingsCheckInterval) происходит опрос всех провайдеров из таблицы NotificationProvider, каждый в свою очередь выполняет запрос к сущностям для которых он создан, и раскидывает результаты по уведомлениям ленты, правильно я полагаю?

Все верно.

Заметил что появляются оповещения внизу у часов, а вот в самой ленте ни чего, прилагаю скриншот

За уведомления ленте и за оповещения у часов отвечает один и тот же Провайдер?
Может есть какая-то настройка чтобы виза отображалась в ленте?

При попытке отладки через Visual Studio поставил точки останова в методах нескольких провайдеров в том числе и созданного... но ни одна из них так и не сработала, какой механизм вызывает эти провайдеры?

Как оказалось конфигурация Team по умолчанию не имеет вкладки визирование, её необходимо добавлять основываясь на продукте Enterprice...
... цитирую ответ от техподдержки:
"В продукте Sales Enterprise за добавления вкладки отвечает схема CenterNotificationSchema (пакет SalesEnterprise), метод getTabsConfig()."

Спасибо всем за участие!

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

Добрый день коллеги!
Подскажите пожалуйста, как можно реализовать пункт в Бизнесс процессе, который бы переводил пользователя на страницу раздела, например на страницу раздела "Активности" с активным View - Расписание, при чем передавая некоторые параметры (например с определенной датой для фильтра).
Подскажите пожалуйста, какие есть возможности по реализации данной задачи? Спасибо!

Нравится

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

Добрый день!

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

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

Здравствуйте. В разделе Согласование были настроены папки по департаментам контактов. Само согласование создаётся одним ответственным лицом. Нужно настроить ограничение, чтобы каждый департамент видел только записи относящиеся к ним. А записи других департаментов они не видели

Нравится

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

Возможно ли так всё настроить самому?

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

1. Выберите папку
2. Нажмите на "Шестеренку"
3. В выпадающем списке выберите "Настроить права"

Настройте права и сохраните изменения.

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

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

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

Версия 3.3.2.311.

Заранее спасибо.

Нравится

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

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

Использовал такой код для реализации данной задачи, может кому пригодиться:

var ContactSelectQuery = Services.GetNewItemByUSI('sq_Contact');
EnableSelectQueryFilters(ContactSelectQuery, false);
ApplySelectQueryFilter(ContactSelectQuery, 'ID', ContactID, true);
var ContactDataset = ContactSelectQuery.Open();
Dataset.Values('ContactAddress') = ContactDataset.Values('Address');

Еще в конце тогда уж

ContactDataset.Close();
Показать все комментарии

Подскажите, люди добрые!
Начинаем осваивать планировщик в 7.7. Пытаюсь запустить его сценарием из БП:

var userConnection = GetUserConnection>("UserConnection");
string schedulerJobGroupName = "GroupName";
string jobProcessName = "ISSendContacts";
string schedulerJobName = "JobISSendContacts";
int startOffset = 20;
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

При условии, что подключил библиотеки в Usings:

Quartz.Impl
Quartz
Quartz.Impl.Triggers
Terrasoft.Core.Scheduler

А при компиляции он ругается на AppScheduler и SimpleTriggerImpl, типа, они не объявлены.
Пробовал перед ними добавлять альясы Usings, например "Terrasoft.Core.Scheduler.AppScheduler", но это тоже не помогло.
Связано ли это с тем, что БП, создающий Job находится в созданном мной отдельном пакете, в котором из зависимостей только базовые пакеты Base и UIv2?

Нравится

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

Повторил этот бизнес процесс с нуля и он заработал без ошибок :)
Вообще странно, но в любом случае, получается, что я сам где-то ошибся.

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

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

Нравится

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

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

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

Спасибо за ответ! Думал об использовании описанного Вами способа, но проблема как раз в том, что библиотека имеет набор ресурсов, кроме того, она состоит из нескольких зависимых js. Сейчас пришел к такому решению: разместил на сервере в папке Terrasoft.WebApp\Resources\ui необходимые библиотеки, далее в модуле страницы подключаю все эти js файлы по аналогии с jquery, т.е. перечисляя их в define. Решение рабочее, библиотеки успешно подгружаются. Но у меня есть сомнения в отношении корректности такого подхода с точки зрения разработки...

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

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

Нравится

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

Добрый день! В "кубике" Задание-сценарий, в свойствах снимите галку "Для интерпретируемого процесса".

"Шамшин Олег" написал:

Добрый день! В "кубике" Задание-сценарий, в свойствах снимите галку "Для интерпретируемого процесса".


Спасибо за ответ, чуть-чуть бы раньше, а так методом тыка разобрался.

А как получить коллекцию из элемента ReadData в интерпретируемом процессе?
Раньше можно было обратиться к нему как к параметру: ReadData.ResultEntity.

"Коновалов Игорь" написал:

А как получить коллекцию из элемента ReadData в интерпретируемом процессе?

Раньше можно было обратиться к нему как к параметру: ReadData.ResultEntity.

Как я понял сценарии "Для интерпретируемого процесса" умеют работать только с параметрами самого процесса. Следовательно тебе надо ReadData.ResultEntity засунуть в какой-то элемент процесса и работать с ним через

Get<тип>("Название параметра");

Или использовать сценарии НЕ "Для интерпретируемого процесса" тогда можно обращаться как к параметру ReadData.ResultEntity

*кажется разница в "интерпретируемом" и "не интерпретируемом" сценарии в виртуальном методе класса.

Слава, спасибо.
Уже решил через не интерпретируемый элемент процесса.
По ходу возникла проблема с использованием методов БП.
Решил так:

var processModel = ((<Название БП>Wrapper)this.ProcessModel);
processModel.<Название метода>(<Аргументы>);

Вообще, в каких-то случаях, в интерпретируемых элементах процесса, можно вытащить параметры из контекста. Но работает, кажется, не всегда... Не всегда в контекст приходит полный Process. Короче я пока до конца не разобрался как строятся новые процессы :smile:

И что же? За год так и не появился официальный ответ на этот вопрос?

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

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

Нравится

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

Екатерина, добрый день.
Прошу уточнить точную версию сборки и название продукта/бандла, на котором воспроизводится ошибка. Проверили на версии 7.8 - ошибка не воспроизвелась.

Для проверки выполнили следующее:
1. Создали лид с параметрами:
поле "должность" - пустое
поле "Мобильный телефон" - 123
2. Создали Контакт с параметрами:
поле "Должность" - Директор по продажам
поле "Мобильный телефон" - 456

3. Связали лид с контактом.
4. Квалифицировали лид.

Результат:
- Поле "Должность" у контакта заполнено(не перезатерлось пустым значением)
- Для контакта добавлено дополнительно средство связи "Мобильный телефон" - 456.

В случае, если Ваш кейс воспроизведения отличается, пожалуйста, сообщите.

Анастасия, у нас версия 7.8.0.1005

Только что воспроизвели ваш кейс, поле "Должность" затерлось пустым значением.

Добрый день!

Воспроизвели на последней сборке проблему с затиранием должности контакта, т.к. создается новая запись о месте работы. Средства связи (телефон и email) не затираются в последней сборке, а дополняются к уже существующим.
Проблему с затиранием должности исправим в следующей версии приложения.
В случае, если требуется исправление на определенном сайте сейчас, то обратитесь от авторизованного лица на почту support@terrasoft.ru с указанием проблемы и сайта где необходимо внести изменения.

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

Добрый день. Необходимо в раздел Орг.структура добавить текстовое поле.
Добавил его в SysAdminUnit, VwSysadminUnit. Добавил элемент в diff.
Но при открытии раздела в консоли появляются следующие ошибки:
http://joxi.ru/Grqv86vTK3akmz
Подскажите, что упустил.

Нравится

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

Здравствуйте. Судя по первой ошибке запрос не может найти колонку UsrChannelSlack и вторую, которую вы замазали. Если вы не ошиблись с названием колонки в замещенной клиентской схеме, то, возможно, проблема в фильтрах или вы забыли очистить кеш браузера.
Возможно, банально забыли сохранить замещенные объекты (посмотрите наличие колонок в таблицах БД)
Сложно ответить без примера исходных кодов

И в догонку. Судя по URL Вы ведете разработку в продуктовом приложении. Это грубейшая ошибка. Вам следует развернуть отдельное приложение для разработки и для тестирования. Или хотя-бы создать отдельную конфигурацию (workspace)

Я бы начал с компиляции объекта VwSysAdminUnit, проверки его sql запроса в базе, проверки имен полей в клиентском модуле, а потом уже чистки кэша.

"Симута Роман Русланович" написал:Возможно, банально забыли сохранить замещенные объекты (посмотрите наличие колонок в таблицах БД)

+

И это, я понимаю когда номера машин на фото замазывают, но уж название поля - это шикарно :cool: при этом спалили логин и сайт...

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

Может у кого есть кейс по добавлению поля в орг.структуру?
Буду очень благодарен.

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

А вы, Александр, ещё и внимание на этом заострили :lol:

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

Роман, а вообще есть ли особенности при добавлении пользовательского поля в орг.структуру (SysAdminUnitPageV2)?
Я, например, заметил. что в нём не указывается entitySchema.

у меня Версия 7.8.0.1434

Схема объекта указана в "Базовая схема страницы редактирования раздела "Роли"" (SysAdminUnitRoleBasePageV2) от которой наследуется Схема страницы редактирования раздела "Организационные роли" (SysAdminUnitPageV2)

define("SysAdminUnitRoleBasePageV2", ["ConfigurationConstants", "SysAdminUnitRoleBasePageV2Resources"],
	function(ConfigurationConstants, resources) {
		return {
			entitySchemaName: "VwSysAdminUnit"....

т.к. схема объекта - VwSysAdminUnit, то именно ее и следует замещать, и в замещающей схеме добавить новую колонку, которую необходимо привязать к новому полю в тоже замещающей клиентской схеме SysAdminUnitPageV2
Никаких особых особенностей по идее быть не должно
единственное что надо внимательно смотреть для 7.8 какую схему из какого пакета в результате заместили :)

Я так понимаю, что моя проблема заключается в том, что я добавил поле в VwSysAdminUnit, а в сам select VwSysAdminUnit его не добавил.
Есть ли пример проведения данной операции для базы on-demand?

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

очень приблизительный путь решения (и я очень не уверен в правильности)
создать в бд в таблице SysAdminUnit нужную колонку
создать в бд в представлении VwSysAdminUnit нужную колонку и связать с таблицей SysAdminUnit
может еще что нужно сделать

НО ДЕЛАТЬ ЭТО НА ТЕСТОВОЙ БД, ни в коем случае не на рабочей
для базы on-demand это сделать вряд-ли получится из-за требований по безопасности
нужно разворачиваться локально

"Коновалов Игорь" написал:Есть ли пример проведения данной операции для базы on-demand?

http://www.community.terrasoft.ru/blogs/11961
установите и гоняйте любые запросы

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

Добрый день.
Необходимо реализовать следующую последовательность действий:
Входной звонок-> получение уникального Id звонка ->вызов C# сервиса передав ему необходимые параметры включая Id звонка из базы.
Создаю бизнес процесс на объекте Call: После добавления записи.
Но он не срабатывает. Есть ли какая инструкция на реализацию похожего функционала?
P.S. bpm 7.5

Нравится

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

Здравствуйте, возможно вам поможет эта статья:
https://academy.terrasoft.ru/documents/technic-sdk/7-6-0/kak-dobavit-av…

[quote="Татаринов Андрей Алексеевич"]Здравствуйте, возможно вам поможет эта статья:
https://academy.terrasoft.ru/documents/technic-sdk/7-6-0/kak-dobavit-av…]
Добрый день.
Делал по этой инструкции.
Заместил объект Call -> Событие: После добавления записи(CallInserted) -> Начальные сообщение(Сообщение: CallInserted). Добавил скриншоты.
Делаю звонок с cті панели звонок в раздел Звонки попадает, но процесс не запускается и его в журнале нет.
Не могу понять что я сделал не так.

В свойствах бизнес-процесса указан тег 'Business Process'?

"Татаринов Андрей Алексеевич" написал:В свойствах бизнес-процесса указан тег 'Business Process'?

Нет такого пункта.
При создании простого бизнес-процесса тег есть. Скрин прилагаю.
P.S. в свойствах выбрал показывать все.

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

Достаточно создать процесс со стартовым сигналом, как например во вложении. Процесс стартует, проверено на 7.5.

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