Расчет значения "Средняя длительностью сделок за период", построение графика "Распределение сделок по длительности"
Здравствуйте.
Как решить следующий бизнес-кейс?
Клиент понял, что необходимо работать над улучшением показателя "Длительность сделки".
Первым шагом является построение системы, которая позволит видеть значение средней длительности сделок за период и производить drill down до конкретного списка(представления).
Цель: вывести показатель "Средняя длительность сделок за период", Построить график "Распределение сделок по длительности".
Предлагаемое решение: в карточке "Продажа" есть показатель "Дней в воронке". Необходимо как-то выделить его в отдельные записи, выбрав по периоду.
И вывести среднеарифметическое за период.
Плюс построить график с распределением.
Нравится
Здравствуйте!
Показатель "Дней в воронке" считается "на лету" при открытии страницы редактирования "Продажи". Код, который отвечает за отображение дней в воронке:
updateDaysInFunnelValue: function(dueDate) { dueDate = dueDate || new Date(); var createdOnValue = this.get("CreatedOn") || new Date(); var dateNow = Terrasoft.clearTime(dueDate); createdOnValue = Terrasoft.clearTime(createdOnValue); var days = Terrasoft.dateDiffDays(createdOnValue, dateNow); days = Terrasoft.getFormattedNumberValue(days, {type: Terrasoft.DataValueType.INTEGER}); this.set("DaysInFunnel", days > 0 ? days : "0"); },
В базовой версии, работая с объектом "Продажа" отобразить нужную аналитику не получится.
Что нужно сделать:
1) Создать объект VwOpportunityAnalitic, унаследовавшись от базового объекта и указав в свойствах объекта "Представление".
2) В объект добавить поля:
- Дней в воронке - тип "Целое число" (DueDate)
- Дата закрытия - тип "Дата/время" (DaysInFunnel)
3) Опубликовать объект
4) Создать представление в БД скриптом:create VwOpportunityAnalitic as (select Id, createdOn, DueDate, max(DueDate-createdOn, 0)) as DaysInFunnel
В результате аналитику нужно будет строить по объекту VwOpportunityAnalitic, который будет содержать в себе все значения.
Ограничить период вы сможете фильтрами, например:
Дата создания >= [#Начало периода#] И Дата создания <= [#Завершение периода#]
ИЛИ
Дата завершения>= [#Начало периода#] И Дата завершения <= [#Завершение периода#]
- Дата закрытия - тип "Дата/время" (DaysInFunnel)
Спасибо, будем пробовать.
"Демьяник Алексей" написал:Здравствуйте!
Показатель "Дней в воронке" считается "на лету" при открытии страницы редактирования "Продажи". Код, который отвечает за отображение дней в воронке:
updateDaysInFunnelValue: function(dueDate) {
dueDate = dueDate || new Date();
var createdOnValue = this.get("CreatedOn") || new Date();
var dateNow = Terrasoft.clearTime(dueDate);
createdOnValue = Terrasoft.clearTime(createdOnValue);
var days = Terrasoft.dateDiffDays(createdOnValue, dateNow);
days = Terrasoft.getFormattedNumberValue(days,
{type: Terrasoft.DataValueType.INTEGER});
this.set("DaysInFunnel", days > 0 ? days : "0");
},
В базовой версии, работая с объектом "Продажа" отобразить нужную аналитику не получится.Что нужно сделать:
1) Создать объект VwOpportunityAnalitic, унаследовавшись от базового объекта и указав в свойствах объекта "Представление".
2) В объект добавить поля:
- Дней в воронке - тип "Целое число" (DueDate)
- Дата закрытия - тип "Дата/время" (DaysInFunnel)
3) Опубликовать объект
4) Создать представление в БД скриптом:
CREATE VwOpportunityAnalitic
AS
(SELECT Id, createdOn, DueDate, max(DueDate-createdOn, 0)) AS DaysInFunnelВ результате аналитику нужно будет строить по объекту VwOpportunityAnalitic, который будет содержать в себе все значения.
Ограничить период вы сможете фильтрами, например:
Дата создания >= [#Начало периода#] И Дата создания <= [#Завершение периода#]
ИЛИ
Дата завершения>= [#Начало периода#] И Дата завершения <= [#Завершение периода#]