Форматы данных (XML, JSON и др.)

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Этот раздел объясняет, как работать с форматами данных, такими как XML или JSON, в Camunda 7. Справочник по форматам данных Spin предоставляет полный спраочный материал по доступным возможностям для работы с данными.

В то время как Camunda 7 является Java-платформой, данные процессов не всегда представлены в виде Java объектов. При взаимодействии с внешними системами часть используются сериализованные форматы, такие как JSON или XML. В то время как такие процессные переменные могут восприниматься движком как обычные объекты типа String, требуются значительные усилия для обработки таких данных, включая парсинг, манипуляции и маппинг из Java объектов и обратно. Таким образом, Camunda 7 предлагает опциональный компонент, который облегчает работу с этим типом данных в движке обработки процессов.

Проект Camunda Spin предоставляет функциональность, относящуюся к форматированию данных, которую можно внедрить в движок. Это обертка вокруг хорошо известных библиотек для работы с форматами данных, такими как XML и JSON, которая интегрируется с внутренним функционалом движка, относящимся к обработке данных. Spin спроектирован таким образом, чтобы его было легко расширять, добавляя кастомизированные форматы данных к тем, которые предоставляются из коробки.

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

<?xml version="1.0" encoding="UTF-8"?>
<customer xmlns="http://camunda.org/example" name="Jonny">
  <address>
    <street>12 High Street</street>
    <postcode>1234</postcode>
  </address>
</customer>

Когда Spin интегрирован в движок, может использоваться следующее выражения для проверки почтового кода клиента внутри алгоритма последовательности с условием:

${XML(customer).xPath("/customer/address/postcode").element().textContent() == "1234"}

Camunda Spin предоставляет следующую функциональность для движка:

  • Флюентные API для чтения, манипуляций и сохранения текстовых форматов данных, таких как JSON и XML всякий раз, когда такой код попадает в процесс

  • Интеграцию функций Spin API в язык выражений

  • Интеграцию функций Spin API в скриптовые окружения

  • Нативные типы значений переменных для JSON и XML

  • Сериализацию процессных переменных Java через маппинг объектов на форматы данных Spin, в частности JSON и XML

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org