Camunda:Spin支持的json数据

511 阅读2分钟

描述

camunda引擎使用java语言开发的,当使用java语言开发业务系统,并且采用camunda引擎嵌入到业务系统中的使用方法时,可以采用纯java数据类型。如果数据通过rest api通信不方便了,更多的是采用json、xml等数据类型

docs.camunda.org/manual/7.18… docs.camunda.org/manual/7.18…

Camunda Spin Dataformat 默认支持xml、json,现在互联网项目中使用的最多的是json类型,本教程以json为主。

spin json数据写入、读取

Json写入

 S('{"customer": "Kermit"}');

Json读取

Javascript中的用法,也可直接在BPMN中的Expression中使用

.elements():获取集合中的所有元素

.get(index):根据index获取集合中的具体元素

.prop("propName"):根据属性名获取值

.value():不区分类型的获取值

.stringValue():不区分类型的获取值

.numberValue():不区分类型的获取值

.value():不区分类型的获取值

.fieldNames():获取节点中所有子节点和属性的名称

.prop():设置属性

.deleteProp("name"):删除给定名称的属性

.deleteProp(List of names):删除一个或多个具有给定名称的属性

Json数组

.indexOf(Object):获取搜索对象第一次出现的索引

.lastIndexOf(Object):获取搜索对象最后一次出现的索引

.append(Object):将一个对象添加到列表末尾

.insertAt(Index, Object):在列表的特定索引处追加一个对象

.insertBefore(Search object, Object):在第一次出现第一个参数对象之前插入第二个参数对象

.insertAfter(Search object, Object):在第一次出现第一个参数对象之后插入第二个参数对象

.remove(Object):删除对象的第一次出现

.removeLast(Object):删除对象的最后一次出现

.removeAt(Index):删除指定索引处的列表项

例如${S(varibaleName).elements().get(0).prop("id").numberValue() != 1 }, 从变量中,获取变量名为varibaleName的集合中的第一个元素,并获取数字类型的id是否不等于1。

类型转换

主要支持三大类型数据转换,字符串stringValue(),数字numberValue(),布尔boolValue()。

类型判断

  1. isObject() returns boolean
  2. hasProp() returns boolean
  3. isBoolean() returns boolean
  4. isNumber() returns boolean
  5. isString() returns boolean
  6. isNull() returns boolean
  7. isValue() returns boolean
  8. isArray() returns boolean

依赖添加

<dependency>  
<groupId>org.camunda.bpm</groupId>  
<artifactId>camunda-engine-plugin-spin</artifactId>  
</dependency>  
<dependency>  
<groupId>org.camunda.spin</groupId>  
<artifactId>camunda-spin-dataformat-all</artifactId>  
</dependency>