Nintex Workflow vs ZFlow. Реальная ли альтернатива?

Сотрудники и партнеры компании i-Sys провели сравнительный анализ собственного графического  редактора рабочих процессов под SharePoint Server - ZFlow и одного из лидеров рынка Nintex Workflow.
Сможет ли ZFlow стать альтернативой Nintex Workflow, можно решить прочитав наш обзор.
СТАТЬЯ БЛОГА

Компания i-Sys занимается автоматизацией бизнес-процессов на SharePoint более 10 лет. Изначально мы выбрали для себя платформенный подход к построению решений и для настройки бизнес-процессов стали использовать Nintex Workflow. Этот продукт в своем классе был и остается одним из лучших решений на рынке. На его основе нами была создана система документооборота DocTrix DocFlow и еще ряд специализированных конфигураций. Однако с 2015 года, в связи с существенным ростом курса Евро, изменением политики лицензирования Nintex стоимость Nintex Workflow для большого количества российских компаний стала крайне чувствительной. А ряд компаний, бюджеты которых позволяют приобретать решение данной ценовой категории, не могут использовать решения Nintex в связи с импортозамещением.

Эта ситуация сделала нас абсолютно не конкурентными на рынке систем документооборота и автоматизации процессов.

Выходом из этой ситуации было создание своего собственного редактора рабочих процессов на SharePoint и в конце 2016 года мы приступили к разработке ZFlow.
Первую релизную версию ZFlow наши разработчики выпустили в августе 2017 года. По сути решение ZFlow стало более бюджетной альтернативой Nintex Workflow.

Сегодня в блоге небольшое сравнение с Nintex Workflow от наших внедренцев и специалистов наших партнеров, которые за прошедший год реализовали 5 крупных проектов на ZFlow.


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

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

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

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

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

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

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

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

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


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

Вообще не совсем корректно говорить Lazy Approval по отношению к ZFlow, так как это запатентованное название Nintex, которое можно применять только к их продуктам. Согласование по почте или "ленивое согласование". 

Эта функция является одной из базовых в Nintex Workflow. Но основная ее проблема в том, что ее использование не всегда очевидно для пользователей и они часто совершают ошибки. "Лэйзик" подходит только для 3 типов задач в Nintex Workflow, не сохраняет комментариев пользователя, требует запоминания или заучивания и дословного собственноручного написания кодовых слов, по которым система считает, что документ был согласован или отклонен. 

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

Благодаря интеграции ZFlow и DocTrix Platform с чат-ботом, разработанным i-Sys, "ленивое согласование" доступно не только в почте, но и в Skype, Teams и Telegram.



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

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

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

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

Также сделан удобный текстовый поиск в местах выбора переменных, полей, списков. Весьма существенно облегчает работу.

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

В ZFlow реализована более удобная работа с полями подстановки/пользователей чем в Nintex Workflow. ZFlow позволяет в запросах сразу указывать, какое свойство поля подстановки/пользователя использовать. В Nintex Workflow придется делать несколько последовательных запросов.

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

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

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

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

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

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

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

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

Как в Nintex Workflow так и в ZFlow существует широкий набор действий, используемых при построении бизнес-процессов. Действия, которые на текущий момент отсутствуют в ZFlow:

— копирование файлов между библиотеками (перенести вложения из задачи в документ).

— создать список, сайт, коллекцию сайтов (в ZFlow это все решается вызов соответствующих веб-сервисов Sharepoint).



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

Хочется также отметить одну из особенностей ZFlow, которой нет в Nintex Workflow - возможность отправлять рабочий процесс "в сон" до наступления определенного события. Когда событие будет инициировано, рабочий процесс "проснется" и продолжит свое выполнение. События можно генерировать из другого рабочего процесса, для этого есть соответствующие активити.

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

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

Также во многих активити есть возможность перехватывать ошибку, чтобы она не приводила к падению процесса.

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

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

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

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

Ну а про разницу в стоимости вы можете узнать, написав нам на sales@i-sys.ru