Форматы данных (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