Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
外部任务异常处理引言
文档目的
在外部任务执行过程中可能出现异常,需要对这些异常情况进行处理。
功能或技巧概述
功能或技巧简介
适用场景
处理外部任务的异常
实现步骤12345678910111213141516@Bean@ExternalTaskSubscription("create-order")public ExternalTaskHandler orderCreatorHandler() { return (externalTask, externalTaskService) -> { var variables = externalTask.getAllVariables(); Map<String, Object> params = new HashMap<>(16); try { //TODO 创建订单 externalTaskService.complete(externalTask,...
如何在流程中使用外部任务引言
文档目的
在Camunda BPMN中,可以使用外部任务(External Task)来与外部系统进行交互。外部任务是一种特殊类型的活动,允许您将流程中的工作委托给外部系统或服务进行处理
功能或技巧概述
功能或技巧简介
适用场景
在外部系统中完成任务
实现步骤
选择 Service Task 的实现方式为 External 并设置 Topic
创建外部任务的 client
Camunda 官方提供了Java实现的clinet,社区中也提供了其他语言实现的client,下面以Java的client为例
首先需要在项目中导入对应的 client 依赖12345<dependency> <groupId>org.camunda.bpm.springboot</groupId> <artifactId>camunda-bpm-spring-boot-starter-external-task-client</artifactId> <version>7....
如何在流程调用中传递变量引言
文档目的
在Camunda BPMN中,可以使用输入输出参数和全局流程变量来在子流程和主流程之间传递和共享流程变量
功能或技巧概述
功能或技巧简介
适用场景
流程调用中传递变量
实现步骤
使用输入输出参数:
In mappings 将主流程中的变量传递给子流程中,示例中将主流程中的name映射到子流程中的userName
Out mappings 将子流程中的变量传递给主流程中,示例中将子流程中的key映射到主流程中的definitionKey
使用全局流程变量:
勾选 In mapping propagation 则可以将父流程中所有的变量传递到子流程中
勾选 Out mapping propagation 则可以将子流程中所有的变量传递到父流程中使用Camunda的API或表达式语言,您可以在主流程和子流程中直接访问和操作全局流程变量。
如何在流程中动态的调用另一个子流程引言
文档目的
在Camunda BPMN中,可以使用调用活动来在流程中调用另一个子流程或外部服务。调用活动是一种特殊类型的活动,允许您在当前流程中启动或调用另一个独立的流程。
功能或技巧概述
功能或技巧简介
适用场景
在主流程中调用其他流程实现流程复用
实现步骤
在主流程中选择要添加调用活动的位置。
在活动面板中,找到”调用活动”(Call Activity)元素,并将其拖放到主流程中。
配置调用活动的属性:
调用类型(Call Type):选择适当的调用类型选择BPMN。
在Called element 中填写需要调用的流程key,这里的key通过表达式${callProcessKey}动态从流程中获取在上面的示例中通过表达式动态调用了子流程,这个表达式会获取流程中对应的变量作为需要调用的流程定义的key
如何在流程中调用另一个子流程引言
文档目的
在Camunda BPMN中,可以使用调用活动来在流程中调用另一个子流程或外部服务。调用活动是一种特殊类型的活动,允许您在当前流程中启动或调用另一个独立的流程。
功能或技巧概述
功能或技巧简介
适用场景
在主流程中调用其他流程实现流程复用
实现步骤
在主流程中选择要添加调用活动的位置。
在活动面板中,找到”调用活动”(Call Activity)元素,并将其拖放到主流程中。
配置调用活动的属性:
调用类型(Call Type):选择适当的调用类型选择BPMN。
在Called element 中填写需要调用的流程key在上面的示例中通过 Call Activity 调用了一个 processDefinitionKey 为 call_process_key的子流程,默认调用最新版本的流程,也可以通过Binding指定需要调用的流程定义版本。
在任务创建、完成或删除时执行自定义逻辑引言
文档目的
要在任务创建、完成或删除时执行自定义逻辑,可以使用Camunda BPMN中的任务监听器。任务监听器是一种机制,允许您在任务的不同生命周期阶段(创建、完成、删除等)执行自定义代码。
功能或技巧概述
功能或技巧简介
适用场景
在任务创建、完成或删除时执行自定义逻辑
实现步骤
选择要添加任务监听器的 UserTask 或 ServiceTask
在任务的属性面板中,找到”execution listeners”选项卡
在任务监听器选项卡中,您可以添加一个或多个监听器。每个监听器都有以下属性:
事件类型(Event Type):选择与希望触发监听器的任务事件相关的事件类型。例如,可以选择”创建”、”完成”或”删除”等事件类型。
类(Class):指定要执行的自定义代码所在的Java类。您可以在该类中实现相应的接口(如TaskListener)并重写相应的方法来定义要执行的逻辑。
表达式(Expression):如果您更倾向于使用表达式语言(如JavaScript或Groovy),则可以在此处指定表达式以执行自定义逻辑。
...
处理响应数据和更新流程变量引言
文档目的
在Camunda中使用 http-connector获取到请求结果后处理请求数据并将数据更新到流程实例中
功能或技巧概述
功能或技巧简介
适用场景
处理响应数据和更新流程变量
具体实现在成功获取到请求的响应数据后,可以的在connector output 中使用脚本来处理响应数据
1234567891011//获取响应var reponseBody = connector.getVariable('response');//转换成jsonvar data = S(reponseBody)//获取所需的数据var name = data.prop("name").value();var age = data.prop("age").value();//将获取的数据设置到流程中execution.setVariable("name", name);execution.setVariable("age", age);
在上述示例中,我们首...