Добрый день!



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



Затем был создан кастомный элемент с типом: CampaignSchemaElementType.AsyncTask.  Была построена и запущена схема кампании: Изображение удалено.

Однако, согласно дебаггеру, добавление из группы всегда происходит сразу после запуска джоба по расписанию, а затем выполняется кастомный элемент, несмотря на то, как построена схема.



В качестве решения попытались изменить тип элемента на: CampaignSchemaElementType.SyncTask , однако элемент перестал запускаться вовсе.

Соответственно есть несколько вопросов:

1) Как выполнить элемент "Добавление из группы" строго после выполнения предыдущего элемента? 

2) Как запустить элемент с типом CampaignSchemaElementType.SyncTask вместо Async

Нравится

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

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

Мотков Илья,

Решение: изменяем тип элемента AddCampaignParticipantElement на CampaignSchemaElementType.AsyncTask . Теперь выполнение элемента происходит в верной последовательности. Проверено на такой схеме. 

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

Добрый день,

при попытке зафиксировать пакет в хранилище выдаёт ошибку "При работе с хранилищем произошла ошибка" без каких-то пояснений, причем прямо на странице конфигурации, а не в отдельном окошке, после коммита. В Error.log довольно неинформативное сообщение:

Terrasoft.WebApp.BaseSvnPage LogAndShowErrorMessage - Terrasoft.Common.SourceControlOperationException: При работе с хранилищем произошла ошибка

   в Terrasoft.WebApp.BaseSvnPage.GetSourceControlSaveType(SysPackage package)

   в Terrasoft.WebApp.WorkspaceExplorerModule.b__421_0()

   в Terrasoft.WebApp.BaseSvnPage.ExecuteSvnOperation(ExecuteSvnOperationMethod svnOperationMethod)

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

Нравится

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

Попробуйте сначала обновить его, потом снова зафиксировать.

Попробуйте сначала обновить его, потом снова зафиксировать.

Была такая же проблема,она решилась повторной авторизацией в хранилище.(Авторизация -> обновление с него -> потом снова авторизация и попытка зафиксировать пакет).

Помогло, спасибо! Обновил из хранилища и после этого зафиксировалось без проблем.

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

Всем доброго времени суток. Версия 7.12.

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

Изображение удалено.

Или только через переопределение модуля LeftPanelTopMenuModule и соответствующие правки в loadMenu?

Нравится

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

Добрый день, Денис!



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

 

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

Доброго дня.

1 Есть ли возможность настроить скролл списка тегов в разделе? Необходимо вести отдельную библиотеку тегов, как своих, как и корпоративных, чтобы не перебирать в уме возможные варианты.

Изображение удалено.

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Нравится

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

Добрый день!



Посмотреть весь список тегов Вы можете создав справоник на основании объекта "Тег в записи раздела "..."", к примеру Тег в записи раздела контакты



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

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

 

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

подскажите, пожалуйста, где достать такие иконки, как у Вас в разделах "Kits", "Samples", "Shipments". Я на маркетплейсе скачал пак с иконками, но таких там не было, насколько я помню.

Как минимум, машинка такая же тут.cheeky

 

Alex Zaslavsky, на сезонах ВРМ подсказали сайт https://icons8.ru/

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

Добрый день! Подскажите, пожалуйста, а имеется ли возможность с помощью командой строки искать по другим разделам, а не по разделу «Контакты»/«Контрагенты»? Как в этот выпадающий список добавить новый раздел?

Пробовал через создание пользовательской команды - не получилось.

Нравится

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

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

В базовой версии продукта доступен функционал глобального поиска по всей системе. 

Более детально Вы можете ознакомиться с статье Академии: https://academy.terrasoft.ru/documents/studio/7-12/globalnyy-poisk

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

Если же сайт находится на Ваших серверах, в статье есть инструкция по настройке.

День добрый! Сайт развернут на серверах и глобальный поиск уже работает. Вопрос в том как поднастроить его таким образом чтобы добавить поиск еще по одному разделу: Сейчас поиск идет по Контактам и Контрагентам. Мне необходимо чтобы появилась еще строка "Найти Вакансию Тест"

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

Александр, выдача выдана просто списком с фильтром в выбранном разделе. 

Значит, глобальный не включен.

А без глобального поиска такое возможно реализовать? Просто как таковой глобальный поиск не нужен. Нужен быстрый доступ к поиску по разделу.

Как настраивать командную строку, описано здесь.

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

В таком случае воспользуйтесь советом выше и включите глобальный поиск. Или же доработайте старый механизм для поддержки нового раздела. Логика реализована в схеме CommandLineModule, см. там упоминания Contact и Account.

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

Всем доброго времени суток. Версия 7.12.

Есть бизнес-процесс, запускающийся вручную. Необходимо в процессе отловить пользователя, запустившего процесс. Подходит ли для этого переменная "Контакт текущего пользователя"/"Текущий пользователь"?

Второй случай. Бизнес-процесс запускается по сигналу от объекта (изменение какой-либо колонки). Можно ли в процессе отловить пользователя, изменившего колонку в объекте, т.е. запустившего процесс?

В более общем смысле вопрос - что есть "Контакт текущего пользователя" в бизнес-процессах? Если у нас показывается "Контакту текущего пользователя" страница редактирования какого-либо объекта, и одновременно в системе сидит несколько пользователей - она будет показана всем?

Нравится

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

1) Да

2) Тут надо тестить, но я думаю нет (если, конечно, при запуске события не прокидывается UserConnection пользователя)

В общих чертах: есть UserConnection. Подключение пользователя, которое инициируется в момент вашего логина в СРМ. Соответственно "Контакт текущего пользователя" — контакт из UserConnection.

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

А все сервисы/бп по расписанию инициируются под userconnection от Supervisor-а.

2) Если в объекте в записи менялась колонка и по изменению запустился процесс, то сразу после запуска в поле ModifiedById этой записи и будет тот, кто поменял.

Варфоломеев Данила пишет:

А все сервисы/бп по расписанию инициируются под userconnection от Supervisor-а

а как определяется пользователь Supervisor, если он в системе не активный? 

Владимир Соколов пишет:

если он в системе не активный?

 AppConnection.SystemUserConnection всегда можно вытащить

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

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

Коллеги, здравствуйте! Нужна помощь.



В bpm'sales enterprise есть функционал работы со счетами. при добавлении в счет новых продуктов, открывается отдельная страница с удобным поиском.

 

Изображение удалено.



Мы добавили кастомную сущность - Коммерческое предложение. В нем так же надо реализовать добавление товаров. Подскажите, можно ли использовать функционал реализованный в Счетах и как это сделать.



Пока реализовали через lookup-поле и выбор продукта в модальном окне. Но это не так удобно, как в случае со счетами.

Нравится

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

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

Переносили весь функционал при разработке проекта и скажем так: геморой тот ещё. Причем это было до того, как террасофт переделал этот функционал под BaseSchemaModule. Я так глянул - разницы +/- никакой, наибольшая проблема - миллиард esq запросов с кучей столбцов. На вскидку - неделька переноса и отладки. Может быть 2, как пойдёт)

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

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

Вопрос, наверно, простой - где определяется функция recalculateServiceTerms, в какой схеме?

Версия 7.12.

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

Нравится

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

Если есть доступ в базу, поискать можно запросом:

SELECT (SELECT [Name] FROM [SysSchema] WHERE [Id] = [SysSchemaId])
FROM [SysSchemaContent]
WHERE CAST([Content] AS VARCHAR(MAX)) LIKE '%recalculateServiceTerms%'

И среди трёх результатов будет искомая схема CaseServiceUtility:

/**
 * Recalculates scheduled dates by service item.
 * @protected
 */
recalculateServiceTerms: function() {
	var config = this.getIsFeatureEnabled("ServiceTerms")
			? this.getCaseTermCalculatorServiceConfig()
			: this.getCallTermCalculationServiceConfig();
	if (config) {
		if (this.getIsFeatureEnabled("ServiceTerms")){
			this.callService(config, this.onRecalculateCaseTerms, this);
		} else {
			this.callService(config, this.onRecalculateServiceTerms, this);
		}
	} else if (this.get("ResponseDate")) {
		this.set("ResponseDate", null);
		this.set("SolutionDate", null);
	}
},

 

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

Добрый день!

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

мы можем подготовить 2 файла.

1 с данными о контрагентах, другой с данными о договорах.

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

можно ли настроить импорт так, чтобы поиск справочных полей был по кастомным полям, например, по ИНН и КПП?

то есть в файл по договорам добавляем 2 столбца и при загрузке по этим двум столбцам  находится потребитель

 

Нравится

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

Насколько я знаю, то система позволит Вам обратиться к одному полю в контрагенте, чтобы определить его уникальность. Например, к полю ИНН. (но оно ведь не всегда уникально). Так что, придется по другому полю проверить уникальность или убедиться, что все ИНН уникальны. А потом, когда сопоставляю колонки договора при импорте с моим файлом excel, при выборе контрагента "проваливаюсь" в него плюсиком и ищу там ранее проимпортированное поле с кодом.

Насколько я знаю, то система позволит Вам обратиться к одному полю в контрагенте, чтобы определить его уникальность. Например, к полю ИНН. (но оно ведь не всегда уникально). Так что, придется по другому полю проверить уникальность или убедиться, что все ИНН уникальны. А потом, когда сопоставляю колонки договора при импорте с моим файлом excel, при выборе контрагента "проваливаюсь" в него плюсиком и ищу там ранее проимпортированное поле с кодом.

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

Установили BPM версии 7.12. БД Oracle. Настроили согласно инструкции. При входе под Supervisor возникает ошибка.

OS:Windows Server 2012 R2

IIS 8.5

Ошибка вовложенной файле.

Вчера был предоставлен ответ ниже

"Адасюк Валерий Викторович

11 июля 2018 12:23

В адресной строке после адреса сайта допишите 0/dev (например, если сайт localhost:82, то ссылка будет следующая localhost:82/0/dev). Это прямая ссылка в конфигурацию системы. На этой страницы в блоке действий выберите "компилировать все". После завершения компиляции очистите Redis и можете снова пробовать авторизоваться на сайте."

Попробовали, но ошибка также осталась.

Можете подсказать в связи с чем такая проблема выходить?

Заранее благодарю!

 

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

Нравится

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

А где вложенный файл ? невижу !

Асылан, 

Похоже что проблема с web-socket'ами.

Тут инструкция, проверьте настройки: https://academy.terrasoft.ru/documents/studio/7-12/nastroyka-vebsoketov…

 

Tsopa,

Если посмотреть инструкцию по настройке Web.config все соответствует по указанному настройки которую вы указали. Но при проверке все ли нормально настроен система, проверил через javascript команду Terrasoft.ServerChannel.ping() , результат выдал ошибку. Ниже скриншот.  

Этот же дистрибутив, развернутый локально на ноутбуке на Windows 7 работает нормально. Возможно проблема в каких-то компонентах Windows Server 2012(хотя перепроверили раза три) или в IIS.

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

Для анализа вопроса направьте, пожалуйста, в техподдержку полные логи приложения, файлы ConnectionStrings, оба web.config'а, скриншоты установленных компонентов, настройки сайта в IIS и версии .NET Framework, Redis и Visual C++.

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

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