Nintex Workflow vs ZFlow: обзор нового workflow-движка на SharePoint и сравнение с мастодонтом рынка

от автора

Я уже писала много лет назад в своем блоге про опыт работы с Nintex. С тех пор утекло много воды, а Nintex практически не поменялся в отличие от самого SharePoint. Но он все также любим мною и заказчиками за все, кроме цены.

В последние годы ценовая политика на Nintex Workflow стала абсолютно негуманной. Был упразднен Workgroup, цены на Standard выросли в полтора раза и сейчас составляют 11 600 евро. За Enterprise придется раскошелиться на 20 с лишним тысяч евро.

Пришлось смотреть на рынок в поисках альтернативных решений. Месяц назад ко мне в руки попало относительно новое на рынке решение ZFlow. Месяц разбиралась, игралась, делала различные бизнес-процессы типа командировок и отпусков. В результате сделала небольшое сравнение с Nintex, чем и делюсь.

Работа с контекстом рабочего процесса

Самый большой минус Nintex в части работы – это падения рабочих процессов, после которых невозможно возобновить упавший рабочий процесс с того места, где он упал. Более того, при остановке предыдущего экземпляра процесса задачи, созданные в рамках него, канут в бездну. И восстановить их не удастся, даже если покопаться в корзине или напрямую в базе данных. Об этом нужно всегда помнить при администрировании и разработке системы, и часто это приводит к большим проблемам.
У ZFlow есть большое преимущество в этой части. Рабочий процесс в случае неудачи не падает сразу, а делает несколько попыток повторения проблемного активити. Таким образом, снижается риск прерывания процесса. Да и при падении процесс можно запустить с того места, где он собственно упал. Это достигается за счет использования более современного движка рабочих процессов — Workflow Manager и использования модели процессов SharePoint 2013.

Системные апдейты

Опять же в чистом Nintex нет никакой возможности выполнять системные обновления формы без применения ресиверов, без создания новой версии. Например, невозможно обновить задачу в состоянии «Не начата», чтобы она не поменяла свое состояние, так как при любом обновлении ресивер переводит ее в состояние «В процессе выполнения». В основном проблема эта исходит из идеологии самого Nintex Workflow, который нацелен на европейскую аудиторию, где к задачам по документу относятся довольно утилитарно.
В Российских же реалиях именно с задачами идет валовая часть работы над заявкой или документом. Задачи отменяют, принимают в работу, обновляют и делегируют. Некоторые процессы требуют отключения системных обновлений, чего невозможно сделать в Nintex Workflow. Разработчики ZFlow такую возможность добавили, и это радует.

Откат к предыдущей версии рабочего процесса

В Nintex эта возможность просто есть в отличие от ZFlow. Если разработчик непоправимо накосячил при создании процесса, в Nintex можно восстановить любую предыдущую версию. Что, несомненно, удобно.

Работа с уведомлениями и Lazy Approval

Вообще не совсем корректно говорить Lazy Approoval по отношению к обоим движкам, так как это запатентованное название Nintex, которое можно применять только к их продуктам. Согласование по почте или «ленивое согласование».
Эта функция является одной из базовых в Nintex Workflow. Но основная ее проблема в том, что она явно не доработана. «Лэйзик» подходит только для 3 типов задач в Nintex, не сохраняет комментариев пользователя, требует запоминания или заучивания и дословного собственноручного написания кодовых слов, по которым система считает, что документ был согласован или отклонен.
Практика показала, что это не совсем удобно, и наличие кнопок «нах» и «пох» в тексте письма всегда будет удобнее, чем писать это все от руки. В ZFlow ленивое согласование работает уже по кнопкам в тексте письма, запоминает комментарии пользователей и даже пользователей, которые находятся в копии письма. Например, чтобы поставить им поручение по какому-нибудь документу или записать в какое-то поле в карточке.
Ленивое согласование доступно не только в почте, но и в Skype, Teams и многострадальном Telegram.

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

Работа с переменными и типами данных

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

Работа с календарем

В ZFlow-календаре можно сделать выходной день рабочим днем (актуально, когда происходит перенос дней в производственном календаре), в Nintex этого сделать нельзя.

Просмотр хода выполнения рабочего процесса

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

Глобальные константы

Отсутствуют в ZFlow как класс. Например, количество дней на согласование по умолчанию в Nintex можно вынести в глобальную константу и не задавать ее в каждом рабочем процессе. Если потребуется изменить – то нужно поправить только в одном месте.

Встроенные активити

В Nintex в целом больше активити. Из более-менее используемых, в ZFlow отсутствуют:
— приостановить процесс (пауза);
— подождать завершения выполнения другого процесса;
— цикл do…while (необходимо для реализации рекурсивной обработки данных);
— копирование файлов между библиотеками (перенести вложения из задачи в документ);
— создать элемент в другом узле, создать список, сайт, коллекцию сайтов (в ZFlow это все решается вызов соответствующих веб-сервисов Sharepoint).

В Nintex есть множество встроенных возможностей для интеграции, правда многие из них в самой дорогой Enterprise версии: запросы SQL, LDAP, вызов веб-сервиса, управление пользователями/группами AD, парсер XML, создание встреч и задач в Exchange. В ZFlow есть только интеграция через веб-сервис.

В ZFlow невозможно из одного процесса запустить другой процесс, передав ему какие-то значения в качестве входных параметров. Nintex это может.

Администрирование рабочих процессов

В Nintex в некоторых активити есть возможность прямо в редакторе выполнить настроенные действия, очень актуально для различных запросов и интеграции, чтобы сразу здесь же отладить их.
Также во многих активити есть возможность перехватывать ошибку, чтобы она не приводила к падению процесса.
Встроенные инструменты для чистки мусора (история РП, журнал РП), отчеты, статистика
В Nintex есть инструменты администратора в интерфейсе: чистка журнала рабочих процессов, историчных данных рабочих процессов, посмотреть отчеты/статистику о выполнении процессов.
В Zflow все подобные функции выполняются через PowerShell скрипты и разработчики готовы ими делиться, при необходимости.

Общая архитектура и некоторые выводы

В целом на данный момент редактор Nintex Workflow, конечно мощнее. Если есть финансовые ресурсы брать Nintex, брать его можно смело. Он стабилен, функционален, достаточно неплохо документирован, но стоимость его на данный момент существенно завышена и продолжает повышаться в среднем раз в год. Причем, некоторые повышения проходят достаточно подленько. Например, при отказе от лицензий Workgroup Nintex клятвенно обещал, что текущие заказчики Workgroup не пострадают. Но спустя 2 года полностью перестал поддерживать Workgroup (то есть либо апгрейд до Standard и попадание на 10 000 евро, либо прощай, готовая система, либо прощай, поддержка и лицензии на тестовый стенд).

Также стоит отметить, что технологии использования модели рабочих процессов SharePoint 2010, на которой построен Nintex Workflow, уже устарели. Решение много лет не развивается, любые проблемы заказчика Nintex предлагает решать самостоятельно, нормальная поддержка по сути отсутствует. ZFlow же построено на более современной модели Workflow Manager. И судя по Road Map ему есть куда развиваться, включая миграцию в Office 365, которую ребята планируют завершить в октябре и которая уже доступна в качестве бета-версии.

Ну и разница в стоимости.

Стоимость Nintex Workflow: 11650 EUR (Standard) и 20240 EUR (Enterprise)
Nintex Workflow + Nintex Forms (Bundle) – 19780 EUR (Standard) и 33402 EUR (Enterprise)
Стоимость ZFlow – 450 000 руб.
Стоимость ZFlow + ZForms – 690 000 руб.


ссылка на оригинал статьи https://habr.com/post/419645/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *