logo

[ELMA3] Отображение статуса БП на форме просмотра записи справочника

В данной статье рассмотрим случай, когда в веб-приложении с формы записи справочника запускается произвольный БП (в примере на Рис. 7 это может быть процесс Отказать в регистрации). При этом пользователь, запустивший данный БП, может не являться его непосредственным участником, и поэтому по умолчанию не получает никаких оповещений от системы. Необходимо произвести настройки, описанные ниже, для того, чтобы сообщения о ходе/результате запущенного БП выводились на информационную панель на форме записи справочника и пользователь таким образом получал оповещения о статусе действий по БП.

Настройка включает в себя следующие этапы:

1. Во все процессы, которые запускаются нажатием кнопки в записи справочника, потребуется добавить строковую контекстную переменную Result (Результат).

Рис. 1. Новая контекстная переменная "Результат"

2. На карте процесса необходимо добавить скрипт на всех требуемых переходах для добавления статуса.

Рис. 2. Операция "Сценарий" на карте процесса

3. Во всех скриптах различных исходов БП необходимо определить контекстную переменную следующего вида:

context.Result = "notify=Операция не может быть выполнена. Обращение принято на исполнение другим пользователем";

Примечание
Наличие «notify=» - обязательно, в то время, как остальной текст может быть произвольным и будет отображаться в информационном оповещении на форме просмотра записи справочника в веб-приложении ELMA.

Рис. 3. Определение контекстной переменной переходов скрипта

4. Затем перейдем к изменению Razor-форм. В логике процесса присутствуют две пользовательские задачи, которые формируют информационное сообщение о статусе процесса, а также возвращают пользователя на страницу записи справочника, с которой был запущен процесс. При этом данная задача не должна отображаться у пользователя в веб-приложении, поэтому переход из задачи на следующий этап процесса настроен по таймеру, а значение таймера установлено на 0 сек (Рис. 4). Таким образом необходимые действия будут выполнены без участия пользователя.

Рис. 4. Настройки таймера перехода задачи "Операция выполнена успешно"

Внесем изменения в Razor-форму в этих задачах по таймеру. На практике можно использовать единую форму для обоих переходов шлюза (Ошибка выполнения и Укажите причину), т.к. она будет идентична.

Рис. 5. Изменения Razor-формы

Внимание!
После модификации формы переопубликуйте процесс!

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

C:\ELMA3-Enterprise\Web\Modules\EleWise.ELMA.BPM.Web.Common\Views\Catalogs\ViewItem.cshtml

в файл

C:\ELMA3- Enterprise\UserConfig\WebApplication\Modules\EleWise.ELMA.BPM.Web.Common\Views\Catalogs\ViewItem.cshtml

6. Затем требуется добавить к нему следующий код после using и Header:

@{
string ID = Request.QueryString["notify"];
}

@if (!String.IsNullOrEmpty(ID)) {
    <table class="messagePanel-Information" style="width: 100%;">
        <tbody>
            <tr>
                <td style="padding:5px;">
                    <img src="/Content/Images/x16/info_message.png" style="border-width:0px;" alt="Информация">
                </td>
                <td style="font-weight:bold;width:100%;padding:5px;">
                    @Request["notify"]
                </td>
            </tr>
        </tbody>
    </table>
}

Результат должен выглядеть следующим образом:

Рис. 6. Результат изменения кода стандартной формы записи справочника

После произведенных настроек на форме просмотра записи справочника в веб-приложении ELMA будет формироваться информационное сообщение:

Рис. 7. Пример информационного оповещения о статусе БП на форме просмотра записи справочника