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

Добавление нового действия на визите в полевых продажах

Glossary Item Box

ВАЖНО

Функциональность, описанная в этой статье, доступна для  для версии bpm'online 7.11.2 и выше, а также для всех версий мобильного приложения.

Общие сведения

Действие на странице просмотра активности представляет собой переключатель, который имеет два состояния: 

  • выполнено — переключатель включен;
  • не выполнено — переключатель выключен.

Если необходимо изменить поведение существующего действия или добавить новое, то нужно зарегистрировать класс-обработчик этого действия с методами execute() и cancel(). Класс-обработчик привязывается к коду действия (FieldForceActionType.Code). По умолчанию для действий используется базовый класс-обработчик Terrasoft.configuration.BaseVisitAction

Класс Terrasoft.configuration.BaseVisitAction

В классе Terrasoft.configuration.BaseVisitAction предусмотрены два основных метода — execute() и cancel().

Метод execute()

Метод вызывается при включении переключателя. Сохраняет запись действия визита (VisitActions) со следующими значениями колонок:

IsComplete — true;

CompleteTime — текущее время.

Метод cancel()

Метод вызывается при включении переключателя. Сохраняет запись действия визита (VisitActions) со следующими значениями колонок:

IsComplete — false;

CompleteTime — null.

Классы-обработчики существующих действий

Классы-обработчики существующих действий, используемые в зависимости от кода действия (FieldForceActionType.Code), перечислены в таблице 1.

Табл. 1. — Классы-обработчики действий

Код действия FieldForceActionType.Code Название класса
CheckIn Terrasoft.configuration.CheckInVisitAction
CheckOut Terrasoft.configuration.CheckOutVisitAction
ShowPresentation Terrasoft.configuration.PresentationVisitAction
AcceptanceOrder Terrasoft.configuration.AcceptanceOrderVisitAction
SKUMonitoring Terrasoft.configuration.SKUMonitoringVisitAction

Пример добавления пользовательского действия 

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

1. Создать класс-обработчик, в котором нужно расширить базовый метод execute(), вызываемый при выполнении действия. Пример исходного кода класса приведен ниже:

Ext.define("Terrasoft.configuration.OpenMyStandardDetailVisitAction", {
  extend: "Terrasoft.configuration.BaseVisitAction",
   execute: function() {
     Terrasoft.util.openStandardDetail({
        parentRecord: this.getActivityRecord(),
        detailModelName: "MyStandardDetail"
     });
     this.completeWithSuccess();
  }
});

Метод completeWithSuccess() сохраняет запись действия визита (VisitActions) с заполненными колонками (IsComplete — true и CompleteTime — текущее время). Затем вызывается success-функция, подтверждающая успешное завершение действия.

2. Привязать класс обработчик к коду действия. Пример исходного кода привязки обработчика к коду действия приведен ниже:

Terrasoft.configuration.VisitActionsManager.add("OpenMyStandardDetailActionCode",
  "Terrasoft.configuration.OpenMyStandardDetailVisitAction");

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

Terrasoft.configuration.VisitActionsManager.add("OpenMyStandardDetailActionCode2",
  "Terrasoft.configuration.OpenMyStandardDetailVisitAction");

Расширение базовой логики выполнения действия

Базовая логика выполнения действий реализована в классе Terrasoft.configuration.BaseVisitAction. Если возникает требование, что для всех пользовательских действий нужно выполнить общий код, то не обязательно для каждого действия регистрировать класс-обработчик. Можно установить класс действия по умолчанию, например:

Ext.define("Terrasoft.configuration.MyBaseVisitAction", {
  extend: "Terrasoft.configuration.BaseVisitAction",

   execute: function() {
     this.callParent(arguments);
     //Реализация общей пользовательской логики.
     //...
  }

});

Terrasoft.configuration.VisitActionsManager.setDefaultItemClassName
("Terrasoft.configuration.MyBaseVisitAction");

  

 

 

 

© Terrasoft 2002-2018.

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

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