在 Camunda BPM 设计器中,我找不到用于调用基于 REST 或 SOAP 的 Web 服务的活动。只能通过接线代码调用吗?如果需要使用 java 代码编写,如何将有效负载传递给代码。
问候,
帕尼
在 Camunda BPM 设计器中,我找不到用于调用基于 REST 或 SOAP 的 Web 服务的活动。只能通过接线代码调用吗?如果需要使用 java 代码编写,如何将有效负载传递给代码。
问候,
帕尼
您可以在 bpmn 中调用 Web 服务。
您可以创建一个 Service 类型的任务,并在 Properties/Details/Implementation: Connector 中选择。
接下来配置连接器属性,设置:
连接器 ID:http-connector(用于 rest json webservices)和输入参数:
您收到作为流程变量的 web 服务响应,配置输出参数如下:
希望这可以帮助你
首先:请注意 camundas 声明是“开发人员友好的”。camunda 组件的目标从来都不是仅仅“点击”一个工作过程。如果您正在寻找这样的解决方案,您应该 a) 看看零编码神话b) 也许选择另一种工具。
话虽如此,请查看 7.2 引入的camunda-connect框架,它应该可以满足您的需求(尽管它涉及 xml 编码)。
对于除了最简单的 SOAP/REST 调用之外的所有调用,您都需要通过 java 代码。当从其他具有广泛内置 Web 服务支持的 BPM 平台迁移时,这需要一点时间来适应。但请相信我,Java 代码是必经之路——在流程定义中导入转换/WSDL 变得如此糟糕。
我编写了两个基于 CXF 的示例:soap-cxf-service和soap-cxf-server-start,它们可以帮助您入门。
我建议为每个 web 服务创建一个 maven 工件,并将所需的服务添加为您的流程项目的标准 maven 依赖项。