title background

Статьи / Перенос процесса BPMN из IBM BPM в Camunda - пошаговое руководство

21.07.2020 г., перевод статьи Joe Pappas

Если вы думаете, что сможете экспортировать BPMN из IBM, что сможете открыть его в Camunda Modeler, вас может ждать сюрприз. Как было обнаружено, экспорт IBM BPMN не включает в себя информацию о диаграммах, которую такие инструменты, как Camunda Modeler, используют для отображения диаграммы. В этом руководстве мы рассмотрим два подхода, используя утилиты, разработанные нашей командой консультантов, чтобы помочь вам создать полную диаграмму, которую можно открыть и просмотреть не только в Camunda Modeler, но и в любом BPMN-совместимом инструменте проектирования.

Команда Camunda Consulting создала набор свободно доступных инструментов для миграции процессных потоков. Инструменты для миграции процессных потоков IBM можно найти здесь. Вы заметите, что в настоящее время есть два инструмента для IBM. Один - это BPMN-конвертер, а другой - Teamworks-файл, он же .twx конвертер. Сначала мы рассмотрим инструкцию по BPMN конвертеру, а затем перейдем к .twx конвертеру.


Руководство по конвертеру BPMN

Преобразователь BPMN можно найти здесь. Вы заметите, что это проект Maven, который можно открыть практически в любой интегрированной среде разработки. Eclipse и Intellij - две из самых популярных IDE. Но сначала вам нужно будет клонировать или скачать репозиторий инструментов миграции - это можно сделать здесь.

Для этого руководства мы будем использовать Eclipse в качестве нашей IDE.

  • После клонирования или загрузки Git-репозитория скопируйте содержимое репозитория экспортного конвертера инструментов IBM BPMN в свежее рабочее пространство. Если, например, ваш Git-репозиторий находится на C:\gitRepos, то конвертер IBM BPMN вы найдете на C:\gitRepos\migrate-to-camunda-tools\IBM\create diagram from exported BPMN.
  • Скопируйте всю папку в выбранную вами рабочую область.
  • Далее запускаем Eclipse и выбираем рабочую область, в которую только что скопировали содержимое. После запуска Eclipse перейдите к File > Import > General > Projects from Folder or Archive.
  • Нажмите на кнопку Next. В появившемся диалоговом окне нажмите на Directory (Каталог) и перейдите к папке, в которую вы только что скопировали содержимое вашей рабочей области. Ваш экран должен выглядеть примерно так (см. ниже).
  • Нажмите Finish.

Перенос процесса BPMN из IBM BPM в Camunda

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

Далее мы создадим конфигурацию Run, которая позволит вам запустить конвертер в Eclipse:

  • Щелкните правой кнопкой мыши по корневой папке проекта и выберите Run As > Run Configurations...
  • В появившемся диалоговом окне дважды щелкните по Java Application, чтобы создать новую конфигурацию. Название проекта уже заполнено в этом диалоговом окне. При желании вы можете дать этой конфигурации новое имя.
  • Далее необходимо выбрать основной класс. Нажмите кнопку Search, вы увидите, доступен только один класс - BPMNDiagramGenerator. Выберите его и нажмите на кнопку OK.
  • Ваш экран должен выглядеть примерно так:

Перенос процесса BPMN из IBM BPM в Camunda

Теперь вам нужно предоставить два аргумента, первый - это экспорт BPMN из IBM, а второй - имя преобразованного файла. На всякий случай укажите путь и имена файлов в разделе Program arguments вкладки Arguments, заключенные в кавычки. Для начала будет предоставлен пример BPMN-файла. Для использования этого примера введите следующие данные для входного и выходного файлов:

”./src/main/resources/SampleBPMNfromIBM.bpmn”
”./src/main/resources/Converted.bpmn”

Ваш экран должен выглядеть примерно так:

Перенос процесса BPMN из IBM BPM в Camunda

Нажмите на Run. Должно открыться консольное окно, в котором вы увидите следующее:

BPMN diagram generated Diagram ./src/main/resources/SampleBPMNfromIBM.bpmn converted from IBM BPMN and can be found at ./src/main/resources/Converted.bpmn

Используя Camunda Modeler, откройте Converted.bpmn файл и среди вещей, которые вы заметите, будет 'swimlane', теперь 'pool' в Camunda BPMN, не совсем подходит как вы могли бы ожидать.

Алгоритм просто задает произвольные значения высоты и ширины, и вам нужно будет соответствующим образом настроить размер дорожки. Следующее, что вы заметите, это то, что преобразованная диаграмма будет выглядеть не так, как оригинальная. Этого можно ожидать, так как в экспортированном BPMN нет ничего, что указывало бы на какие-либо координаты. Это будет рассмотрено в следующем разделе. Наконец, вы заметите, что потоки последовательности - это не типичные прямолинейные линии, а скорее простые линии точка-точка, которые при перемещении объектов будут меняться на более привычные прямолинейные линии.

Вот пример процесса, созданного в Blueworks Live и экспортированного как BPMN:

Перенос процесса BPMN из IBM BPM в Camunda

И вот процесс в Camunda Modeler после того, как отсутствующая диаграмма была сгенерирована и пул был соответствующим образом скорректирован:

Перенос процесса BPMN из IBM BPM в Camunda

В следующем разделе мы рассмотрим другой инструмент, использующий другой формат экспорта IBM BPM, который сохранит точность исходной диаграммы.


Преобразование IBM BPM .twx файлов экспорта

Если требуется точность диаграмм и вы можете экспортировать свои процессы в формат .twx (также известный как Teamworks), то инструмент миграции .twx - то, что нужно. Файл .twx - это формат обмена проектами для IBM BPM, который содержит информацию о диаграммах в своих zipped xml файлах. xml-файлы, описывающие процессы, похожи на BPMN-файлы, но, скорее всего, не являются BPMN-файлами. Проект, с которым мы будем работать, действительно содержит пример xml файла, но мы рассмотрим, как вы можете извлечь нужные файлы из своего twx-файла.

Если вы уже клонировали/загрузили git-репозиторий, просто повторите шаги, описанные ранее, чтобы скопировать и открыть проект в рабочей области Eclipse. Вы даже можете использовать рабочую область, созданную ранее. Просто убедитесь, что инструмент .twx скопирован в отдельный каталог.

Далее мы создадим конфигурацию Run для образца, включенного в проект. Снова щелкните правой кнопкой мыши по корневой папке проекта и выберите команду Run As > Run Configurations.... Дважды щелкните по Java Applications среди вариантов, указанных в диалоговом окне. Если вы используете ту же рабочую область, что и раньше, убедитесь, что в качестве проекта было выбрано создание BPMN из TWX-экспорта. Выполните поиск основного класса, хотя в этот раз вы можете увидеть несколько вариантов. Убедитесь, что в качестве основного класса выбран BPMNGenFromTWX. Далее нам понадобится предоставить два аргумента для класса, один для входа и один для вывода, как и раньше.

”./src/main/resources/TWXOriginal.xml” “./src/main/resources/TWXConverted.bpmn”

Нажмите на Run. Должно открыться консольное окно, в котором вы увидите следующее:

BPMN diagram generated Diagram ./src/main/resources/TWXOriginal.xml converted from IBM .twx export and can be found at ./src/main/resources/TWXConverted.bpmn

Папка ресурсов содержит PNG файл (PictureOfProcess.PNG) оригинального процесса в IBM и будет выглядеть следующим образом:

Перенос процесса BPMN из IBM BPM в Camunda

Используя Modeler, откройте TWXConverted.bpmn, и он должен выглядеть следующим образом:

Перенос процесса BPMN из IBM BPM в Camunda

Как вы видите, используя подход экспорта .twx, вы можете сохранить точность исходной диаграммы, так как экспорт .twx содержит соответствующую информацию о диаграмме, хотя и не в BPMN-совместимой форме. Будут небольшие различия из-за стандартного масштабирования формы в IBM и Camunda.


Ваши собственные процессы в IBM BPM

Далее мы обсудим, как вы можете извлечь свой процесс xmls из файла .twx и использовать эти данные в качестве входных данных инструмента. Файл .twx - это просто zip, и самый простой способ распаковать его - это изменить расширение с .twx на .zip и, используя свою любимую утилиту zip, распаковать содержимое в папку.

После извлечения содержимого перейдите в корневую папку, а затем продолжите переход в папку /objects. Как вы увидите, она содержит ряд xml файлов, которые будут включать процессы вместе с потоками тренера. Обычно, процессы являются самыми большими файлами, и их имя начинается с "25", за которым следует длинная строка буквенно-цифровых символов. Откройте эти файлы-кандидаты в любимом текстовом редакторе. В самом начале файла вы увидите что-то вроде:

Перенос процесса BPMN из IBM BPM в Camunda

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


Создание jar-файла

Если вы хотите просто создать jar-файл любой из утилит, у вас есть несколько вариантов:

  • Один из них - щелкнуть правой кнопкой мыши по файлу pom.xml и выбрать Run As > Maven install.
  • Другой вариант - щелкнуть правой кнопкой мыши по корневой папке, выбрать Show in Local Terminal и выполнить следующую команду Maven: mvn clean package install.

В любом случае (или используя предпочитаемый вами метод) вы должны получить jar-файл в папке /target. Скопируйте эту jar куда угодно и введите следующую команду в терминале:

java -jar yourGeneratedJarFile.jar “your input file” “your output file”

Вот так! Пожалуйста, не стесняйтесь оставлять отзывы на форуме и смотрите этот Git-репозиторий на дополнительные конвертеры по мере их появления.