Справка по системе Платформа ELMA BPM
×
Меню

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

Очень часто в процессах возникает задача вычисления даты с учетом рабочего календаря. Для того, чтобы аналитики могли реализовывать такую логику вычисления в модели бизнес-процесса без помощи программиста, создадим пользовательское расширение "Добавить N рабочих дней" на вкладке Сценарии Дизайнера ELMA в блоке Пользовательские расширения (рис. 1).
Рис. 1. Карточка пользовательского расширения. Вкладка "Настройки отображения"
На вкладке Параметры необходимо задать 2 входных свойства (Начальная дата, тип Дата/Время; Интервал в днях, тип Целое число) и 1 выходное свойство (Расчетная дата, тип Дата/Время).
Рис. 2. Карточка пользовательского расширения. Вкладка "Параметры"
На вкладке Сценарий добавим расчет даты с учетом рабочего календаря:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Parameters = EleWise.ELMA.Workflow.Models.Parameters.CA_DobavitjNRabochihDney;
using EleWise.ELMA.Scheduling;
using EleWise.ELMA.Services;
 
namespace EleWise.ELMA.Model.Scripts
{
   
    ///
    /// Модуль сценариев пользовательского расширения "Добавить N рабочих дней"
    ///
    //Внимание! Для корректной работы программы не изменяйте название класса
    public class CA_DobavitjNRabochihDney_Scripts
    {
 
        //Внимание! В классе должен быть метод Execute с данной сигнатурой
        public void Execute(Parameters parameters)
        {
var calendar = Locator.GetServiceNotNull<IProductionCalendarService>();
parameters.RaschetnayaData = calendar.EvalTargetTime(parameters.NachaljnayaData.Value,
                                            TimeSpan.FromDays((double)parameters.IntervalVDnyah));
        }
 
    }
 
}
Рис. 3. Карточка пользовательского расширения. Вкладка "Сценарий"
Пользовательское расширение готово, опубликуем его и убедимся, что оно теперь доступно в блоке Plug-ins боковой панели инструментов карточки процесса (рис. 4).
Рис. 4. Пользовательское расширение "Добавить N рабочих дней" в блоке "Plug-ins" на графической модели процесса
Пользовательское расширение добавляется на графическую модель процесса с боковой панели инструментов. Рассмотрим простой процесс выставления счета для оплаты товара (рис. 5).
Рис. 5. Карта процесса "Выставить счет"
Менеджер по продажам выставляет счет, указывая его номер, дату и контрагента. После выставления счета бухгалтер должен подтвердить поступление оплаты по счету. Счет действителен в течении 3-х рабочих дней. Если счет не был оплачен своевременно, менеджер по продажам должен выставить счет повторно.
Далее приведены настройки формы задачи "Выставить счет клиенту" (рис. 6), входные/выходные атрибуты расширения "Добавить N рабочих дней" (рис .7) и настройки эскалации по таймеру из операции "Подтвердить оплату по счету" (рис. 8).
Рис. 6. Настройки формы задачи "Выставить счет клиенту"
Рис. 7. Входные/выходные атрибуты расширения "Добавить N рабочих дней"
Рис. 8. Настройки эскалации из операции "Подтвердить оплату по счету"

См. также: