InfoPlusDataAPI - infoplus/docs GitHub Wiki
流程数据API
概述
- 此组API提供对流程数据的强类型查询
- 使用GraphQL协议
- 支持多租户参数(参数 tenant 和 X-Tenant-ID),参考Multitenancy
- 类型按流程区分,而非按流程版本
- 多版本流程以上线版主表单结构为准
- 否则,以该流程产生的最大流水号的正式流水的主表单结构为准。
表单数据类型
- 完整解释参考表单控件
数据类型 | 缩写 | 说明 |
---|---|---|
string | str | 字符 |
anyURI | URI | URI链接地址 |
XHTML | XH | 富文本 |
integer | int | 整型 |
double | dbl | 浮点型 |
boolean | bln | 布尔型 |
date | dte | 日期,Unix时间戳,记录了1970年1月1日(00:00:00 GMT)以来的秒数 |
datetime | dtm | 时间,Unix时间戳,记录了1970年1月1日(00:00:00 GMT)以来的秒数 |
time | tm | 时间,记录了从00:00:00到该时刻以来的秒数 |
User | Usr | 用户账号,KV格式 |
Organize | Org | 组织机构,KV格式 |
Code | Co | 代码表,KV格式 |
File | Fi | 文件(JSON格式) |
Thing | Th | 物品,KV格式 |
Location | Loc | 位置类型,采用WGS84坐标系 |
Signature | Sig | 数字签章 |
- 注:KV格式是指,该字段存储key(比如用户帐号),字段_Name存储显示内容(比如用户姓名),字段_Attrs存储其他属性。
通用类型定义
表单字段类型对应的Key/Value类型定义
# 用户
type User {
code: String
text: String
}
# 组织机构
type Organize {
code: String
text: String
}
# 代码表项
type Code {
code: String
text: String
}
# 物品
type Thing {
code: String
text: String
}
其他类型定义为标量(scalar)
# URL链接地址,实际类型为 String
scalar anyURI
# 富文本,实际类型为 String
scalar XHTML
# 日期,实际类型为 Int,Unix时间戳
scalar date
# 时间日期,实际类型为 Int,Unix时间戳
scalar datetime
# 时间,实际类型为 Int,记录了从00:00:00到该时刻以来的秒数
scalar time
# 数字签章,实际类型为 String(JSON格式)
scalar File
# 位置类型,实际类型为 String,采用WGS84坐标系,逗号分隔
scalar Location
# 数字签章,实际类型为 String(JSON格式)
scalar Signature
其他通用类型定义
# 下拉框数据项,符合[Provider代码表注解](https://github.com/infoplus/canvas-docs/wiki/Provider)
type DataSourceItem {
# @code
code: String
# @text
text: String
}
# 下拉框数据项查询方法
type Query {
# 默认查询
dataSourceItems(
# 搜索关键字
keywords: String,
# 按流程名、字段名过滤
filter: DataSourceItemFilter,
): DataSourceItemConnection
}
input DataSourceItemFilter {
# 流程代码
app: StringFilter
# 字段名称
field: StringFilter
}
input StringFilter {
eq: String
}
动态类型定义
- 每个类型按表单内容生成数据结构
类型名规约
- 根类型使用
流程代码
- 如重复节/表以
"group"
开头,则自动去掉"group"
- 重复节/表需以自身名称下划线拼接其父类型名构成完整类型名称,如
流程名_第一层重复节_第二层重复节
- 丢弃规则与字段名规约相同(参考下节)
字段名规约
-
改名规则:定义表单字段名到GraphQL类型字段名的映射
- 如字段以
"field"
开头,则自动去掉"field"
- 遇到
"-"
,转为"__"
双下划线 - 否则,表单字段名和类型字段名一致
- 如字段以
-
丢弃规则:
- 如类型字段名不符合GraphQL字段要求(含有特殊字符等),丢弃该字段
- 如字段改名后如果和其他未改名的字段冲突,则丢弃改名字段
- 如多个改名字段改名后冲突,都丢弃
-
通用属性定义(例)
type Foo {
# 流水号
_entry: Int
# 父对象类型引用,仅适用于子类型
_parent: {父对象类型}
}