разработка лиды
лиды
поиск
фильтр
7.12
sales_team

Добрый день!

 

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

Задача состоит в том чтобы после регистрации Лида система сама отфильтровала необходимых инвесторов из раздела контрагента и предоставила выбор для предложения  им инветспроекта.

Напр.  Зарегистрирован Лид, где необходимо найти инвестора для инвестиции в сельское хозяйства.  Система должна найти необходимого инвестора из списка и предоставить для пользователя для дальнейшей обработки.

Я добавил вклаку в лидах, и в этой вкладке добавил 5-6 полей выбора инвесторов (контрагентов). Необходимо сделать так чтобы в момент выбора контрагента система отфильтровала необходимы лиду контрагента.

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

Нравится

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

Видимо, нужно разрабатывать что-то подобное механизму подбора продуктов в заказе. Или, ещё боле похоже по смыслу, подбор листингов по лиду в bpm’online real estate (см. стр. 27). И то, и другое — сложная логика, нужно разбираться, как она реализована.

Показать все комментарии
error
деталь с редактируемым реестром
7.11
sales_team

Версия 7.11.3. Sales Team

Кейс для воспроизведения:

1. в детали с редактируемым реестром открыть существующую запись на редактирование (действия детали - Изменить)

2. Закрыть карточку записи.

При этом в консоли отобразится ошибка "Элемент с ключом [object Object] Не существует "



Анализ ошибки  показал, что в базовой схеме BaseGridDetailV2 (метод getActiveRow в строка primaryColumnValue = this.get("ActiveRow")) в атрибуте ActiveRow содержится объект а не строка с идентификатором, т.о. данный метод отрабатывает с ошибкой при попытке определить выделенную строку в редактируемом реестре. 

Также выявлено, что объект присваивается атрибуту ActiveRow в методе restoreActiveRow (схема BaseGridDetailV2 ).

Когда будет исправлена эта ошибка?

Нравится

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

Игорь, добрый день!

Проверили описанное Вами поведение на базовых деталях с редактируемым реестром - ошибка не воспроизводится. 

Если у Вас есть точный кейс воспроизведения ошибки на чистой сборке, пожалуйста, опишите его нам, мы обязательно возьмем его в работу. Также мы можем рассмотреть данную ошибку на кастомной детали (для этого напишите нам на support@terrasoft.ru), но только при наличии оплаченного "Бизнес" или "Премиум" пакета поддержки, а также сертификата по разработке на платформе bpm’online уровня "Продвинутый".

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

Добрый день!

Являюсь новичком. Поэтому прошу Вас помочь для устранения данной ошибки.

Установил и настроил все как скзано руководстве.

1. Добавил все роли и компоненты

2. Добавил вед сайт.

3. Для вебсайта добавил приложение .

 

После запуска выводит сл. ошибку.

Object reference not set to an instance of an object. 
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 
 
 Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
 
Source Error: 
 
 
 An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  
 
Stack Trace: 
 
 
 
[NullReferenceException: Object reference not set to an instance of an object.]
   Terrasoft.Core.UserConnection.InitializeDBExecutor(AppConfigurationSectionGroup appSettings) +148
   Terrasoft.Core.UserConnection.Initialize(AppConfigurationSectionGroup appSettings) +134
   Terrasoft.Core.AppConnection.InitializeSystemUserConnection(ConfigurationSection schemaManagerProviderConfigurationSection) +114
   Terrasoft.Core.AppConnection.Initialize(ConfigurationSectionGroup appConfigurationSectionGroup) +557
   Terrasoft.WebApp.Global.InitializeAppConnection() +472
   Terrasoft.WebApp.Global.Application_Start(Object sender, EventArgs e) +258
 
[HttpException (0x80004005): Object reference not set to an instance of an object.]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +520
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +176
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +165
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +353
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +341
 
[HttpException (0x80004005): Object reference not set to an instance of an object.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +523
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +107
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +688
 
 
 
 
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3062.0 

Прошу помочь с решение данной задачи.

Нравится

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

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

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

Удалось определить и решить проблему?

Кажется, там действительно не хватало ролей компонентов на веб-сервере. Это настраивается в IIS.

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

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

Коллеги, подскажите есть ли возможность получить выделенную системную учетную запись для работы с CRM (OnDemand) через REST API. Не распределяя отдельную лицензию для этой УЗ как для обычного пользователя.

Нравится

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

Добрый день! Возможно ли в BPM'Online Team (OnDemand) реализовать публичный веб-сервис доступный из Интернет без авторизации, который будет принимать и обрабатывать WebHook запросы?

Нравится

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

Такой же вопрос обсуждался тут. Там есть готовый пример настройки сайта для работы такого сервиса. Но, поскольку в нём меняют config-файлы на сайте, для on demand без обращений в поддержку не обойтись.

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

Добрый день!

Подскажите, как сделать вычисляемое поле в редактируемом реестре по аналогии данным руководством: https://academy.terrasoft.ru/documents/technic-sdk/7-12/dobavlenie-vych…

Нравится

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

На странице детали MyDetailPage, добавляете:

attributes: {
			"OpTotalPrice": {
				dependencies: [
					{
						"columns": ["OpCoefficient"],
						"methodName": "calcTotal"
					}
				]
			}
		},
 
 
 
Затем в методы добавляете кастомный метод, в данном случае calcTotal
 
calcTotal: function() {
	var price = this.get("OpPrice");
	var coef = this.get("OpCoefficient");
	var period = this.get("OpPeriod");
	var count = this.get("OpCount");
	this.set("OpTotalPrice", price * coef * period * count);
}

Таким образом, после изменения колонки OpCoeefficient, пересчитается поле OpTotalPrice.

Это то, что вам нужно было?

Добрый день!

Литвинко Павел дал хороший ответ.

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

Подробнее почитать про то, каким образом добавляется пересчет можно в академии по ссылке: https://academy.terrasoft.ua/documents/technic-sdk/7-12/atributy-svoystvo-attributes в разделе "Дополнительные свойства атрибутов"

Литвинко Павел,

Золотарев Артем Андреевич,

Добрый день!

Спасибо за советы!

Все получилось! 

 

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

Добрый день!

Есть варианты, как подставить в деталь значение справочного поля в зависимости от другого справочного поля?

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

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

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

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

 

Нравится

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

Поскольку поле «Проект» в продаже может быть заполнено как пользовательскими средствами, так и, в теории, программно или по интеграции, то нужно реализовать серверную логику, которая при сохранении на объекте «Продажа» модифицирует все привязанные к ней продукты, если в них указан неверный проект.

Это может быть отдельный бизнес-процесс, стартующий по сигналу измнения продажи, встроенный процесс на объекте «Продажа» или даже триггер на уровне SQL-сервера. Первый и последний варианты рассматриваются тут.

на коллбэке в методе onLookupResult открывать (делать переход на) карточку со скрина 3

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

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

Максим, привязываться к интерфейсу не всегда уместно, вдруг поле заполнят по OData, например.

Илья, в таком случае лучше завязать логику БП на создание нового продукта, прописывать там проект из продажи, если ещё не указан. Опять же, либо отдельным БП по сигналу, либо встроенным на объекте «Продукт», либо, в крайнем случае, триггером.

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

Александр, спасибо! Согласен, БП это будет проще всего сделать.

Добрый день.

В Вашем случае можно просто при объявлении детали на странице в атрибуте "defaultValues" указать нужное значение.

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

Вот пример:

            details: /**SCHEMA_DETAILS*/{

                "PatientCardBlock": {

                    "schemaName": "PatientCardBlockSchemaDetail",

                    "entitySchemaName": "PatientCardBlock",

                    "defaultValues": {

                        "Contact": {

                            "masterColumn": "Id"

                        },

                        "DiseaseType": {

                            "masterColumn": "Disease"

                        },

                        "TherapeuticArea": {

                            "masterColumn": "TherapeuticArea"

                        },

                        "BlockType": {

                            "value": "5b64fd0b-20af-4ce6-8c46-b39de8629f13",

                            "displayValue": "Demographics"

                        }

                    },

                    "filterMethod": "demographicsFilter"

                },

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

Алла, спасибо! То что надо)

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

Способ Аллы тут действительно будет проще и уместнее, но только если нет заливки записей в обход обычной работы в разделе.

Показать все комментарии
бизнес-процесс
#циклический вызов
7.11
sales_team

Есть 2 процесса, которые запускаются по сигналу изменения некоторого поля в 2х разных сущностях, например, Account и Contact.

В одном процессе при изменении поля A в таблице Account вызывается изменение поля Б в Contact, а в другом при изменении поля Б таблицы Contact вызывается изменение поля A в Account.

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

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

Меня интересует, какие ещё есть 'более правильные' с точки зрения производительности варианты решения такой задачи?

 

Нравится

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

Добрый день!



А можете уточнить в какой лог не попадают данные, а так же показать Ваш ScriptTask?

Евгений Манько,

Не попадают в Change log в Администрировании

В одном процессе код приблизительно такой:

var update = new Update(UserConnection, "Contact")

            .Set("TypeId", Column.Parameter(ContactType))

            .Where("Account").IsEqual(Column.Const(AccountType)).Execute();

А в другом наоборот.

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



Добрый день! 

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

Евгений,

спасибо за совет, как вариант, может быть.

Есть также мысль реализовать вызов процесса не по сигналу, а при сохранении изменений в карточке конкретного объекта.

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

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



Элемент начальный сигнал несет в себе  несколько вариантов запуска. Можно настроить его на изминение/добавление/удаление записи. С возможностью указать условия запуска по событию с опеределенным полем в карточке. При необходимости можно добавить дополнительные фильтры. Подробнее про этот эллемент можно прочитать тут.

Показать все комментарии
бизнес-процесс
права доступа
7.11
sales_team

Коллеги, здравствуйте! 

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

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

С чем это может быть связано?

Спасибо!

Нравится

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

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

Добрый день!



Скорее всего это связано с тем что у команды нету прав на чтение связанных записей. Команда без выдачи прав на работу с контрагентом может видеть эти записи? 

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

Роман Никулин,

Добрый день!



Вы проверяли права команды на эти записи? Если у них не будет прав на эти записи, то команда не увидит записи несмотря на права на контрагента. Для раздачи прав на старые связанные записи можно создать бизнес с элементом «изменить права доступа». А фильтрации можно указать например поле контрагент заполнено.

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

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

Как настроить права на удаление заявки, заведенная на портале, для которой есть Кейс раздела?

т.е. удаляются все связанные записи(активности, процессы и т.д.), но не удаляется именно этот Кейс. 

где и на что надо дать права? под. сис. админом удаляется.

Нравится

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

Для того, чтобы пользователь портала мог удалять обращения, которые были заведены через Портал Самообслуживания, нужно раздать права на удаление пользователям портала через "Права доступа на объекты" на объект Обращения.

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