跳到主要内容

获取应用数据接口详解

问题描述

在调用openAPI获取应用数据接口时,会常常遇到body中字段不清楚如何传,比如申请人信息怎么传?查询某个字段时的内容该怎么传?等等

文档作用

会详细说明如何传值。

接口详解

**请求方式:**POST

**请求地址:**https://api.qingflow.com/app/:appkey/apply/filter(公有云版本)

请求地址中:appkey为需要替换的变量,根据实际获取值更新,示例如下:

POST https://api.qingflow.com/app/1fa752c0/apply/filter

其他版本请求地址:

钉钉版本:https://api.ding.qingflow.com/app/:appkey/apply/filter

专有轻流:http(s)://xxx.xx(自有域名)/openApi/app/:appkey/apply/filter

参数说明(路径参数)

参数必须说明
appKey应用ID,获取方式见下方

appkey应用id,点击某应用,即可在链接地址中获取,如下图:也可以在应用基本信息中获得(下图)

请求头(Header)

参数必须说明
accessToken调用接口凭证。获取方法请查看“文档”
userId非必填说明:用户的userId,type值为非8的情况下需要传输用户信息,不传不报错但是数据获取为空。

accessToken获取方式获取路径:【轻商城】——【插件中心】——【第三方连接】——「openapi」超级管理员accessToken:拥有工作区创建者权限,可以调用除「code登录接口」外所有openAPI接口。可直接在轻流系统中获取,如下:子管理员accessToken:子管理员accessToken拥有对应子管理员的权限,能调用这个子管理员权限内可调用的接口。获取方式为:首先生成关联子管理员权限secret(如下图),再通过接口,由wsid(下文有详解)和secret获取。重置secret会让已获取过的accessToken失效。

请求体(Body)

参数必须类型说明
pageSizeint每页数据条数,注意pageSize最大可填200
pageNumint请求页码
typeint获取个人待办事项:1;获取已办事项:2;获取我发起的已通过:3;获取我发起的已拒绝:4;获取我发起的草稿:5;获取我发起的待完善:6;获取我发起的流程中:7;获取全部数据:8;(不传默认为type=8)获取抄送事项:12
sorts[array]排序情况
queId
int字段Id,specialQueId可见文档,具体queId获取见下方
isAscend[boolean]是否升序,true:升序
queriesRelstring针对字段的查询条件之间逻辑关系,目前支持and、or,默认为and。多条件查询时在queries数组中以多个对象形式存在
queries[array]针对字段的查询条件
queIdint如果设置了筛选查询条件,此处为必填项,queId获取见下方
searchKeystring搜索关键字,搜索为模糊搜索
searchKeys[array]数组内的字段为或条件搜索,当searchKey不为null的时候此字段会被忽略,搜索为模糊搜索
minValuestring数字模块中,是搜索结果中最小值,日期类型,就是最早日期
maxValuestring数字模块中,是搜索结果中最大值,日期类型,就是最晚日期
scopeint筛选数据范围, 1:全部,2:已填写,3:未填写
searchOptions[array]单选多选中,搜索答案中包含这些选项的申请,由optionId组成
searchUserIds[array]成员字段中,搜索答案中包含这些userId的申请
queryKeystring模糊搜索全部字段数据的key值
applyIds[array]指定申请的applyId

queIdqueId获取方式方式1、通过调用获取应用表单信息接口获取应用表单信息接口方式2、通过后台开发者工具去获取,打开浏览器按Fn+12 点击network,然后清除数据safari获取方式 点击打开某条数据,然后点击该条数据的applyid,在预览中找到到该字段的queidGoogle获取方式 通过后台开发者工具去获取,打开浏览器按Fn+12,点击network,然后清除数据点击打开某条数据,然后点击该条数据的applyid,在response中找到到该字段的queid方式3、直接发起一条数据,然后在右侧的apply,右击拷贝为curl,导入到postman中

请求体示例

{
"pageSize": 50,
"pageNum": 1,
"type": 1,
"sorts": [
{
"queId": 1,
"isAscend": true
}
],
"queriesRel": "and",
"queries": [
{
"queId": 0,
"searchKey": "ss",
"searchKeys": [
"aa",
"bb"
],
"minValue": "",
"maxValue": "",
"scope": 1,
"searchOptions": [
100
],
"searchUserIds": [
"abc"
]
}
],
"queryKey": "",
"applyIds": [
1
]
}

PS:对于地址字段、富文本字段、定位字段、数据关联字段、部门字段都参考单行文字的传参方式

对于部门字段,参考单行文字的传参方式,需要传部门的名称

对于引用字段,参考单行文字的传参方式,需要传引用数据的ID

对于图片选择,参考多项选择的传参方式

针对不同字段数据的请求体

默认获取全部应用数据

由于是接口属于是分页接口,所以如果是手动请求,需要手动更新pageNum的值,比如由1变为2,表示,请求下一页50条数据。这里需要注意的是pageSize最大可填200。

{
"pageSize": 50,
"pageNum": 1
}

获取某人发起的数据,且流程状态是已通过的

这里需要注意的是Header中userId需要传对应的成员的userId,否则查询出来的数据为空。type=3表示获取我发起的已通过。

{
"pageSize": 50,
"pageNum": 1,
"type": 3
}

获取全部应用数据,且按照申请时间进行升序排序

queId=2是默认代表申请时间,一些系统字段queId都是默认的,具体可以查阅specialQueId可见文档

{
"pageSize": 50,
"pageNum": 1,
"sorts": [
{
"queId": 2,
"isAscend": true
}
]
}

根据数据ID查询指定数据

数据ID获取方式:URL页面获取:打开数据详情页,找到applyid

{
"pageSize": 50,
"pageNum": 1,
"applyIds": [
1
]
}

获取应用数据,获取某个字段未填写的数据

scope==3,代表未填写的状态

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"scope": 3
}
]
}

单行文字字段

获取全部应用数据某个单行文字字段包含值或者等于特定值

注意:这里是模糊搜索,如果应用数据中queId=289084275的数据中有值包含单行文字就会被查询出来,即为模糊搜素。

所以如果想要精确查询,见方式三,即minValue和maxValue都为一样的值。

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"searchKey": "单行文字"
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"searchKeys": [
"单行文字"
]
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"minValue": "单行文字",
"maxValue": "单行文字"
}
]
}
获取全部应用数据某个单行文字字段包含特定值1或特定值2

注意:虽然是或关系,但是搜索也属于是模糊搜索。

{
"pageSize": 50,
"pageNum": 1,
"queriesRel": "or",
"queries": [
{
"queId": 289084275,
"searchKey": "单行文字"
},
{
"queId": 289084275,
"searchKey": "测试"
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084275,
"searchKeys": [
"单行文字",
"测试"
]
}
]
}
获取全部应用数据某个单行文字字段等于特定值1或特定值2

这里是精确搜索

{
"pageSize": 50,
"pageNum": 1,
"queriesRel": "or",
"queries": [
{
"queId": 289084275,
"minValue": "单行文字",
"maxValue": "单行文字"
},
{
"queId": 289084275,
"minValue": "单行文字2",
"maxValue": "单行文字2"
}
]
}

数字字段

注意:筛选时,数字字段需要body中加上"queType": 8

获取全部应用数据数字字段等于特定值

注意:数字字段筛选使用minValue和maxValue这两个参数。等于特定值的话,就将minValue和maxValue写为一样的即可。

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084277,
"queType": 8,
"minValue": "1",
"maxValue": "1"
}
]
}
获取全部应用数据数字字段为一段区间值

比如需要筛选数字字段queId=289084277的值,1<=数字字段<=111.

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084277,
"queType": 8,
"minValue": "1",
"maxValue": "111"
}
]
}

日期字段

获取全部应用数据某个日期字段为特定值

注意:minValue和maxValue中需要将日期字段格式补齐才能进行筛选。虽然表单设置日期字段为年月日,但是接口查询需要写为年月日时分秒。筛选等于特定值,即minValue和maxValue等于相同值

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084279,
"minValue": "2024-10-23 00:00:00",
"maxValue": "2024-10-23 00:00:00"
}
]
}
获取全部应用数据某个日期字段为一段区间值

比如需要筛选日期字段queId=289084279的值,"2024-10-23 00:00:00"<=日期字段<="2024-10-24 00:00:00".即使日期字段表单设置为年月日格式,但是查询时需要将格式补齐。

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084279,
"minValue": "2024-10-23 00:00:00",
"maxValue": "2024-10-24 00:00:00"
}
]
}

起止时间

获取全部应用数据某个起止时间等于特定值

注意:searchKey中需要将日期字段的格式补齐。虽然表单设置日期字段为年月日,但是接口查询需要写为年月日时分秒。

精确搜索

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084280,
"searchKey": "2024-10-23 00:00:00~2024-10-31 00:00:00"
}
]
}
获取全部应用数据某个起止时间包含某个时间段的数据

比如筛选起止时间包含时间范围为2024-10-23~2024-10-25.仅仅是包含,如果一条数据的时间范围比如是2024-10-24~2024-10-31,该条数据就不会被筛选出来,因为这只能算是有交集,并不能代表包含。

注意:即使日期字段表单设置为年月日格式,但是查询时需要将格式补齐。

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084280,
"minValue": "2024-10-25 00:00:00",
"maxValue": "2024-10-31 00:00:00"
}
]
}

单选选择/下拉选择

获取全部应用数据某个单项选择/下拉选择值包含A值或者等于特定值

方式一:模糊搜索,单项选择/下拉选择值包含某个值

方式二/方式三:精确搜索,单项选择/下拉选择值等于特定值

关于选择类字段获取对应的选项ID方法:

方法一:调用获取应用表单信息接口获取optId方法二:浏览器开发者工具获取F12打开控制台Safari浏览器Google浏览器

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084283,
"searchKey": "未命名1"
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084283,
"searchOptions":[
105061432
]
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084283,
"minValue": "未命名1",
"maxValue": "未命名1"
}
]
}

多项选择

获取全部应用数据某个多项选择值包含A值

只有模糊搜索

方式一和方式二都是筛选选择了未命名1或者未命名2的数据。

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084285,
"searchKeys": [
"未命名1",
"未命名2"
]
}
]
}
{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084285,
"searchOptions": [
105061438,
105061439
]
}
]
}

成员字段

获取全部应用数据某个成员字段包含A值

只有模糊搜索

成员ID获取,可以在工作区通讯录中直接获取,获取调用工作区通讯录接口。

接口获取:获取工作区全部成员

{
"pageSize": 50,
"pageNum": 1,
"queries": [
{
"queId": 289084298,
"searchUserIds": [
"1692729",
"55556",
"886986"
]
}
]
}