业务管理平台流程对接说明
说明
本流程对接是指:外部服务可以通过接口启动德索业务管理(审批)平台中的业务流程,并能获得流程审核结果的过程。外部系统可以查询流程审核进度,但目前还不能参与审批。
交互时序
外部系统与业务审批系统的整体交互时序如下:

常用对接场景
按使用场景对接口进行组合,下面介绍几个常用的场景。
场景一:启动流程
- 获取认证 token;
- 调用启动流程接口。
场景二:下发流程
- 获取认证 token;
- 调用下发流程接口。
场景三:查询流程信息
- 获取认证 token;
- 调用查询流程列表接口;
- 调用查询流程和表单明细接口;
- 查询流程表单中的影像资料。
场景四:查询待办
- 获取认证 token;
- 调用查询待办列表接口;
- 调用查询流程和表单明细接口;
- 查询流程表单中的影像资料。
场景五:代办任务委派给外部系统处理
举例说明:例如流程有一个节点要求用指定的某个外部系统来发送邮件。流程走到该节点时会产生一条事件(发出事件),外部系统通过轮询查询接口查到有需要处理的事件后,进行处理(如发送邮件)后,再通知流程服务已完成(完成事件)。
- 获取认证 token;
- 调用查询事件列表接口;
- (调用者处理流程事件);
- 调用事件完成接口。
接口报文示例(Postman 版)
先用 Postman 导入接口定义文件,即可看到将用到的接口。典型的调用顺序如下:
- 登录,获取 token,后续接口调用时要用到。
token 指的是登录接口返回 header 里面的 Authorization 字段。后续的接口请求需要在请求头上带上 Authorization。
- 外部服务修改流程业务表单。
通过该接口重置业务表单。
- 发起流程。
发起流程且验证通过后流程处于第二个节点,该接口需要根据上一步中设置好的业务表单,传入表单控件的数据。
- 下发流程。
下发完成后流程处于第一个节点,该接口根据 processKey 和 accountId 参数确定下发的流程和账号。表单控件的数据可不填,在业务审批系统代办界面点击处理后,完成表单的初始化,并填写表单控件的数据。
- 分页查询流程列表。
- 分页查询待办列表。
- 查询流程信息。
- 查询流程明细。
- 查流程表单中的影像资料。
接口请求参数说明
1、登录接口
POST /crm/login/jwt
| 字段 | 名称 | 取值说明 |
|---|---|---|
| username | 德索crm账号 | |
| password |
2、设置业务表单
POST /crm/dms/processBiz/{serviceId}/{processKey}/{accountCustomerType}/bizItems
| 字段 | 名称 | 取值说明 |
|---|---|---|
| serviceId | 服务id。此为url参数 | 见接口 获取服务id |
| processKey | 流程定义key。此为url参数 | 业务管理平台中“流程维护”页面 |
| accountCustomerType | 客户身份类型。此为url参数 | 见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| items | 表单控件列表 | List |
| Items[0].key | 表单控件key,同表单里面需唯一 | String |
| Items[0].label | 表单控件名称 | String |
| Items[0].controlType | 表单控件的类型 | 见接口 获取控件元信息 |
| Items[0].datasourceCode | 表单控件的数据源。 如下拉框控件有很多选项,数据源就是指这些选项的出处。 | 业务管理平台中“审批业务维护”页面的“审批业务数据源维护”子页面 |
| Items[0].required | 是否必须 | boolean |
3、启动流程
POST /crm/dms/service/processes/{processKey}/start
| 字段 | 名称 | 取值说明 |
|---|---|---|
| accountId | 客户账号Id | String经纪类客户:0+资金账号 |
| accountNo | 客户账号 | String如资金账号 |
| accountCustomerType | 客户类型 | 见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| serviceId | 服务id | String见接口 获取服务id |
| deptStrategyStep | 流程部门修改阶段(可选) | 0不管流程部门 1检查流程部门 2带流程部门提交 |
| processDeptCodes | 指定的流程部门(deptStrategyStep为2时必填) | List如总部["0000000"] |
| withoutDeptVerify | 跳过验证账号部门权限(可选) | boolean |
| formItems | 表单列表 | List |
| formItems[0].key | 表单控件key | String |
| formItems[0].value | 表单控件值 | 不同控件的值是不一样类型的,每类控件的值可参见 获取控件元信息 |
| describe | 描述信息(可选) | String |
| fileIds | 上传附件(可选) | List |
| result | 流程分支(可选) | String |
4、下发流程
POST /crm/dms/processes/{processKey}/only-start
请求参数为 启动流程 接口参数(表单列表可不传)的列表
5、查询流程
POST /crm/dms/process/instances/involved
| 字段 | 名称 | 取值说明 |
|---|---|---|
| involvedMe | 我是否参与 | boolean |
| accountName | 账户名称 | String,支持模糊查询 |
| accountNo | 账户号码 | String |
| accountNos | 账户号码列表 | List |
| accountCustomerType | 客户身份类型 | String,见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| accountCustomerTypes | 客户身份类型列表 | List,见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| accountDeptCodes | 账户所属部门列表 | List,见接口 获取部门 |
| processName | 流程名称 | String,见接口 获取流程 |
| processKeys | 流程编号列表 | List,见接口 获取流程列表 |
| status | 流程实例状态 | 完成completed, 终止terminated, 进行中active |
| withLabel | 是否查询标签 | boolean |
| labels | 投资者标签 | List ,见接口 获取标签 |
| bizOwnerServiceIds | 关联外部系统 | List,见接口 获取服务id |
| createEmpCode | 发起人员工编号 | String |
| createTimeRange | 流程发起时间的范围 | DateRange start和end两个属性,属性为Date类型 |
| endEmpCode | 流程结束人员工编号 | String |
| endTimeRange | 流程完结时间的范围 | DateRange |
| claimEmpCode | 流程处理人员工编号 | String |
| claimTimeRange | 流程处理时间的范围 | DateRange |
| claimTaskName | 处理节点名称 | String,claimEmpCode不为空 |
| sorts | 排序方式 | 默认t.updateTime_asc |
6、查询代办
GET /crm/dms/process/tasks
| 字段 | 名称 | 取值说明 |
|---|---|---|
| handledMe | 我处理过的 | boolean |
| accountName | 账户名称 | String,支持模糊查询 |
| accountNo | 账户号码 | String |
| accountNos | 账户号码列表 | List |
| accountBizType | 账户业务类型 | String,见接口 获取码表值, commonCode=ACCT_BIZ_TYP |
| accountCustomerTypes | 客户身份类型列表 | List,见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| accountDeptCodes | 账户所属部门列表 | List,见接口 获取部门 |
| processName | 流程名称 | String,见接口 获取流程 |
| processKeys | 流程编号列表 | List,见接口 获取流程 |
| taskName | 节点名称 | String,支持模糊查询 |
| createEmpCode | 发起人员工编号 | String |
| roleCodes | 当前账号角色列表 | List |
| withLabel | 是否查询标签 | boolean |
| labels | 投资者标签列表 | List,见接口 获取标签 |
| bizOwnerServiceIds | 关联外部系统 | List,见接口 获取服务id |
| sorts | 排序方式 | 默认createTime_desc |
7、查询流程信息
GET /crm/dms/process/instances/{processInstanceId}
| 字段 | 名称 | 取值说明 |
|---|---|---|
| processInstanceId | 流程实例id | 查询流程接口或查询代办接口返回的processInstanceId字段 |
8、查询流程表单明细
GET /crm/dms/process/instances/{processInstanceId}/detail
| 字段 | 名称 | 取值说明 |
|---|---|---|
| processInstanceId | 流程实例id | 查询流程接口或查询代办接口返回的processInstanceId字段 |
9、查询流程影像资料
GET /crm/dms/process/instances/{processInstanceId}/material
| 字段 | 名称 | 取值说明 |
|---|---|---|
| processInstanceId | 流程实例id | 查询流程接口或查询代办接口返回的processInstanceId字段 |
10、查询流程事件
GET /crm/dms/v2/services/activitiEvent?businessType={businessType}
| 字段 | 名称 | 取值说明 |
|---|---|---|
| businessType | 事件类型 | 必选。对接时双方约定。 |
| idStart | 起始id | 可选。分页查询用。 |
| pageSize | 页大小 | 可选。分页查询用,默认10 |
| status | 事件的状态 | 可选。默认active 已完成completed 进行中active 终止terminated |
| accountBizType | 流程账户的业务类型 | 可选。String,见接口 获取码表值, commonCode=ACCT_BIZ_TYP |
11、完成流程事件
POST /crm/dms/v2/services/activitiEvent
| 字段 | 名称 | 取值说明 |
|---|---|---|
| eventId | 事件id | 必选。对接时双方约定。 |
| eventResult | 事件处理结果 | 必选。完成completed 终止terminated |
| terminateReason | 终止原因 | 可选。eventResult=terminated时必选。 |
| formItems | 需要携带的表单信息 | 可选。在处理事件后可以返回一些信息回写到流程表单,提供给流程审核者进行核对或者留档用。 传值参考接口(3、启动流程)的formItems项。 |
其他接口
以下为对接过程中常用的辅助查询接口:
- 获取流程列表:
GET /crm/dms/processes - 获取控件元信息:
GET /crm/dms/form/controlTypes - 获取码表值:
GET /crm/dms/codes?commonCode= - 获取服务列表:
GET /crm/dms/services - 获取部门列表:
GET /crm/dms/departments - 获取标签列表:
GET /crm/dms/accounts/labels
接口返回参数说明
Tips
HTTP code 在 200–299 内均表示成功,其他均为失败。以下为部分接口返回值的字段说明。
启动流程
POST /crm/dms/service/processes/{processKey}/start
| 字段 | 名称 | 取值说明 |
|---|---|---|
| processInstanceId | 流程编号 | |
| processKey | 流程key | |
| processDefineId | 流程定义id | |
| processName | 流程名称 | |
| customerId | 客户id | |
| accountName | 账号姓名 | |
| accountId | 账号id | |
| accountNo | 账号号码 | |
| accountCustomerType | 账号客户类型 | 见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| accountBizType | 账号业务类型 | 见接口 获取码表值, commonCode=ACCT_BIZ_TYP |
| accountDeptCode | 账号部门 | 见接口 获取部门 |
| firstUserTask | 第一个节点 | |
| status | 流程实例状态 | 完成completed, 终止terminated, 进行中active |
| createEmpCode | 创建者 | |
| endEmpCode | 终止人员 | |
| endTime | 终止时间 | |
| endReason | 终止原因 | |
| describe | 描述信息 | |
| createTime | 创建时间 | |
| updateTime | 更新时间 | |
| allowCrossDeptLaunch | 允许跨部门发起 | |
| activeInstMultiple | 允许多个实例 | |
| allowCreatorAudit | 允许发起者参与审核 | |
| allowAuditAttachment | 允许审核者上传附件 | |
| allowDescribe | 允许发起时备注和附件 | |
| allowQuickLaunch | 允许快速发起 | |
| ldmAuditNode | 需要ldm审计的节点 | |
| previousProcessInstanceId | 上一流程实例id | |
| canTerminateNodes | 可终止节点列表 | |
| itemInitialized | 是否初始化表单 | |
| copyPerAccount | 是否复制到每个账号 | |
| canIssueNodes | 可处理节点列表 | |
| businessId | 外部业务数据id | |
| bizOwnerServiceId | 关联外部服务id | |
| externalFormId | 表单外部表单id | |
| serviceId | 服务id | |
| customerAccount | 账号和客户信息 | 同查询流程明细account+customer字段 |
| version | 版本号 | |
| processDescription | 流程描述信息 | |
| fileIds | 附件文件id列表 | |
| investorProperties | 投资者属性 | |
| verifyList | 验证列表 | |
| finished | 是否完成 |
分页查询流程列表
POST /crm/dms/process/instances/involved,返回值的content为查询出的流程列表,列表详情如下
| 字段 | 名称 | 取值说明 |
|---|---|---|
| processInstance | 流程相关信息,同启动流程接口返回值字段详情 | |
| account | 账号信息,信息详情如下 | |
| customerId | 客户id | |
| accountId | 账号id | |
| accountNo | 资金账号 | |
| accountBizType | 账号业务类型 | 见接口 获取码表值, commonCode=ACCT_BIZ_TYP |
| accountStatus | 帐号状态 | 0销户,1有效 |
| accountName | 账号姓名 | |
| accountFullName | 账号全称 | |
| accountCustomerType | 账号客户类型 | 见接口 获取码表值, commonCode=ACCT_CUST_TYP |
| deptCode | 账号主部门 | 见接口 获取部门 |
| openAcctDate | 开户日期 | |
| writeoffDate | 销户日期 | |
| srcType | 创建渠道 | base-info手工创建 broker居间 counter柜台 |
| accountCategory | 账号类别 | 内部-部门账号inner 内部-员工账号emp 客户账号customer |
| accountLabelList | 账号标签列表 | |
| accountLabelList.acctId | 账号 | |
| accountLabelList.label | 标签 | |
| accountLabelList.createTime | 创建时间 | |
| accountLabelList.createEmpCode | 创建者 | |
| tasks | 任务信息列表,列表详情如下 | |
| id | 任务id | |
| processInstanceId | 流程实例id | |
| processDefineId | 流程定义id | |
| name | 节点名称 | |
| taskDefineKey | 节点编号 | |
| createTime | 创建时间 | |
| claimTime | 审批时间 | |
| description | 描述 |
分页查询待办列表
GET /crm/dms/process/tasks,返回值的content为查询出的代办列表,列表详情如下
| 字段 | 名称 | 取值说明 |
|---|---|---|
| task | 任务相关信息,同分页查询流程列表接口返回值tasks详情字段 | |
| processInstance | 流程相关信息,同启动流程接口返回值字段详情 | |
| account | 账号信息,同分页查询流程列表接口返回值account字段 | |
| biz | 业务信息,详情如下 | |
| code | 业务编号 | |
| name | 业务名称 | |
| accountBizType | 业务类型 | 见接口 获取码表值, commonCode=ACCT_BIZ_TYP |
| enable | 是否启用 | |
| createTime | 创建时间 | |
| updateTime | 更新时间 | |
| bizScope | 业务对象 | singleAccount单客户账户 multiAccount多客户账户 innerDept营业部 innerEmp员工 |
| orderNo | 排序编号 | |
| copyPerAccount | 是否复制到每个账号 | |
| options | 流程分支列表,如[“通过”,”驳回”] |
查询流程信息
GET /crm/dms/process/instances/{processInstanceId}
返回字段同启动流程接口返回值字段详情
查询流程明细
GET /crm/dms/process/instances/{processInstanceId}/detail
| 字段 | 名称 | 取值说明 |
|---|---|---|
| biz | 同分页查询待办列表接口的biz | |
| account | 同分页查询待办列表接口的account | |
| processInstance | 同分页查询待办列表接口的processInstance | |
| customer | 客户信息 | |
| customerId | 客户id | |
| customerType | 客户类型 | 0自然人 1非自然人 |
| customerName | 客户名称 | |
| customerFullName | 客户全称 | |
| deptCode | 客户部门 | 见接口 获取部门 |
| oriDeptCode | 原始部门 | 见接口 获取部门 |
| idType | 证件类型 | 见接口 获取码表值,commonCode= ID_TYP |
| idNo | 证件号 | |
| extraCode | 附加码 | |
| raxRegNo | 客户税务登记号 | |
| licenseNo | 客户营业执照号 | |
| entityType | 客户来源类型。 | 默认值1 |
| createDate | 创建日期 | |
| createTime | 创建时间 | |
| srcType | 渠道来源 | base-info手工创建 broker居间 counter柜台 |
| originalCustomerId | 原客户id | |
| amlRiskCode | 客户洗钱风险等级 | |
| amlRiskCodeName | 客户洗钱风险等级名称 | |
| idNos | 证件列表 | |
| idNos.idType | 证件类型 | 见接口 获取码表值,commonCode= ID_TYP |
| idNos.createDate | 创建日期 | |
| idNos.createTime | 创建时间 | |
| idNos.customerId | 客户id | |
| idNos.idNo | 证件号 | |
| idNos.extraCode | 附加码 | |
| formItems | 表单列表信息 | |
| comments | 流程的附件+意见 | |
| id | Id | |
| userId | 处理人 | |
| message | 处理人意见 | |
| time | 时间 | |
| taskId | 任务id | |
| taskName | 任务名称 | |
| processInstanceId | 流程实例id | |
| attachmentInfos | 附件信息 | |
| attachmentInfos.id | 附件id | |
| attachmentInfos.name | 附件名称 | |
| attachmentInfos.description | 描述信息 | |
| attachmentInfos.url | 附件url | |
| attachmentInfos.time | 时间 |
查流程表单中的影像资料
GET /crm/dms/process/instances/{processInstanceId}/material
返回值为 {影像编码 :[影像文件列表]}的格式,文件字段详情如下
| 字段 | 名称 | 取值说明 |
|---|---|---|
| id | 文件id | |
| fileSize | 文件大小 | |
| fileExtName | 文件拓展名 | |
| fileContentType | 文件类型 | |
| fileOriginalName | 文件名称 | |
| fileChunkKey | 文件分片key | |
| empCode | 上传者账号 | |
| imageSourceFileChunkKeys | 文件原图分片key | |
| compressSourceFileChunkKey | 文件未压缩文件分片key | |
| createTime | 创建时间 | |
| updateTime | 更新时间 | |
| temp | 是否临时 |
获取流程列表
GET /crm/dms/processes
主要关注字段
| 字段 | 名称 | 取值说明 |
|---|---|---|
| key | 流程key | |
| bizCode | 流程业务编码 | |
| name | 流程名称 |
获取控件元信息
GET /crm/dms/form/controlTypes
| 字段 | 名称 | 取值说明 |
|---|---|---|
| code | 控件类型 | |
| name | 控件名称 | |
| valueType | 控件值类型 |
获取码表值
GET /crm/dms/codes
| 字段 | 名称 | 取值说明 |
|---|---|---|
| commonCode | 码表类型 | |
| commonCodeName | 码表类型名称 | |
| commonIdValue | 码表值 | |
| commonIdValueName | 码表值名称 | |
| commonIdValParent | 上级码表值 | |
| commonIdValGroup | 码表值分组 | |
| commonIdValSeq | 码表值排序 |
获取服务列表
GET /crm/dms/services
| 字段 | 名称 | 取值说明 |
|---|---|---|
| id | 服务id | |
| name | 服务名称 | |
| enable | 是否可用 |
获取部门列表
GET /crm/dms/departments
| 字段 | 名称 | 取值说明 |
|---|---|---|
| deptCode | 部门编码 | |
| deptName | 部门名称 | |
| parentDeptCode | 上级部门编码 |
获取标签列表
GET /crm/dms/accounts/labels
标签值列表
接口返回示例
HTTP code 在 200–299 内均表示成功,其他均为失败。
成功示例(200 OK):

失败示例(401 Unauthorized):

{
"code": 401,
"success": false,
"data": null,
"message": "用户名或密码错误"
}
