Вопрос

Добрый день!

Можно ли сделать автоматические создание скриншота дашборда раздела Итоги в конце рабочего дня?

У меня такой же вопрос

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

Здравствуйте, Александр!

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

Мы передали Вашу идею аналитикам продукта, они рассмотрят возможность реализации данной функциональности в последующих релизах продукта.

Приветствую Александр.

у меня данная задача уже решалась в рамках одного из проектов. Постучитесь ко мне с напоминанием после 01 февраля я с вами поделюсь примером реализации. Только реализовывалось у меня в рамках конфигурации BPMOnline Sales Enterprise. Но поидее функционал Дашбоардов стандартный, должно заработать и на других конфигурациях.

Власов Михаил Викторович, добрый день!

Спасибо за предложение! Обязательно напишем. 

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

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

Одобрена
2 комментария

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

Мы передали Вашу идею аналитикам продукта, они рассмотрят возможность ее реализации в последующих релизах приложения.

Спасибо, что помогаете улучшать наши продукты!

Владимир, спасибо за проявленный интерес. Зарегистрировали ваше пожелание по развитию приложения.

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

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

У меня такой же вопрос

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

Здравствуйте, Олег!

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

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

Войдите или зарегистрируйтесь, чтобы комментировать

Добрый день, Коллеги!
Возникла потребность в настройке итога для обращений (тип показатель) для вычисления "средней скорости закрытия обращения".

Необходимо для объекта "Жизненный цикл обращения" по колонке "Продолжительность часов" высчитать среднее значение времени, а именно "как быстро обращение перешло из состояния Новое на одну из завершающих стадий (включая время нахождения на промежуточных этапах по отдельности) Закрыто или Отменено".

Вопрос в следующем:
Возможно ли настроить фильтрацию таким образом, что бы захватывать общую, среднюю продолжительность времени для всех обращений, по всем состояниям кроме "Закрыт" (т.к. в базе в колонке EndDate всегда будет NULL для стадии закрыт)?

Аналогичная вопрос о настройке фильтрации возникает с записями в объекте CaseLifecycle для случая, когда Новое обращение было взято "В работу", а затем "Отменено", так как в базе будет существовать три записи, но для конечной стадии Отменено EndDate = NULL.

Как именно в таком случае будет вычисляться среднее значение по нескольким записям CaseLifecycle и Case, если EndDate = NULL? Будет ли прибавляться просто 0 часов и учитываться в количестве записей жизненного цикла при расчёте среднего?

Возможно кто-то уже сталкивался с подобной задачей.
На скриншоте приведена попытка настройки итога.
Заранее спасибо!

У меня такой же вопрос

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

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

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

Построенная аналитика не совсем корректна - она отображает среднее время нахождения обращения на какой-то из стадий (то есть, отображается среднее значение, но не требуемое).

Для решения необходимо создать промежуточное представление, в котором будет храниться требуемая информация. Для этого:
1) Перейдите в конфигурацию
2) Создайте объект (назовем его UsrMyVwObject с заголовком "Объект для моей аналитики"), унаследовавшись от базового, добавьте два поля:

  1. Обращение (справочное с ссылкой на объект "Обращение") - с названием Case
  2. Суммарное время обработки (целое число) - с названием TotalSolution

В свойствах объекта укажите признак "Представление в БД"
3) Опубликуйте объект
4) Создайте представление в БД запросом:

create view UsrMyVwObject
as
select NEWID() "Id", c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id "CaseId", sum(StateDurationInMinutes) "TotalSolution"
from "Case" c
join CaseLifecycle
on CaseLifecycle.CaseId = c.Id
group by Id, c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id

5) Стройте аналитику по созданному объекту - необходимо посчитать среднее значение по полю TotalSolution.
В фильтре аналитики необходимо указать условие, что учитываются только обращения в конечном состоянии, так как незавершенные обращения не должны влиять на построение статистики.

P.S. SQL запрос не проверял - рекомендую самостоятельно проработать его.

Алексей, ещё раз добрый день!
Спасибо огромное за комментарий, попробовали реализовать.
Создали объект UsrAverageCloseSpeed
И две колонки
UsrTotalSolution - дробное число
UsrCase - справочное поле с ссылкой на обращение.
Возникли трудности именно с созданием представления в БД. Попробовали доработать согласно вашим рекомендациям SQL мкрипт, но проверка заканчивается с ошибкой Ambiguous column name "Id"

CREATE VIEW UsrAverageCloseSpeed
AS
SELECT NEWID() Id, c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id, sum(clc.StateDurationInMinutes)
FROM [ofd_dev].[dbo].[Case] c
JOIN [ofd_dev].[dbo].[CaseLifecycle] clc
ON clc.CaseId = c.Id
GROUP BY Id, c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id

Просим помочь разобраться или детальнее объяснить структуру SQL создания представления БД.
Заранее спасибо!

UPDATE
Перечитал я что написал с вечера, немного исправлю(кстати, первые два пункта были в изначальном запросе).
1) как правильно указал коллега ниже, нельзя создать 2 колонки с Id, c.Id AS CaseId вполне сработает.
2) нельзя также оставить последнюю колонку без имени, так как это view, нужно сделать примерно так:
SUM(clc.StateDurationInMinutes) AS TotalSolution
3) GROUP BY Id сделать точно не получится, так как GROUP BY еще об этом алиасе ничего не знает, фактически, еще даже newid() в этот момент не отработала, его нужно просто убрать.
Итого:

CREATE VIEW UsrAverageCloseSpeed
AS
SELECT NEWID() AS Id, c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id AS CaseId, SUM(clc.StateDurationInMinutes) AS TotalSolution
FROM [Case] c
JOIN CaseLifecycle clc
ON clc.CaseId = c.Id
GROUP BY c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id

Вот такой запрос на моей базе успешно отработал.
P.S. Рекомендую Case взять в квадратны скобки, так это еще и зарезервированное слово в SQL.

"Титаев Александр Николаевич" написал:Просим помочь разобраться или детальнее объяснить структуру SQL создания представления БД.
Заранее спасибо!

Ну логично, вы пытаетесь создать вью с двумя одноименными колонками, что ваша первая Id что c.Id в результирующем запросе будут называтся Id. Так нельзя. Можно вроде этого:

CREATE VIEW UsrAverageCloseSpeed
AS
SELECT NEWID() Id, c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id as UsrCaseId, sum(clc.StateDurationInMinutes)
FROM [ofd_dev].[dbo].[Case] c
JOIN [ofd_dev].[dbo].[CaseLifecycle] clc
ON clc.CaseId = c.Id
GROUP BY Id, c.CreatedOn, c.CreatedById, c.ModifiedOn, c.ModifiedById, c.Id

Ну и в объекте который вы будете поверх вью в бпм, последнюю колонку так же нужно будет назвать UsrCaseId, ну или как вы захотите, но отлично от Id

upd, так же упустил пункты 2.3. описанные выше Ильей, почитайте их ;)

Коллеги, спасибо большое за оказанную помощь!
Разобрались и дополнили)

Войдите или зарегистрируйтесь, чтобы комментировать

Нужно построить сложные итоги в BPM Online?
1. Показатель который имеет следующую формулу: кол-во активностей / кол-во контактов за месяц
2. Горизонтальная гистограмма которая формируется из 4 значений которые вычисляются как п.1
Можете подсказать в каком направлении копать? Я уверен что кто то уже делал нечто подобное.

У меня такой же вопрос

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

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

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

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

Или попробовать (пример):

Для решения необходимо использовать обходное решение.
Что можно сделать:
1) Создать объект в bpm'online, унаследовавшись от базового. Обязательное условие - в свойствах объекта указано свойство "Представление в БД". В объект необходимо добавить поле UsrResult с типом дробное число. Предположим объект был назван UsrNewVw.
Объект необходимо опубликовать.

2) После публикации объекта необходимо создать представление в БД. Для этого нужно выполнить скрипт:
CREATE VIEW UsrNewVw
AS (SELECT [Реализация подсчета %] AS UsrResult FROM [Case] WHERE [Опциональное условие])

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

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

Коллеги, как реализовать виджет, отображающий процентное отношение , например процент просроченных обращений в службу Service Desk. В версии 7.8 присутствует только виджет "Индикатор" отображающий количество на заданной шкале. Ввести формулу преобразования в настройках возможности нет и этот виджет несколько другое. Только кодить? Готовых решений нет? Функциональность постоянно востребована заказчиками. Спасибо

У меня такой же вопрос

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

Согласен, очень востребованное решение.

Согласен, очень востребованное решение.

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

Коллеги, к сожалению, в bpm'online нет возможности отобразить соотношение между двумя показателями.

Для решения необходимо использовать обходное решение.
Что можно сделать:
1) Создать объект в bpm'online, унаследовавшись от базового. Обязательное условие - в свойствах объекта указано свойство "Представление в БД". В объект необходимо добавить поле UsrResult с типом дробное число. Предположим объект был назван UsrNewVw.
Объект необходимо опубликовать.

2) После публикации объекта необходимо создать представление в БД. Для этого нужно выполнить скрипт:

create view UsrNewVw
as (select [Реализация подсчета %] as UsrResult from [Case] where [Опциональное условие])

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

"Демьяник Алексей" написал:В результате в представлении будет значение, которое необходимо отобразить на дашборде, например, используя показатель.

Единственное, что в разделе он почти потеряет свой смысл, так как не будет учитывать фильтрацию, например процент просроченных обращений в службу Service Desk от данного контрагента...

Поэтому нужен универсальный виджет

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

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

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

есть сервис selectquery, в нем несколько запросов обедненных UNION ALL, в каждом запросе есть обычные поля и поля итогов(например в одном ) итогома сумма и количество продуктов детали продукты в счете за текущий месяц а в другом тот же запрос только для раздела склада.
Оно выводит сначала список продуктов которые нужно для счета а потом для склада, вот сокращенный код:

SELECT
        [OfferingID],
        ([SoldCount]),
        (a),
        [Name]
FROM
        (SELECT
        [tbl_OfferingInInvoice].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInInvoice].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInInvoice].[BasicAmount]) AS a,
        [tbl_Offering].[Name] AS [Name]
----
UNION ALL
SELECT
        [tbl_OfferingInMovement].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInMovement].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInMovement].[BasicAmount]) AS а,
        [tbl_Offering].[Name] AS [Name]
------) AS [U]
        GROUP BY
        u.[OfferingID],
        u.[Name]

для решение проблемы нужно писать так:
SELECT
        [OfferingID],
        count([SoldCount]),
        Sum(a),
        [Name]
FROM
        (SELECT
        [tbl_OfferingInInvoice].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInInvoice].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInInvoice].[BasicAmount]) AS a,
        [tbl_Offering].[Name] AS [Name]
----
UNION ALL
SELECT
        [tbl_OfferingInMovement].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInMovement].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInMovement].[BasicAmount]) AS а,
        [tbl_Offering].[Name] AS [Name]
------) AS [U]
        GROUP BY
        u.[OfferingID],
        u.[Name]

Но добавить итоги не получается(((. Это можно решить?

У меня такой же вопрос

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

К сожалению не понятен Ваш вопрос, можете конкретизировать его.
А также выполните sql запрос на БД, для получения результата.

Рекомендую ознакомится со статьей Использование хранимых функций в запросе

"Терещук Павел" написал:К сожалению не понятен Ваш вопрос, можете конкретизировать его.

Нужно превратить это

SELECT
        [OfferingID],
        ([SoldCount]),
        (a),
        [Name]
FROM
        (SELECT
.....

в это

SELECT
        [OfferingID],
        count([SoldCount]),
        Sum(a),
        [Name]
FROM
        (
....

"Терещук Павел" написал:А также выполните sql запрос на БД, для получения результата.

запрос в бд нормально отрабатывает, не могу задать правильные параметры в сервис.
Хранимая функция не подойдет, сейчас таких запросов 2 но в будущем будет 4

Создаете запрос, в свойстве колонки Summary Type (Итог) выберите необходимую агрегирующую функцию:

"Терещук Павел" написал:Создаете запрос, в свойстве колонки Summary Type (Итог) выберите необходимую агрегирующую функцию:

так и зделано, только в сервисе несколько селектов, в каждом проставлены итоги на поля, но в общем запросе, который ТС сам формирует - итоги не проставляются и программно тож не ставится. Пришлось сделать SQL запрос и копи пастом создать 8 полей.

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

Я динамически добавляю/удаляю вкладки на итогах (напрямую в базе), но чтоб только что примененные изменения отобразились необходимо обновить страницу, т.к. итоги должны быть зарегистрированы в Terrasoft.DashboardManager. Подскажите, есть ли способ обновлять структуру итогов программно, не обновляя страницу?

У меня такой же вопрос

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

Все оказалось очень сложно. Необходимо опубликовать сообщение с не очевидным названием ReloadDashboard.

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

Подскажите, пожалуйста, возможно ли отключить гиперссылки в итогах?

У меня такой же вопрос

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

Олег, уточните, о каких именно ссылках идет речь?

Речь идет о ссылках ведущих в записи других разделов

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

Вам необходимо заместить соответствующий модуль. Для списка это DashboardGridModule.

Спасибо, еще небольшое уточнение - если для графика нажать показать данные - оттуда тоже можно перейти в другие разделы, за это тоже отвечает DashboardGridModule?

"Сафонов Олег" написал:

Спасибо, еще небольшое уточнение - если для графика нажать показать данные - оттуда тоже можно перейти в другие разделы, за это тоже отвечает DashboardGridModule?

Не совсем. У каждого типа итогов свой модуль.

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

Подскажите, каким образом можно скопировать (создать по аналогии) раздел "Итоги"?

У меня такой же вопрос

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

Олег, уточните, какую бизнес задачу Вы хотите решить данным способом?

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

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

"Сафонов Олег" написал:создавать раздел, а потом удалять/скрывать стандартное представление

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

Этот раздел нестандартен, и не имеет такой гибкости в конфигурировании, как остальные разделы системы. bpm'online c несколькими разделами итогов еще не встречал.

Войдите или зарегистрируйтесь, чтобы комментировать