一、宜搭
版本介绍
使用场景
在宜搭的应用中,通过以下几类页面来配合完成完整的业务场景需求的解决:
- 表单:存储或收集数据,通过权限配置实现不同角色人员能够拥有不同的数据增删改查、导入、导出等权限;
- 流程表单:通过审批流程完成特定的业务,例如请假、报销等需要多级审批的场景;
1.基本流程
2.高级流程
为满足丰富的流程需求,宜搭提供了高级的流程设计器,它不仅能满足普通设计器的几乎所有功能,还在此基础上增强了部分功能,例如增加了分支、聚合等组件;同时也对组件功能及设置进行了增强,区分基础和高级设置;执行人规则的重新制定、以及完成策略的设置;流程版本快捷上线和切换;规则设置的可视化。 - 报表:在一个页面中将表单、流程中的数据或自建业务系统的数据进行智能数据分析并产出报表;
- 自定义页面:通过低代码搭建展现或其他任何类型的自定义页,借助数据源或更丰富的组件实现应用Portal、复杂业务场景页;
- 外部链接:在当前应用中将已存在的外部系统添加到导航中;
我们的关注点在流程表单的使用场景。
关于高级流程:
不仅能满足普通设计器的几乎所有功能,还在此基础上增强了部分功能,例如增加了分支、聚合等组件;同时也对组件功能及设置进行了增强,区分基础和高级设置;执行人规则的重新制定、以及完成策略的设置;流程版本快捷上线和切换;规则设置的可视化。
高级流程详细介绍
服务回调
0.1 服务注册
服务注册是使用服务回调功能的前置步骤,即将需要使用到的第三方服务的接口注册到宜搭平台上来,主要的功能在于设置接口的出入参信息、验权加密信息、权限控制、接口描述信息等,以便在使用时可以快速引用。
1.1 单据服务校验/服务执行
主要可用于单据使用过程中的可能使用到服务回调的场景,从使用方式上来说可以细分为服务校验和服务执行
- 服务校验: 用于在表单提交时,调用业务服务接口校验数据的合法性,主要用于从业务侧判断用户提交参数的合法性,例如判断持有某个手机号的用户在本市主城区范围内是否拥有第二套住房,同步调用
- 服务执行: 用于在单据提交/编辑/删除成功后,执行第三方服务调用,主要用于实时同步用户提交的数据到第三方,多用于二次处理或者数据归档的场景,异步调用
1.2 流程服务校验/服务执行
- 校验规则: 流程发起/审批时,会调业务服务接口,根据返回的结果,判断是否能发起流程/审批.该场景是同步调用,会阻断数据提交
- 关联操作: 在节点审批后,或者流程结束后,回调业务系统。这种场景是通知业务用,采用异步调用,不阻断流程
1.3 流程节点动态获取审批人
通过宜搭侧提供的流程节点动态获取审批人的方式,通过调用客户侧提供的服务接口,来动态的获取流程所需的审批人。并且由于流程在执行过程中,中间的审批人可以修改表单内变量的值,后续的节点可以根据更正后的表单数据动态的获取流程审批人,来满足一些动态的、复杂的业务场景的需求。
1.4 流程发起/查看权限动态验证
该使用场景主要针对宜搭平台侧提供的提供的静态的权限组人员配置(包括:部门、个人、角色)都无法满足,但是企业服务中可以提供相关的根据人员id判断指定流程是否有用发起和查询权限接口,以便将宜搭的流程权限配置以企业既有的统一权限系统进行打通,那么就可以使用该方式完成消流程实例的发起人以及流程实例查看人的动态配置。
1.5 消息通知服务动态选择接收人
该使用场景主要针对宜搭平台侧提供的既有人员通知类型(包括:按参与人通知、按角色通知、按指定人员通知、按表单页面内的人员变量通知、指定邮箱、指定钉钉群)都无法满足时,但是企业服务中可以提供相关的人员查询接口,那么就可以使用该方式完成消息通知服务动态选择接收人的配置。
总结: 除了在节点操作可以提供回调,提供了更为丰富的权限验证,消息通知。
1.6外部对接API
外部对接宜搭API
-
流程实例API
- 发起流程
- 根据条件搜索流程实例ID
- 根据搜索条件获取实例详情列表
- 根据实例ID获取流程实例详情
- 删除流程实例
- 终止流程实例
- 根据实例ID批量获取流程实例详情
- 执行单个任务接口
- 获取审批记录
- 执行虚拟节点任务
- 流程实例更新
- 获取流程设计节点上的按钮列表
-
单据实例
- 新增单据实例
- 更新单据中指定组件值
- 删除单据实例
- 根据单据实例ID查询单据实例详情
- 根据条件搜索单据实例ID列表
- 根据条件搜索单据实例详情列表
- 获取表单定义
-
任务中心
- 已提交任务
- 待办任务
- 已完成任务
- 抄送我的任务(应用纬度)
- 抄送我的任务(企业维度)
- 任务转交
2.1 支持字段
1.表单字段
2.流程和表单内置字段
二、钉钉OA审批
企业使用的web系统需要在钉钉上实现智能工作流处理,可以选择复用钉钉官方工作流方案。企业内部开发者只需要专注于业务实现,将工作流处理流程托管到钉钉。
添加权限(前置操作)
添加应用工作流权限
回调数据
实例开始、结束
{"EventType": "bpms_instance_change","processInstanceId": "ad253df6-e175caf-xxxxxxxxxxxx","corpId": "corpidxxxxxxxxxxxxx","createTime": 1495592259000,"title": "自测-1016","type": "start","staffId": "er5875","url": "https://aflow.dingtalk.com/dingtalk/mobile/homepage.htm","processCode":"Pro-xxx"}
任务开始
{"EventType": "bpms_task_change","processInstanceId": "ce133dd0-5b22-9516-xxxxxxxxxxxx","corpId": "corpidxxxxxxxxxxxxx","createTime": 1495593189000,"title": "自测-1016","type": "start","staffId": "manager75","processCode":"Pro-xxx"}
任务结束
{"EventType": "bpms_task_change","processInstanceId": "ce133dd0-5b22-9516-xxxxxxxxxxxx","corpId": "corpidxxxxxxxxxxxxx","createTime": 1495593189000,"title": "自测-1016","type": "start","staffId": "manager75","processCode":"Pro-xxx"}
开放接口
- 创建或更新审批模板
- 获取当前企业所有可管理的模版
- 发起审批实例
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
approvers | String | manager01, manager02 | 审批人userid列表,最大列表长度20。多个审批人用逗号分隔,按传入的顺序依次审批。 |
- 终止审批流程
- 下载审批附件
- 获取审批实例ID列表
- 获取审批实例详情
- 获取用户待审批数量
- 获取指定用户可见的审批表单列表
- 添加审批评论
- 执行审批操作带附件
存在的问题:
1.无法得知具体审批节点
2.参与人设置更依赖钉钉本身,无法灵活的动态设置参与人
三、具体使用
在具体的日常使用中,我们可能更多是在下面两种场景下使用:一是在钉钉上直接自建流程表单,在钉钉上发起、审批、流转、结束,必要时可能还会借助他们提供的回调或者来通知外部应用。二是在钉钉上自建流程表单,在外部应用上发起,然后将数据通过提供的外部调用接口发起审批流程实例,主要使用他们的流程引擎,在数据流转过程中通过外部调用接口实时的进行数据交互。对于以上两种场景,钉钉OA工作流在第二点上功能比较单一,他的应用回调通过事件订阅来实现,只提供了两种订阅事件;同时对于数据的动态获取上,更依赖钉钉本身的通讯录。相比钉钉OA工作流,宜搭在这些功能上更加灵活和全面。
四、使用举例(以宜搭为例)
1.直接在宜搭上使用
在宜搭上搭建流程表单
- 设计表单
基本数据设计完成以后,我们可以通过回调接口来设置数据校验和表单内容变更通知。
服务校验: 用于在表单提交时,调用业务服务接口校验数据的合法性,主要用于从业务侧判断用户提交参数的合法性,例如判断持有某个手机号的用户在本市主城区范围内是否拥有第二套住房,同步调用
服务执行: 用于在单据提交/编辑/删除成功后,执行第三方服务调用,主要用于实时同步用户提交的数据到第三方,多用于二次处理或者数据归档的场景,异步调用。 详见
- 设计流程
基本流程转换以后,我们可以通过回调接口来动态获取审批人。通过调用外部服务提供的服务接口,来动态的获取流程所需的审批人。并且由于流程在执行过程中,中间的审批人可以修改表单内变量的值,后续的节点可以根据更正后的表单数据动态的获取流程审批人,来满足一些动态的、复杂的业务场景的需求。详见
- 使用
在宜搭中,找到对应的流程,进行发起审批等功能的使用。
2.外部发起流程实例
外部发起流程实例在前期的流程构建上基本和内部应用一致。
- 外部发起对接:
我们可以在我的应用-具体应用-应用数据页面获取应用参数和应用密钥,然后调用提供的接口 发起流程
当我们在外部应用上完成发起后,后续流程的流转交由宜搭来实现,在具体的流转过程中,可以通过回调外部应用实时的数据完成权限校验,同时将审批结果同步到外部应用中。