Доброго дня!

 

Мне нужна помощь, можете пошагово и подробно объяснить, как правильно переопределить метод? Я уже несколько часов пытаюсь это сделать и ничего не выходит. Заранее благодарен. 

Нравится

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

Добрый день!

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

 

public override void UpdateLeadName()
{
	//тут могла быть Ваша реклама
	base.UpdateLeadName();
}

 

Добрый день!

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

 

public override void UpdateLeadName()
{
	//тут могла быть Ваша реклама
	base.UpdateLeadName();
}

 

Для примера, в пакете  CoreLead так переопределяют соседнюю функцию LeadInserted из базового пакета Lead.

Тут базовая пустая:

public virtual void LeadInserted() {
}

Тут переопределили:

public override void LeadInserted() {
	base.LeadInserted();
	if (CanStartQualificationProcess()) {
		StartQualificationProcess();
	}
}

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

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

Добрый день!



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

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



В итоге привязка первой продажи к лиду пропадает.

Ваше мнение, как корректнее было бы управлять такими ситуациями?

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

Нравится

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

Я бы предложила при возврате лида - оставить его для истории. А для работы создать новый лид . Ведь если лид не закончился продажей - значит необходимо поменять условия и тактику. Это уже можно назвать новым лидом. Возможно создать "Родительский лид" и связать его со всеми дочерними.

Так можно решить проблему и цитата: "...И в рамках одной потребности можем получать лиды на 10 вебинаров, 5 white page и по другим каналам  Причём, от разных контактов..." Привяжите их к "родителю". для "родительского лида" создайте отчетные поля.

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

О лидах и продажах описано тут.

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

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

Эту логику мы читали. Просто, и так слишком много лидов генерируется, пока один клиент с одной потребностью разбирается  А тут ещё один лид без сохранения истории создадим. 

Можно настроить в разделе фильтрацию, чтобы не видеть не интересующие лиды.

У меня больше идеологические расхождения. 

Что мы взращиваем - потребность (может быть много разных лидов) или конкретную заявку (лид в системе) 

И в рамках одной потребности можем получать лиды на 10 вебинаров, 5 white page и по другим каналам  Причём, от разных контактов.

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

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

Я бы предложила при возврате лида - оставить его для истории. А для работы создать новый лид . Ведь если лид не закончился продажей - значит необходимо поменять условия и тактику. Это уже можно назвать новым лидом. Возможно создать "Родительский лид" и связать его со всеми дочерними.

Так можно решить проблему и цитата: "...И в рамках одной потребности можем получать лиды на 10 вебинаров, 5 white page и по другим каналам  Причём, от разных контактов..." Привяжите их к "родителю". для "родительского лида" создайте отчетные поля.

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

Добрый день.
Необходимо сделать блок ProfileContainer для вывода информации из пользовательского справочника.
Делал по инструкции из поста
В качестве MasterColumn для фильтрации данных ProfileContainer используется поле CityId карточки Лида. Внешним ключом в справочнике выступает поле UsrCityId.
При инициализации ProfileContainer`а происходит ошибка при получении entityStructure моего справочника в методе initTypeColumnName (моего справочника нет вообще в перечне сущностей Terrasoft.configuration.EntityStructure).
Вопросы:
1. Как добавить пользовательский справочник в Terrasoft.configuration.EntityStructure?
2. Как более правильно реализовать описанную выше задачу, при условии, что фильтрация в ProfileContainer будет производиться не по полю Id, а по справочному полю UsrCityId c префиксом Usr?

Нравится

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

Здравствуйте, Игорь.

1) Проверьте, корректно ли был создан справочник. Так же проверьте описан ли данный справочник в define модуля.

2) Вам следует воспользоваться свойством profileColumnName. viewModelConfig должен выглядеть примерно следующим образом:

"viewModelConfig": {
masterColumnName: "City",
"profileColumnName": "UsrCity"
}

Здравствуйте, Илья! Спасибо за ответ.
1. Справочник наследуется от базового объекта. Название схемы справочника добавлено в define (как в вашем примере).
2. В модуле карточки Лида уже использую profileColumnName

  modules: /**SCHEMA_MODULES*/ {
            "InterventionCostProfile": {
                "config": {
                    "schemaName": "CostProfileSchema",
                    "isSchemaConfigInitialized": true,
                    "useHistoryState": false,
                    "parameters": {
                        "viewModelConfig": {
                            "masterColumnName": "City",
                            "profileColumnName": "UsrCity"
                        }
                    }
                }
            }
        },
        /**SCHEMA_MODULES*/

Но, к сожалению, в методе initTypeColumnName в переменную entityStructure приходит Undefine вместо структуры схемы.
Может что-то упустил.

Здравствуйте, Игорь.

1) Попробуйте выполнить компиляцию конфигурации, а также пере генерировать исходные коды.
2) Так же рекомендую Вам смотреть в сторону создания своего модуля по аналогии с BaseProfileSchema, поскольку данная схема не предназначена для фильтрации по пользовательским колонкам.

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

Доброго времени суток!
Переходим на bpm с другой crm.
В старой был стандартный функционал по приему лидов с форм на сайтах.
Если что то подобное в bpm?
Если нету, то можно ли создать REST сервис на который будут приходить данные с сайтов?
Буду рад если кто поделится ссылочкой на доки где это описано.

Нравится

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

Добрый день!
Данный функционал присутсвует в версии 7.6 в виде лендинга в продукте Bpm'online Marketing.
Более детально о его реализации Вы можете почитать в документации по ссылке(со страницы 167):
http://academy.terrasoft.ru/documents/docs/product/bpm'online%20marketi…

Такая функциональность есть в bpm'online sales.

У нас bpm’online real estate
Как можно это добавить?

Виктор, уточните, пожалуйста, версию продукта.

Версия 7.6.0.1693

Виктор, для продуктовой линейки 7.6 данный функционал реализован только в продукте Marketing.

Я так понимаю подключить его отдельно нельзя?

Да, все верно. Это один из объектов конкретного продукта.

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