Интеграция Camunda BPM и 1С

12.05.20

Интеграция - WEB-интеграция

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

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

 

 

Клиент оформляет заказ на сайте Интернет-магазина компании.

Сайт стартует процесс обработки заказа при помощи Camunda BPM, отправляя сообщение и данные заказа на сервер.

Далее сервер BPM вызывает http-сервис отдела продаж и переходит в режим ожидания подтверждения того, что заказ принят в обработку.

После получения такого сообщения вызывается http-сервис складской системы WMS, чтобы сформировать задание на сборку заказа.

Как только заказ собран и готов для доставки клиенту, WMS сообщает серверу BPM об этом, что становится триггером для вызова http-сервиса службы доставки и так далее.

 

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

 

Преимущества Camunda BPM:

1. Отличная реализация BPMN 2.

2. Бесплатная версия Camunda Comunity Platform (сервер выполнения бизнес-процессов).

3. Бесплатная версия Camunda Modeler (дизайнер диаграмм и их публикация на сервере).

4. Очень богатый интерфейс REST API для управления сервером и опубликованными на нём бизнес-процессами.

5. Возможно запускать в контейнерах Docker.

6. Проверенное и надёжное решение.

7. Отличная документация и поддержка сообщества.

8. Возможно разрабатывать плагины на Java.

9. Улучшение взаимодействия между бизнес-аналитиками и программистами компании.

 

Имеется реализация сервера и дизайнера на JavaScript.

Дизайнер на JavaScript: https://bpmn.io/

Сервер на Node.js: https://www.npmjs.com/package/bpmn-engine

 

Недостатки Camunda BPM:

1. Платная техническая поддержка.

2. Документация на английском языке.

3. Потребуется изменение образа мышления программистов 1С и методики разработки.

 

Применение в контексте 1С:

1. Продвинутое управление бизнес-процессами, основанное на международном стандарте BPMN 2, ставшим де-факто рабочим инструментом бизнес-аналитиков по всему миру.

2. Оркестрация и мониторинг взаимодействия http-сервисов 1С между собой.

3. Сквозное управление процессами, проходящими через любое количество информационных баз 1С, в том числе в сочетании со сторонними информационными системами.

 

Использование Camunda BPM далеко не ограничивается перечнем выше =)

 

 
1. Установка Camunda BPM и подготовка к работе
 
2. Старт нового экземпляра процесса 
 
3. Старт нового экземпляра процесса при помощи сообщения
 
4. Старт нового экземпляра процесса с параметрами
 
5. Вызов http-сервиса 1С из бизнес-процесса сервера
 
6. Передача сообщения из 1С в бизнес-процесс сервера
 
7. Использование очередей заданий на стороне сервера из 1С
 
8. Использование SQL Server

 

На этом всё. Для быстрого старта в освоении Camunda BPM этого вполне достаточно.

Cсылка на стандарт BPMN 2: https://www.omg.org/spec/BPMN/

Успешных всем внедрений !

BPMN Camunda Интеграция Обмен данными http-сервисы оркестрация

См. также

Программная инженерия Управление проектом Архитектура Мероприятия Бизнес-аналитик Руководитель проекта Россия Платные (руб)

Практическая конференция для аналитиков и руководителей проектов 1С. 30 мая - 1 июня 2024 г. Санкт-Петербург, отель Cosmos Saint-Petersburg Pribaltiyskaya Hotel, ул. Кораблестроителей 14

50000 руб.

27.05.2023    22440    671    0    

310

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17778    19    22    

16

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19836    13    17    

16

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14419    42    8    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. awk 744 13.05.20 08:14 Сейчас в теме
Спасибо за статью. А какие коннкторы кроме http есть?
2. zhichkin 1524 13.05.20 14:29 Сейчас в теме
(1) К сожалению, "из коробки" есть только http-connector и soap-http-connector.
Документация по созданию своих коннекторов на Java: https://docs.camunda.org/manual/7.12/reference/connect/extending-connect/
3. awk 744 13.05.20 15:05 Сейчас в теме
4. stos 34 21.05.20 17:13 Сейчас в теме
Спасибо огромное за статью. Не знал как подступиться к связи Camunda-1С. Получил мощный толчок. В BPMS-сила.
o.nikolaev; zhichkin; +2 Ответить
5. user1035175 2 31.05.20 07:28 Сейчас в теме
Шикарный стиль написания.
zhichkin; +1 Ответить
6. AlexKo 102 04.06.20 09:44 Сейчас в теме
Спасибо за статью, очень интересно выглядит
7. DAV 04.06.20 10:01 Сейчас в теме
Интересная статья, а что думает сообщество в части использования 1С: ДО КОРП в данной роли? Как минимум в тех процессах учет которых собственно и автоматизируется. Из плюсов - бесшовная интеграция, не нужно переучивать сотрудников, возможность эскалации по условиям и т.д...
8. papami 56 04.06.20 11:19 Сейчас в теме
(7)
Если нет разрозненных систем, т.е. учет только на 1С в одной базе - вероятно реализовывать все на встроенном движке правильней. На сложной инфраструктуре поможет описанное автором решение.
Саму "идею" BPM (где М-management) считаю очень правильной. И есть реальный опыт применения. При этом получается, что изменение какого-либо бизнес-процесса в компании - не сиюминутная штука. Поэтому возможность быстро перекидать туда-сюда этапы и стрелочки в пользовательском режиме не считаю серьезным преимуществом. Для хорошей реализации можно и программистов подключить.
9. zhichkin 1524 04.06.20 15:38 Сейчас в теме
(7) По правде сказать, я бы не стал сравнивать возможности BPMN 2 и бизнес-процессов 1С. Плюсы, которые Вы назвали это да, кончено же, но если смотреть на это шире, то скорее всего нет.
10. informa1555 2715 04.06.20 17:20 Сейчас в теме
Прекрасная статья, но пример который описан в начале - это довольно распространенная задача, только я не понял зачем тут именно бизнес-процессы.. Сайт отправляет заказ в 1С, в 1С появился новый заказ, менеджер его увидел, обработал,далее 1С смотрит на статус и оправляет заказ в WMS. Так же как в 1С, в WMS получение самого заказа (данных) - есть команда на какие то действия с ним исходя из текущей ситуации которая известна в WMS... Все это проходит прямыми обменами через сервисы, либо через брокер обмена либо еще как то. Не понимаю какая роль у посредника в данном случае и что это дает - какие преимущества? Может есть какие то другие кейсы использования кроме обмена с сайтом и WMS? А то вроде и прикольная штука а как применить непонятно...
11. zhichkin 1524 04.06.20 17:32 Сейчас в теме
(10) Спасибо. Я очень рад за Вас, что Вы можете держать в голове всю схему взаимодействия между разными системами. Я уже - нет. Кроме того, когда нужно быстро сказать что и где, в каком месте, застряло, Camunda и подобные ей системы здорово выручают.

Предлагаю посмотреть следующую схему (это интеграция с МДЛП) одного процесса из примерно 10 таких же, работающих одновременно. В этой схеме взаимодействует 4 разные информационные системы.
Прикрепленные файлы:
14. informa1555 2715 04.06.20 18:06 Сейчас в теме
(11) да не, я знаю что такое оркестровка в сервисной архитектуре и зачем она нужна. Просто пример какой то уж слишком простой для такой штуки. Подобные и интеграции делаются довольно часто из серии сделал и забыл. Поэтому и хотелось какой то пример ради которого не возникло бы вопросы в целесообразности.
16. zhichkin 1524 04.06.20 18:07 Сейчас в теме
(14) Статья для начинающих интеграторов, и тех, кто не знаком с Camunda + на Инфостарт вообще про это практически ничего нет. Быстрый старт и ничего лишнего.
N!ghtmare; maxopik2; +2 Ответить
12. zhichkin 1524 04.06.20 17:46 Сейчас в теме
(10) И, да, кстати, а теперь представьте, что бизнес-аналитики захотят что-то в этой схеме взаимодействия поменять, а у вас уже несколько тысяч процессов запущены и выполняются ... Camunda умеет отслеживать версии процессов. Старые процессы будут завершаться по старой версии, а новые процессы будут выполняться по изменённой схеме.
Panadol; semyonrsh; +2 Ответить
13. zhichkin 1524 04.06.20 18:03 Сейчас в теме
(10) Хотелось бы ещё отметить распределённые транзакции, тот же самый пресловутый saga pattern. Это когда нужно отменить действия в разных системах потому, что в одной из них что-то пошло не так. Camunda отлично справляется с координированием таких вещей. Во вложенном рисунке привожу классический пример реализации saga pattern для бронирования путешествия.
Прикрепленные файлы:
Panadol; N!ghtmare; DAV; informa1555; +4 Ответить
15. informa1555 2715 04.06.20 18:07 Сейчас в теме
(13) о. вот это уже интереснее
17. zhichkin 1524 04.06.20 18:10 Сейчас в теме
(15) На сайтах Camunda и на их канале на Youtube ещё больше интересного =) Кроме этого есть шикарный проект от них же: bpmn.io - то есть эту штуку не только можно интегрировать в 1С через встроенный WebKit, но ещё и расширять своими плагинами на Jav * aScript =)
22. msfog 12.01.21 03:08 Сейчас в теме
(13) это действия компенсации, возвращающие на шаг назад к замещаемому действию.
18. N!ghtmare 15.06.20 13:08 Сейчас в теме
*zhichkin
отличный QuickStart по Camunda для 1С ного мира!

*all
В дополнение по теме bpmn и camunda в частности,не реклама.
Есть отличный русскоязычный ресурс bpmn2.ru от Дениса Котова
STORM https://storm.bpmn2.ru/
https://bpmn2.ru/blog
и канал на ютубе
zhichkin; +1 Ответить
19. art0m 16.06.20 00:19 Сейчас в теме
(18) А тут русскоязычное сообщество пользователей Camunda, Zeebe и BPM" - ссылка в телеграм https://t.me/camunda_bpm
zhichkin; +1 Ответить
20. ITSun 25.11.20 21:26 Сейчас в теме
Прекрасное оформление! Особенно редактор диаграмм порадовал :))
За статью ПЛЮС, спасибо!
21. msfog 12.01.21 03:07 Сейчас в теме
Прикольно. У меня в разработке на базе BPMN.js от Camunda, немного другой инструмент.
23. semyonrsh 29.01.21 22:42 Сейчас в теме
Дмитрий, большое спасибо за отличную статью!

Подскажите, пожалуйста, возникала ли необходимость при интеграции 1С и Camunda
реализовывать ветвления в процессах, зависящие от условий в терминах бизнес-объектов 1С?
(например, Если Контрагент накладной входит в папку VIP-клиенты, тогда Ветка 1, Иначе Ветка 2)

Есть ли идеи, каким образом решать подобные задачи с помощью Вашего подхода?
24. zhichkin 1524 30.01.21 13:05 Сейчас в теме
(23) Спасибо за отзыв!
Нет, в моей практике такой необходимости не возникало.
Насколько я знаю, Camunda позволяет использовать две техники для условных ветвлений:
1. Язык выражений Camunda
2. Скриптинг в схемах BPMN
semyonrsh; +1 Ответить
25. semyonrsh 31.01.21 12:04 Сейчас в теме
(24) Дмитрий, вопрос связан в большей степени не с ветвлениями как таковыми, а с потребностью использовать бизнес-объекты 1С в логике бизнес-процессов.
Еще один пример:
Есть процесс отгрузки по накладной клиента (одновременно может быть запущено несколько таких процессов по одному клиенту). Перед отгрузкой необходимо убедиться, что у клиента в целом отсутствует просроченная задолженность. Если задолженность есть, то необходимо дождаться ее погашения.
Дальше при полном погашении клиентом просроченной задолженности необходимо опубликовать событие, на которое подписаны процессы Camunda. Поскольку 1С не знает о процессах (кажется, так правильно), он не может опубликовать события по конкретным процессам, он может только по клиенту. Нужно, чтобы все процессы отгрузки отреагировали на событие "погашение задолженности по клиенту", но процессы по другим клиентам продолжили бы ждать "своих" событий, а процессы по клиенту-плательщику пошли дальше.
28. zhichkin 1524 31.01.21 13:55 Сейчас в теме
26. semyonrsh 31.01.21 12:12 Сейчас в теме
(24) Дмитрий,

Правильно понимаю, что нужно все подобные атрибуты загонять в "переменные" (https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/#variable-scopes-and-variable-visibility) процессов и дальше описывать всю подобную бизнес-логику с помощью скриптов в Camunda?
27. zhichkin 1524 31.01.21 13:54 Сейчас в теме
(26) Всё верно Вы понимаете. Единственное, что я бы прокомментировал: бизнес логику лучше держать в 1С наверное. Используйте http-сервисы на стороне 1С для изменения параметров/переменных процессов. Вызываете эти http-сервисы из процессов Camunda. Проектируйте сервисы независимыми по типу микро-сервисов, им не обязательно что-то знать про Camunda, просто отвечают всем кто бы это ни был каким-нибудь json'ом и всё. Кроме этого у процессов Camunda есть обязательный реквизит businessKey по моему называется. Он может быть использован для связи с бизнес-приложением. Это может быть и внутренний идентифкатор документа 1С, например. Его можно инициализировать при старте процесса Camunda. По правде сказать возможностей разных много. Можно очень гибко подойти к проектированию. Резюмируя, я бы больше смотрел всё-таки в сторону http-сервисов для реализации бизнес-логики.
29. zhichkin 1524 31.01.21 14:01 Сейчас в теме
(26) Если Вы решили использовать Camunda как движок для оркестрации бизнес-процессов и т.п., то в том, что 1С "знает" что-то про Camunda нет ничего плохого. Просто в таком случае Camunda становится частью архитектурного ландшафта и всё. Это просто такое стратегическое архитектурное решение.
30. semyonrsh 01.02.21 12:25 Сейчас в теме
(29) Ясно. Большое спасибо.
31. user1653794 27.08.21 09:47 Сейчас в теме
Дмитрий, склоняемся к выбору Cаmunda BPMN 2.0, но остается следующий вопрос: есть ли в Cаmunda инструменты регламентации бизнес-процессов - выгрузка диаграмм бизнес - процессов в должностные инструкции, положения об отделах, регламенты?
32. o.nikolaev 216 06.02.22 22:24 Сейчас в теме
33. Vladimir_Konyrev 263 09.09.24 17:07 Сейчас в теме
В сервисе MAKER появился движок Cаmunda BPMN Для создания диаграмм, можно в облаке рисовать и пользоваться.
https://infostart.ru/support/1867797/
Прикрепленные файлы:
04_Создание_процесса_через_быстрые_команды.mp4
Оставьте свое сообщение