Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在camunda过程中传递过程变量中的json

在camunda过程中传递过程变量中的json
EN

Stack Overflow用户
提问于 2018-06-08 23:18:51
回答 2查看 9.5K关注 0票数 5

我试图将变量中的json有效负载作为值传递,以便使用engine-rest启动流程定义,如下所示:

API:

http://localhost:8080/engine-rest/process-definition/processService:1:9459dbe9-6b2c-11e8-b9e8-28d2447c697a/start

身体:

代码语言:javascript
运行
AI代码解释
复制
{
  "variables": {
      "payload": {
        "value": {
            "mode": "email",
            "meta": [{
                "key": "topic",
                "value": "weather"
            }, {
                "key": "qos",
                "value": "2"
            }]
        },
        "type": "Json"
      }
  }
}

但它提供了400个错误请求,错误如下:-必须为SerializableValue类型'Json‘提供'null’或字符串值。

此外,我在BPMN过程中使用了一个表达式来获取一个键值对,如下所示,它还抛出了错误:-

${S(payload).prop("mode").stringValue() == 'email'}

现在的工作步骤:-当我尝试以字符串格式发送body json有效负载时,它工作得很好。

API:

http://localhost:8080/engine-rest/process-definition/processService:1:9459dbe9-6b2c-11e8-b9e8-28d2447c697a/start

正文:

代码语言:javascript
运行
AI代码解释
复制
{
  "variables": {
      "payload": {
        "value": "{\"mode\": \"email\",\"meta\": [{\"key\": \"topic\",\"value\": \"weather\"},{\"key\": \"qos\",\"value\": \"2\"}]}",
        "type": "String"
      }
  }
}

与我在这里用来获取json有效负载的java代码相同-

代码语言:javascript
运行
AI代码解释
复制
public void notify(DelegateExecution delegateProcessExecution) throws Exception {
   Object notificationPayload =
       delegateProcessExecution.getVariable("payload");

    if (null != notificationPayload) {
        String notifyPayload = notificationPayload.toString();  
        JSONObject inputJson = new JSONObject(notifyPayload);
    }
    // ...
}

因此,我希望这个有效负载作为整个过程的json,这样我就不需要像上面的工作示例那样将它转换为string了。

EN

回答 2

Stack Overflow用户

发布于 2019-12-05 05:05:25

您只应该将类型更改为"json",例如:

代码语言:javascript
运行
AI代码解释
复制
{
    "variables": {
        "broker": {
            "value": "{\"name\":\"Broker Name\"}",
            "type": "json"
        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2018-12-23 03:37:39

这是rest引擎API中的设计,它们也支持其他数据格式,所以它必须是一个转义的JSON字符串,参见https://app.camunda.com/jira/browse/CAM-9617

解决方案是将转义的JSON字符串作为值传递,正如您前面所指出的。如果引擎在类路径上有一个与给定值匹配的Jackson,也可以使用"type": "Object"。在valueInfo对象中提供bean类型名称:

https://docs.camunda.org/manual/7.10/reference/rest/process-definition/post-start-process-instance/#request-body

例如:

代码语言:javascript
运行
AI代码解释
复制
{
  "variables": {
      "payload": {
        "value": "{\"mode\": \"email\",\"meta\": [{\"key\": \"topic\",\"value\": \"weather\"},{\"key\": \"qos\",\"value\": \"2\"}]}",
        "type": "String",
        "valueInfo": {
            "objectTypeName": "my.own.BeanWithModeAndMetaProps",
            "serializationDataFormat": "application/json"
            }
      }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50771870

复制
相关文章
Django 2.1.7 模型类 - 字段类型
上一篇Django 2.1.7 模型 - 使用mysql数据库连接访问讲述了如何使用mysql作为数据库,执行模型查询数据,并返回渲染页面。
Devops海洋的渔夫
2019/06/15
1.7K0
gorm字段类型设置成map
想把一个字段设置成 map[string]string 类型,发现在做 db.Create() 的时候报错了。
runzhliu
2022/04/13
2.4K0
gorm字段类型设置成map
【分享】在集简云上架应用如何设置动作字段?
字段是用户要在前端填写的内容,可以在应用授权,设置触发/执行动作时都需要设置,字段在开发后台配置后,用户在使用时可在前端看到对应的字段。
集简云
2022/08/26
1K0
【分享】在集简云上架应用如何设置动作字段?
【分享】在集简云上架应用如何设置动作字段参数?
在开发者平台应用授权和触发/执行字段时都会涉及到字段参数,我们介绍一下各个字段参数的配置。
集简云
2022/08/30
1.1K0
在 Linux 上使用 systemd 设置定时器
定时器增加了另一种启动服务的方式,基于……时间。尽管与定时任务很相似,但 systemd 定时器稍微地灵活一些。让我们看看它是怎么工作的。
用户8989785
2021/09/10
1.7K0
在mysql中如何修改字段类型_MySQL怎么修改字段类型?「建议收藏」
在MySQL中,可以通过alter table语句来修改表中一个字段的数据类型。下面本篇文章就来带大家了解一下alter table语句,介绍如何修改字段类型,希望对大家有所帮助。
全栈程序员站长
2022/09/05
28.4K0
在MacOSX机器上设置JenkinsCI服务器
Jenkins Wiki提供了用于Jenkins安装的选项列表,但没有提及Mac OSX。尽管它提到了Docker,但我只听说过有关Docker的好消息。在本文中,我将坚持使用自制软件。在继续操作之前您需要在Mac上安装和配置JDK。
DevOps云学堂
2020/07/24
2.5K0
mysql的mediumtext类型字段在java如何获取
PO:重点是autoResultMap = true和@TableField(typeHandler = FastjsonTypeHandler.class)
全栈程序员站长
2022/08/30
4K0
mysql的mediumtext类型字段在java如何获取
13. Django 2.1.7 模型类 - 字段类型
上一篇Django 2.1.7 模型 - 使用mysql数据库连接访问讲述了如何使用mysql作为数据库,执行模型查询数据,并返回渲染页面。
Devops海洋的渔夫
2022/01/17
1.3K0
13. Django 2.1.7 模型类 - 字段类型
MySQL的字段类型_mysql数据库字段类型
要了解一个数据库,我们必须了解其支持的数据类型。MySQL 支持大量的字段类型,其中常用的也有很多。前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类型,本篇文章我们将把字段类型一网打尽,讲一讲常用字段类型的用法。
全栈程序员站长
2022/10/04
19.9K0
MySQL的字段类型_mysql数据库字段类型
【Python】类型注解 ② ( 基础变量设置类型注解 | 类对象设置类型注解 | 容器变量设置简易类型注解 | 容器变量设置详细类型注解 )
元组 数据容器类型 的 详细 类型注解 , 需要为每个元素都进行类型标记 , 有几个元素就要标记几个类型 ;
韩曙亮
2023/10/11
2610
【Python】类型注解 ② ( 基础变量设置类型注解 | 类对象设置类型注解 | 容器变量设置简易类型注解 | 容器变量设置详细类型注解 )
mysql密码字段类型_MySQL 字段类型
MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。
全栈程序员站长
2022/11/17
14.9K0
mysql密码字段类型_MySQL 字段类型
在 Laravel Eloquent 模型类zhon设置访问器和修改器
前面两篇教程我们陆续为大家介绍了模型类的基本增删改查操作,以及如何通过模型类进行批量赋值和软删除,今天我们继续为大家介绍模型类的高级特性 —— 访问器和修改器。
学院君
2021/01/22
1.5K0
反射类的字段
@Test public void test6() throws Exception { Person person = new Person(); Class c1 = Class.forName("com.lan.reflect.Person"); Field f = c1.getField("name"); //获取字段的值 Object value = f.get(person);
MonroeCode
2018/01/11
6490
mybatis-plus字段类型处理器
文档表明,首先要加@TableName(autoResultMap = true)注解,然后再指定typeHandler
阿超
2022/08/17
1.3K0
mybatis-plus字段类型处理器
MySQL字段类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
全栈程序员站长
2022/08/04
9.7K0
blob类型字段[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/16
3K0
JSPRIT在带时间窗的车辆路径规划问题(VRPTW)上的表现总结
在之前的推文车辆路径优化问题求解工具Jsprit的简单介绍与入门中,相信大家已经对Jsprit这款开源的车辆路径规划问题求解器有了基础的了解,那么Jsprit在具体的车辆路径规划问题上表现到底如何呢?
短短的路走走停停
2019/09/24
1.6K0
JSPRIT在带时间窗的车辆路径规划问题(VRPTW)上的表现总结
iOS 的系统类信息在栈上?
前言 今天有位群友抛出了一个很有意思的问题:为什么系统类的 class 地址比栈区变量更高? image-20210519235852843 iOS 进程内存布局 通常情况下,我们对进程内存的布局
酷酷的哀殿
2021/06/22
8360
iOS 的系统类信息在栈上?
点击加载更多

相似问题

重新发布:在类上找不到mblogBegginer的设置器/字段

111

火基,类文件:在“myclass”上找不到“UserTwo”的设置器/字段

10

在多参数类型类上找不到类型类实例

20

在类问题上找不到类型的setter/字段

112

在类com.example.mayank.messaging.productDetail上找不到详细信息的设置器/字段

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档