Joseph.Wang 发表于 2023-4-28 10:18:37

解析企微审批数据

本帖最后由 Joseph.Wang 于 2023-7-14 08:41 编辑

本次和大家分享一下,在获取到企微审批详情数据后,如何解析该数据,转换成我们需要的格式。可能有些小伙伴会好奇,为什么要解析转换呢?获取到数据后,不能直接保存表里吗?那我们就先了解一下,企微的审批数据格式是什么样的。

对于企微的审批应用而言,会有很多的内置模板,也可以选择新建模板

每一个模板,都是由不同的控件组成

所以审批详情的数据,其实就是每个控件的内容,而这些内容可以通过调用“获取审批申请详情”接口获取到,就在apply_data里面

但获取到数据之后就会发现,不同的控件类型,返回的数据结构是不一样的,可能是这样

也可能是这样

而如果是明细控件,每一列的控件类型也可能不一样,就像这样

这些数据虽然是我们想要的,但是结构并不是我们希望的,使用起来很不方便。现在我们把数据进行解析,构造成“控件名称:控件内容”的结构,就像下面这样,不管是保存到数据表,还是返回给前端页面展示,其实都是OK的


目前我新建了一个模板,并且做了一条审批数据,工程文件中提供了两种测试的方法
1. 已经将接口的审批数据保存到了“源数据表”中,通过“从数据库表获取数据”服务端命令,取出表中的数据,解析后保存到主表、子表中

2. 通过调用接口的方式获取审批数据,解析后保存到主表、子表中。具体调用接口的方式不在这里展开讨论,结合企微接口文档和活字格的发送请求命令使用,也可以参考工程文件的实现方式


需要注意的是,解析控件数据的服务端命令并没有支持所有控件类型,目前支持的有:文本、多行文本、数字、金额、公式、日期、日期时间、单选、多选、成员、部门、位置、手机号、明细、关联审批单(以数组形式返回)。这个例子是提供给了一个思路,大家可以针对自己的需求进行修改和扩展,也欢迎大家多多交流,集思广益哈~




吾爱61 发表于 2023-7-13 19:20:15

老师您好,可否在控件里面 把审批节点也加上。
需要抓取审批人、审批时间、审批状态。

Joseph.Wang 发表于 2023-7-14 08:42:49

吾爱61 发表于 2023-7-13 19:20
老师您好,可否在控件里面 把审批节点也加上。
需要抓取审批人、审批时间、审批状态。
审批节点的字段应该是固定的,建议看下发送http请求插件下面的视频学习一下哈
https://marketplace.grapecity.com.cn/ApplicationDetails?productID=SP2104270003&productDetailID=D2304250041&tabName=Tabs_detail

吾爱61 发表于 2023-7-14 09:04:17


就是会有这种情况,很多人审批时,所有字段都长一样,就不知道怎么取值了

Joseph.Wang 发表于 2023-7-14 11:06:38

吾爱61 发表于 2023-7-14 09:04
就是会有这种情况,很多人审批时,所有字段都长一样,就不知道怎么取值了

sp_record的返回的是数组,数据是多条记录,可以通过循环的方式保存到您自己的表中,建议看下相关的视频先学习一下,视频中讲的很详细的
【已结束】发送http请求命令入门
https://gcdn.grapecity.com.cn/showtopic-158601-1-1.html
(出处: 葡萄城产品技术社区)

吾爱61 发表于 2023-7-17 13:57:26

老师,您好,关于明细表的地方再请教一下。因为我这有可能存在多个明细表
1、我这边现在在循环命令处 如选择添加,会导致 此命令如果执行多次,明细表会一直添加记录。
2、如选择添加/ 更新,会导致只更新第一个明细表
(更新条件: 当 企业微信审批单号==Item)

吾爱61 发表于 2023-7-17 14:00:28

吾爱61 发表于 2023-7-17 13:57
老师,您好,关于明细表的地方再请教一下。因为我这有可能存在多个明细表
1、我这边现在在循环命令处 如选 ...

前提条件是,这个命令我可能执行多次

Joseph.Wang 发表于 2023-8-1 17:26:17

吾爱61 发表于 2023-7-17 14:00
前提条件是,这个命令我可能执行多次

对于多个明细表的场景,返回的结果也是会包含多个明细的,然后结合自己的场景,逐个循环明细然后插入自己的业务表中就可以了
页: [1]
查看完整版本: 解析企微审批数据