Creatio development guide
Это документация Creatio версии 7.8.0. Мы рекомендуем использовать новую версию документации.

Как подключить дополнительную фильтрацию к воронке

Glossary Item Box

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

Последовательность действий для изменения расчетов в воронке:

  1. Создать унаследованный от провайдера расчетов новый класс, в котором нужно реализовать необходимую логику фильтрации.
  2. Создать замещающую клиентскую схему FunnelChartSchema и использовать в ней новый класс расчетов.

Описание кейса

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

Алгоритм реализации кейса

1. В пользовательском пакете создать новый модуль

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

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

Рис. 1. — Свойства модуля провайдера расчетов

 

 2. Определить новый класс провайдера и задать логику фильтрации

Для добавления фильтрации к расчетам в срезе “по количеству” нужно наследовать созданный класс от класса FunnelByCountDataProvider и переопределить метод getFunnelFixedFilters.

define("UsrFunnelByCountDataProvider", ["ext-base",
    "terrasoft", "UsrFunnelByCountDataProviderResources",
    "FunnelByCountDataProvider"],
    function(Ext, Terrasoft, resources) {
        // Определение нового провайдера расчетов.
        Ext.define("Terrasoft.configuration.UsrFunnelByCountDataProvider", {
            // Наследование от провайдера 'по количеству'.
            extend: "Terrasoft.FunnelByCountDataProvider",
            // Сокращенное имя нового провайдера.
            alternateClassName: "Terrasoft.UsrFunnelByCountDataProvider",
            // Расширение метода базового модуля FunnelByCountDataProvider.
            // Возвращает фильтры для выборки.
            getFunnelFixedFilters: function() {
                // Вызов родительского метода.
                var esqFiltersGroup = this.callParent(arguments);
                // Добавляет фильтр, который указывает, что в продаже клиентом указан контрагент.
                esqFiltersGroup.addItem(
                    Terrasoft.createColumnIsNotNullFilter("Account"));
                return esqFiltersGroup;
            }
        });
    });

После внесения изменений модуль необходимо сохранить.

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

Для того чтобы в расчетах использовался новый модуль провайдера, нужно создать замещающий клиентский модуль и переопределить метод формирования провайдеров расчетов воронки продаж. Для начала необходимо создать замещающий клиентский модуль и указать ему имя замещенной схемы FunnelChartSchema, а также указать ее как родительский объект. (рис. 2).

Рис. 2. — Свойства замещающего модуля

Также необходимо добавить в зависимости новый модуль для расчетов (секция Dependencies), указав его имя в поля [Зависимость] и [Название] значения UsrFunnelByCountDataProvider (рис. 4).

Рис. 3. — Свойства зависимости схемы воронки

 

4. Указать новый провайдер расчетов в замещенной схеме воронки

Для этого в замещенной схеме необходимо заменить класс провайдера расчетов на новый.

define("FunnelChartSchema", ["UsrFunnelByCountDataProvider"], function() {
    return {
        entitySchemaName: "Opportunity",
        methods: {
            getProvidersCollectionConfig: function() {
                // Вызывает родительский метод, который возвращает массив провайдеров.
                var config = this.callParent();
                // Ищет провайдер данных для среза по количеству.
                var byCount = Terrasoft.findItem(config, {tag: "byNumberConversion"});
                // Заменяет на новый класс.
                byCount.item.className = "Terrasoft.UsrFunnelByCountDataProvider";
                return config;
            }
        }
    };
});

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

 

© Terrasoft 2002-2016.

Был ли данный материал полезен?

Как можно улучшить эту статью?