自定义服务
服务编排
1、通过拖拽左侧工具栏组件图标至画布,再设置节点的属性,最后将各个节点拖拽连线起来,即完成了服务的编排
2、服务一般由开始节点、结束节点,以及操作节点和连线构成,如下图所示:
3、服务可以通过连线实现流程分支,在服务中节点的下级节点可以是一个,也可以是多个。当只有一个下级节点时不用设置连线的执行条件属性;当有多个下级分支节点时,只能有一个默认的连线,即不设置执行条件,其他连线需要设置执行条件(并行除外),执行的顺序是按设置条件的先后顺序依次判断执行条件是否返回true,返回true则执行该分支,否则继续判断下一个分支的执行条件,当条件分支都不返回true时,则执行默认连线的分支。即实现编程语言中的流程控制:
if(...)
...
else if(...)
...
else
...
如下图所示:
4、节点属性设置,可以是字符串常量,也可以通过执行表达式来设置值,凡属性框右侧有fx图标的都可以使用表达式。如下图所示:
服务定义
设置服务名称、编号以及服务的入参出参配置方法等,如下图所示:
属性 | 描述 | 是否必填 |
---|---|---|
服务名称 | 用于在服务列表显示 | 是 |
服务编号 | 服务执行的唯一标识 | 是 |
服务分类 | 对服务进行分类 | 否 |
输入参数 | 对服务的输入参数定义,可以点击右图标弹出参数设计器进行勾选 | 否 |
输出参数 | 对服务的输出结果定义,可以点击右图标弹出参数设计器进行勾选 | 否 |
匿名访问 | 定义服务否可以匿名访问 | 否 |
按钮
按钮 | 说明 |
---|---|
退出 | 建议使用该按钮退出服务的编排,退出时会检查保存状态并提示 |
放大 | 对画布放大显示,不改变节点尺寸 |
缩小 | 对画布缩小显示,不改变节点尺寸 |
顶部对齐 | 当选择多个节点时,可设置顶部对齐 |
左对齐 | 当选择多个节点时,可设置左对齐 |
右对齐 | 当选择多个节点时,可设置右对齐 |
底部对齐 | 当选择多个节点时,可设置底部对齐 |
删除 | 删除选择的所有节点 |
撤销 | 撤销对服务的修改 |
恢复 | 恢复对服务的修改 |
在线调试 | 当服务保存后,该按钮显示 |
保存 | 保存服务 |
另存为 | 将服务当前状态保存为一个新的服务 |
服务执行
1、服务执行时,创建上下文ctx(DataMap)作为服务的数据树,供各个节点设置和访问
2、服务的入参在上下文的param属性上,通过ctx.param访问
3、服务会将字符类型json格式的入参转换为:DataMap、List<DataMap>、Object[]以便于在节点中使用
4、服务执行从流程开始节点作为起点,按连线的箭头方向顺序执行各个节点,到流程结束节点服务执行结束并返回结束节点的返回值。(如果没有结束节点则返回最后执行节点的值)
DataMap方法说明
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
add | (String key,Object value) | DataMap | 添加对象 |
addAll | (Map map) | DataMap | 添加Map |
convert | (Class clazz) | Map | 转换Map值类型 |
getBigDecimal | (String key) | BigDecimal | 获取BigDecimal |
getBigDecimal | (String key,BigDecimal defaultValue) | BigDecimal | 获取BigDecimal |
getBoolean | (String key) | boolean | 获取布尔值 |
getBoolean | (String key,boolean defaultValue) | boolean | 获取布尔值 |
getDate | (String key) | Date | 获取日期 |
getDate | (String key,Date defaultValue) | Date | 获取日期 |
getDouble | (String key,Double defaultValue) | Double | 获取Double |
getDouble | (String key) | Double | 获取Double |
getInteger | (String key) | Integer | 获取整数 |
getInteger | (String key,Integer defaultValue) | Integer | 获取整数 |
getLong | (String key) | Long | 获取长整数 |
getLong | (String key,Long defaultValue) | Long | 获取长整数 |
getString | (String key,String defaultValue) | String | 获取字符 |
getString | (String key) | String | 获取字符 |
getValue | (String key,Object defaultValue) | Object | 获取对象值 |
load | (Object[] objects) | DataMap | 加载对象数组 |
Result方法说明
接口返回结果,Result继承至DataMap,实例对象也同时拥有DataMap的方法
方法 | 参数 | 返回值 | 说明 |
---|---|---|---|
error | (String message,Object ext) | Result | 失败结果 |
error | 无 | Result | 失败结果 |
error | (String message) | Result | 失败结果 |
ok | (String message,List result,Object ext) | Result | 成功结果 |
ok | (String message,List result) | Result | 成功结果 |
ok | 无 | Result | 成功结果 |
ok | (List result) | Result | 成功结果 |
ok | (List result,Long size) | Result | 成功结果 |
ok | (String message) | Result | 成功结果 |