官方数据库说明
官方数据库为草料提供独立的云数据库,同步你后台的数据。可以使用数据分析软件连接这个云数据库,制作数据报表;或写程序主动调用数据,对接其他系统。
- 官方数据库为只读数据库,不可编辑
- 数据库类型为Mysql 5.7
- 按已启用的同步配置和范围,同步码信息、表单记录、处理进度动态、待办、状态明细和计划完成明细等数据。
- 只创建批量模板和表单,没有填写数据,是不会创建数据表的。
使用方法
草料后台导航栏【数据管理】>【数据API】,选择【官方数据库】。填写申请信息后,会自动开通该功能,并推送数据。首次同步需要处理已有数据,完成时间取决于数据量和同步进度。

数据库示例
- 类型:MySQL5.7
- 主机:rm-bp1m4fy8d66u3c6xmbo.mysql.rds.aliyuncs.com
- 端口:3306
- 数据库名:cli_202112111(示例)
- 用户名:cli_202112111(示例)
- 密码:eiadk289djlgj(示例)
数据报表示例
可以通过官方数据库将数据推送到多维表格或者BI工具中,自定义制作数据看板。 bi工具有一定的使用门槛,使用难度大于多维表格; 以下工具都为外部应用,需要额外收费,您可按自身的业务需求选择使用。
1. 将数据推送到飞书、wps等多维表格中,制作基础数据看板
2. 将数据推送到百度sugarbi、powerbi等bi工具中,看板内容更加丰富
更多案例效果: 可视化看板案例合集
通用字段解释
说明:这些字段是一些关键信息,主要用于各表之间数据关联
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| code_id | int | 码的唯一标识 | 54349863 |
| tpl_code_id | int | 批量模板的唯一标识 如果非模板生码,tpl_code_id与code_id相同 | 54349863 |
| member_id | int | 成员唯一标识 | 2091263 |
| auth_id | int | 填表人唯一标识 | 12789054 |
| record_id | int | 表单数据唯一标识 | 16759806 |
常用模型

模型一:设备状态分析
base_codeinfo(码的基本信息表)内关联code_state(码的状态表),得到各设备的状态值与更新时间,分析状态分布。

模型二:计划完成情况
code_task_log(计划执行情况表) 左关联 base_codeinfo(码的基本信息表),得到计划完成情况并与之对应的码信息。

模型三:批量码分析
template_XXXXXX (批量码信息表)左关联 table_dXX(表单数据表)、code_state(码的状态表)。template_XXXXXX可以获取到码的可变内容信息。

模型四:串联后续表单记录
比如在故障上报的记录里,添加维修记录表单,将这两条记录串联起来得到完整的信息。添加后续动态功能介绍
使用table_dxx(故障上报表)左关联table_dxx(维修记录表单),关联条件是 记录编号和来源编号。如果还有更多后续表单,可以再左关联此表单。

各数据表字段说明
1. base_codeinfo 码的基本信息表
说明:当账号下有二维码信息时会推送该表,包含活码、模板子码
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| code_id | int | 码的唯一标识 | 67654543 |
| 码名称 | string | 码名称 | 消火栓01 |
| 码类型 | string | 有活码、模板子码和模板码 | 模板子码 |
| url | string | 二维码链接 | http://qr61.cn/o2eikt/q85Q8KL |
| tpl_code_id | int | 子码对应的批量模板ID 非模板子码,内容与code_id相同 | 56335353 |
| 模板名称 | string | 子码对应的批量模板名称 非模板子码,内容与码名称相同 | 消火栓 |
| 目录 | string | 码所在的最后一级目录名称,不包含前几级目录信息 | 消防设备 |
| 标签集 | string | 码的分组集合 | 消防类,设备 |
目录信息:为码所在的最后一级目录,不会显示其上几级目录信息。
2. code_state 码的状态表
说明:当二维码中有关联的状态时会推送该表。查看状态功能 现在不会推送在开通之前的码状态数据,如需要这部分数据,可以联系在线客服,由技术手动帮你同步。
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| code_id | int | 码的唯一标识 | 67654543 |
| member_id | int | 成员唯一标识 | 2091263 |
| auth_id | int | 填表人唯一标识 | 12789054 |
| 更新时间 | datetime | 状态更新时间 | 2020-11-20 15:00:00 |
| 例:设备运行状态_720 | string | 状态组名称,后面"_720"数字是为了防重复,系统自动生成的标识 | 正常 |
| ...... | string | 账号下的所有状态组都会列在这里 | 异常 |
3. code_state_log 码的状态的变更日志表
说明:当二维码中有关联的状态时会推送该表,每次状态变更的记录都会记录在这张表中。首次开通数据库时,不会推送在开通之前的状态变更数据。
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| code_id | int | 码的唯一标识 | 67654543 |
| member_id | int | 成员唯一标识 | 2091263 |
| auth_id | int | 填表人唯一标识 | 12789054 |
| 更新时间 | datetime | 状态更新时间 | 2020-11-20 15:00:00 |
| 状态组 | string | 状态组的名称 | 设备状态 |
| 状态值 | string | 该状态组的本次的状态 | 正常 |
| 变更方式 | string | 变更状态的方式,包含填表后更新状态和手动编辑状态 | 记录/编辑 |
| 来源 | string | 变更方式为记录时,对应表单数据的唯一标识 | 12220988 |
4. table_dXX 表单数据明细表
说明:当账号下有表单数据提交时会推送该表。表单数据表是以"table_"开头的一批表,d后面跟着的是数字,即表单的唯一编号,如:table_d45,一个表单对应一个表。查看表单功能

| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| record_id | int | 表单数据唯一标识 | 12220988 |
| code_id | int | 码的唯一标识 | 67654543 |
| tpl_code_id | int | 模板子码:对应的批量模板ID 非模板子码:内容与code_id相同 | 54349863 |
| 码名称 | string | 码的名称 | 消火栓01 |
| tpl_id | int | 表单的唯一标识 | 346636 |
| 记录单名称 | string | 表单的名称 | 消火栓检查 |
| 记录时间 | datetime | 添加表单数据时间 | 2020-11-20 15:20:00 |
| 状态 | string | 这条记录当前的状态:包含是否删除、是否审核通过 | 正常/删除/待审核/审核通过/审核不通过 |
| member_id | int | 协作成员唯一标识 | 2091263 |
| auth_id | int | 填表人唯一标识 | 12789054 |
| 记录编号 | string | 表单数据的编号 | L1234 |
| 处理状态 | string | 表单数据的处理状态 | 待处理/已完成/无需处理/暂不标记状态 |
| 创建来源 | string | 包含手机扫码填写,在备注中填写,即后续动态中填写 | 手机扫码填写/在备注中填写 |
| 来源编号 | string | 当创建来源为在备注中填写时,来源编号为原记录的记录编号 | L1235 |
| 提交编号 | string | 草料后台自定义的提交编号 | 11 |
| 处理状态变更时间 | datetime | 处理进度变更的时间 | 2020-11-20 15:20:00 |
| 例:设备名称 | string | 表单的组件名称 | 检查项1 |
| ...... | string | 表单的组件名称会全部展示 |
表单组件推送情况说明:
- 数字组件,推送时不会显示单位。
- 检查项组件中,不同的值代表的意思为:0=检查项未填写;1=检查项选勾;2=检查项选叉;3=检查项不选;当检查项“√”、“×”自定义名称后,推送时不会显示自定义的名称,仍为0、1、2、3。
- 检查项组件中备注添加的描述和图片不会推送。
- 定位组件会推送三个字段,包含定位中文信息、定位纬度、定位经度。
- 描述组件会推送,字段名称为描述组件对应的标题名称,字段值为描述组件添加的内容。
- 分组标题组件不会推送。
- 身份证组件的推送内容为拆分成多个字段展示,会拆分成身份证信息、身份证号、姓名、性别、民族、出生日期、住址,其中身份证信息展示内容为空,其他字段会填充对应的值。
- 多媒体组件(含图片、文件、视频、音频)都会以连接方式推送,点击链接可查看
5. base_table_data 表单数据汇总表
说明:当账号下有表单数据提交时会推送该表。这是一张所有表单记录的概要汇总表,上面有各表单记录中共有的字段信息,比如码名称、记录人、记录单名称等。 应用场景:比如有出入两个表单,可以通过这个表拿到所有出入数据,而不需要将出入两个数据表做聚合处理。
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| record_id | int | 表单数据唯一标识 | 12220988 |
| code_id | int | 码的唯一标识 | 67654543 |
| tpl_code_id | int | 模板子码:对应的批量模板ID 非模板子码:内容与code_id相同 | 56335353 |
| tpl_id | int | 表单的唯一标识 | 346636 |
| 码名称 | string | 码名称 | 消火栓01 |
| 记录单名称 | string | 表单名称 | 消火栓巡检 |
| 记录时间 | datetime | 添加表单数据的时间 | 2020-11-20 12:01:02 |
| 记录人 | string | 填表人姓名 | 李四 |
| member_id | int | 成员唯一标识 | 2091263 |
| auth_id | int | 填表人唯一标识 | 12789054 |
| 状态 | string | 这条记录当前的状态:包含是否删除、是否审核通过 | 正常/删除/待审核/审核通过/审核不通过 |
| 记录编号 | string | 记录编号 | L1234 |
6. template_codeinfo_XXX 批量模板创建的子码信息表
说明:当账号下有批量模板生成的子码时会推送该表,该数据表主要展示批量子码的可变内容。查看批量生码功能 命名方式为 template 开头,后面是批量模板的识别编号,该编号规则有两个历史版本。
6.1 命名规则:
- 方式一:后缀为dXX,d后面的数字为批量模板编号数字。比如后台的批量模板编号为M312,对应的数据表名为 template_codeinfo_D312

- 方式二:后缀为内部的批量模板ID。编辑批量模板,从网址中获取ID,见下图

6.2 数据字段说明:
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| code_id | int | 码的唯一标识 | 67654543 |
| tpl_code_id | int | 批量模板的唯一标识 | 56335353 |
| 状态 | string | 批量子码是否删除 | 正常 |
| ... | string | 以下字段是在批量模板中的可变内容 |
7. record_review_data 后续动态数据表
record_review_data 是已有的后续动态数据表。表单记录中添加后续动态或变更处理进度时,相关动态会进入这张表。了解后续动态。
已配置并启用官方数据库同步后,切换处理进度时填写的备注和附件会随本次动态自动同步,无需另行开启备注、附件同步。 相关记录仍需属于已有同步范围。
一次处理进度变更对应一条动态,以 review_id 为主键,通过 record_id 关联来源记录。同一条动态再次同步时更新对应行;多个附件保存在同一行中,不会每个附件单独生成一条进度动态。
| 列名 | 含义 |
|---|---|
review_id | 动态 ID,主键 |
record_id | 关联的来源记录 ID |
状态 | 该动态的数据状态,例如正常、删除;不是业务处理进度 |
来源 | 动态的添加来源;处理进度变更的值为“变更处理状态”,其他动态也可能是手动填写、填写表单记录等来源 |
文本内容 | 状态变更说明,以及本次填写的备注和附件占位文字 |
关键内容 | 处理进度变更时为变更后的进度名称;填写后续动态表单时为对应表单记录的数字 ID |
附件 | 附件地址及类型组成的 JSON 数组,以文本形式存储 |
填写人 | 执行本次操作的填写人信息,可能为空 |
手机 | 对应填写人的手机号信息,可能为空 |
填写时间 | 本次动态的创建时间 |
更新时间 | 本次动态的更新时间 |
注意:查询这次变更后的处理进度名称,应读取
关键内容,不要读取状态。填写人、手机等信息取决于原始数据的完整性。
备注和媒体如何显示
文本内容 的第一行是 将记录更新为 [状态名称]。有留痕内容时,追加换行,再按保存顺序拼接文字和媒体占位文字;没有备注或附件时,只保留状态变更说明。
例如,在设备维修场景中,处理人员将进度切换为“已完成”,填写“已更换损坏部件”,并上传现场照片和签名。同步后的 文本内容 为:
将记录更新为 [已完成]
已更换损坏部件[图片][签名]
此时 关键内容 为 已完成。这是说明性示例,不是真实客户案例。
媒体占位文字分别为 [图片]、[签名]、[文件]、[视频]、[语音]。音频已有成功转写结果时,文本中可能附带转写文字,并非所有音频都有转写结果。
附件格式
附件 保存附件 URL 和类型,不保存文件二进制。以下地址仅为结构示例:
[
{ "url": "https://example.com/repair-photo.jpg", "type": "image" },
{ "url": "https://example.com/signature.png", "type": "signature" }
]
type | 附件类型 |
|---|---|
image | 图片 |
signature | 签名 |
file | 文件 |
video | 视频 |
audio | 音频 |
没有附件时,该列可能为空字符串,不一定是 []。读取时先判断是否为空,再解析 JSON。
历史内容与核对方法
本次进度留痕同步改进不会自动补齐全部历史留痕。新产生的动态,或旧动态实际被重新同步时,才会按新的规则生成备注和附件内容。
可以选择一条属于同步范围的记录,变更处理进度并填写备注、上传图片。同步完成后,在 record_review_data 中按来源 record_id 找到这次动态,核对 来源、关键内容、文本内容 和 附件。同步需要处理时间,不能以操作后立即查不到数据判断内容已丢失。
8. base_task 计划基本信息表
说明:当账号下创建计划,并且开始执行计划后会推送该表。计划管理功能
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| task_id | int | 计划的唯一标识 | 33886 |
| 计划名称 | string | 计划名称 | 灭火器每月巡检 |
| 描述 | string | 计划描述 |
9. code_task_log 计划执行情况表
说明:当账号下创建计划,并且开始执行计划后会推送该表。开通数据库后,该表只推送之后新开始执行的计划周期数据;历史周期、开通时正在执行的当前周期计划数据不会推送。 该数据表中没有码名称信息,可以关联 base_codeinfo或template_XXX,扩充码的信息。
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| log_id | int | 当前计划任务的唯一标识 | 239168567 |
| task_id | int | 计划的唯一标识 | 33886 |
| 计划名称 | string | 计划名称 | 灭火器每月巡检 |
| code_id | int | 码的唯一标识 | 67654543 |
| 状态 | string | 该周期的执行状态 | 可选值:完成/未完成/即将超期/超期完成/超期未完成 |
| 开始时间 | datetime | 计划周期开始时间 | 2020-12-10 12:00:00 |
| 执行时间 | datetime | 状态变更的时间 | 2020-12-10 13:00:00 |
| 截止时间 | datetime | 该码在本周期的结束时间 | 2020-12-10 18:00:00 |
| 是否过滤 | string | 根据是否设置无需检查的条件进行过滤 | 可选值:是/否 |
| 变更方式 | string | 变更状态的方式 | 记录 |
| 来源 | int | 变更方式为记录时,对应表单数据的唯一标识 | 12220988 |
| 来源记录结果 | string | 变更方式为记录时,对应表单数据的记录结果 | 设备正常 |
10. code_tags 码的分组表
说明:当使用分组功能并且将码加入分组时会推送该表。查看分组管理功能
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| code_id | int | 码的唯一标识 | 67654543 |
| 例:1号楼灭火器 | int | 分组名称,如果该码在此分组下,则值为1 | 1 |
| 例:2号楼灭火器 | int | 分组名称 | 1 |
| ...... | int | 账号下的所有分组都会列在这里 |
11. base_members 成员信息表
说明:当账号下有高级成员添加时会推送该表,当前成员信息表仅同步高级成员信息,普通成员信息不会推送。查看成员功能
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| member_id | int | 协作成员的唯一标识 | 2091263 |
| 姓名 | string | 协作成员姓名 | 张三 |
| 手机号 | string | 协作成员手机号 | 135xxxx8934 |
12. base_auth_msg 填表人信息表
说明:当有表单记录提交或者状态更新记录时,会推送填表人信息表,填表人即填写表单或者变更状态的人员。查看填表人组件
- 如果未填写表单,则只展示auth_id
- 如果填写表单但是未使用填表人组件,则只展示auth_id,姓名为微信用户XXXX
- 如果填写表单并且使用了姓名、手机号、工号、车牌号、身份证等填表人组件后则展示对应字段的数据 | 字段名 | 类型 | 说明 | 示例 | |------|------|------|------| | auth_id | int | 填表人的唯一标识 | 12789054 | | 姓名 | string | 填表人姓名 | 李四 | | 手机号 | string | 填表人手机号 | 135xxxx8934 | | 工号 | string | 填表人工号 | D234 | | 车牌号 | string | 填表人车牌 | 浙A.12342 | | 身份证 | string | 填表人身份证 | 343xxxxxxxxxxxxx |
13. record_audit_data 记录审批工单表
说明:当提交待审批的记录或者记录被审批后会推送该表。查看审批功能
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
| auth_id | int | 审批工单的唯一标识 | 9001 |
| record_id | int | 审批工单关联记录的唯一标识 | 1001 |
| 状态 | string | 工单是否审批 | 待审核/通过/不通过 |
| 审核标题 | string | 多级审核设置的标题,单级审批内容为空 | 财务审核 |
| 指定审核人 | string | 由填表人或者前一级审核人指定的审核人,不指定时内容为空 | 张三 |
| 审核人 | string | 实际审核操作人 | 张三 |
| 审核时间 | datetime | 实际审核时间 | 2024-09-20 15:20:00 |
| 审核签名 | string | 实际审核人签署的签名图片地址,没有签署时内容为空 | https://ncstatic.clewm.net/rsrc/2024/1015/15/c12d5af513b275ba2465f923557a1f7c.png |
| 审核回复 | string | 实际审核人审批时填写的回复信息,未填写时内容为空 | 提交的内容不符合要求 |
| 创建时间 | datetime | 审批工单创建时间 | 2024-09-20 10:20:00 |
14. base_todo 待办数据表
待办数据 API 支持把来源于记录的待办同步到草料官方数据库和客户自建 MySQL,供外部报表或业务系统读取。目标表为 base_todo,主键为 todo_id。
这张表保存当前可见待办的最新状态,包含“待完成”和“已完成”。同一 todo_id 对应同一行,后续同步覆盖最新数据,不会把每次操作各存成一条历史流水。
启用与更新规则
先配置并启用数据库同步目的地。待办按已有表单、二维码同步范围进入目标数据库,无需逐项勾选独立的“待办推送时机”。待办创建、完成、信息变化及相关状态变化会触发同步更新。
待办规则中的人员通知开关、群机器人创建或完成通知,均与数据库同步不同。此处说明的是数据库同步能力,不是 HTTP 查询接口。
基本信息字段
| 列名 | 数据类型 | 说明 |
|---|---|---|
todo_id | BIGINT | 待办 ID,主键 |
编号 | VARCHAR(31) | 展示编号,例如 T123 |
标题 | VARCHAR(255) | 待办标题 |
状态 | VARCHAR(31) | 待完成、已完成 |
紧急度 | VARCHAR(31) | 紧急、普通、低;未设置时按普通同步 |
处理时限 | DATETIME | 截止时间,为空表示不设期限 |
创建人 | VARCHAR(127) | 创建人名称,无法取得时可能为空 |
创建时间 | DATETIME | 本轮待办创建时间 |
更新时间 | DATETIME | 待办最近状态变更时间,不等同于同步时间 |
完成信息字段
| 列名 | 数据类型 | 说明 |
|---|---|---|
完成人 | VARCHAR(127) | 已完成待办的完成人名称,无法取得时可能为空 |
completer_member_id | BIGINT | 完成人的成员 ID,可用于关联成员数据 |
完成时间 | DATETIME | 已完成时的完成时间 |
完成方式 | VARCHAR(31) | 直接完成、填写补充信息、填写表单 |
完成记录ID | VARCHAR(255) | 填写表单完成时关联的记录 ID;多个值用英文逗号分隔 |
完成说明 | TEXT | 完成动作提交的文字留痕,多段文字以换行拼接 |
完成附件 | TEXT | 完成动作附件的 JSON 数组文本 |
未完成时,完成信息通常为空,成员 ID 可能为 0,不能把所有缺失值都按 null 处理。完成人 是实际执行完成操作的人,与负责办理的“处理人”不同;这张表当前没有处理人和处理组列。
关联信息字段
| 列名 | 数据类型 | 说明 |
|---|---|---|
record_id | BIGINT | 产生待办的来源记录 ID |
来源记录编号 | VARCHAR(127) | 来源记录的展示编号 |
code_id | BIGINT | 关联二维码 ID,可关联 base_codeinfo |
tpl_id | BIGINT | 来源表单 ID,可关联 base_tables |
表单编号 | VARCHAR(31) | 来源表单的展示编号 |
sync_time | DATETIME | 本次同步写入的时间 |
数据库数字 ID、展示编号和表单编号是不同概念。例如 record_id 用于关联数据,来源记录编号 用于展示,不能混用。
二维码名称、表单名称可通过相关 ID 查询已有基础信息表,不是 base_todo 中的独立列。当前也不提供处理人来源、最近催办时间、完成耗时秒数等列。
完成方式与记录的关系
| 完成方式 | 如何读取完成内容 |
|---|---|
| 直接完成 | 不会因此自动生成完成表单记录 |
| 填写补充信息 | 提交的文字、附件可分别进入 完成说明、完成附件 |
| 填写表单 | 通过 完成记录ID 找到对应记录,进一步读取完成表单的业务内容 |
record_id 是产生待办的来源记录;完成记录ID 是完成待办时填写或关联的记录,两者含义不同。完成表单的业务字段不会全部展开为 base_todo 的独立列。
完成记录ID 是逗号分隔字符串,例如 12220988,12220989,不是 JSON 数组或单一数值。包含多个值时,应先拆分,再分别查找对应记录,不要把整串值作为一个记录 ID 做等值关联。
完成说明、完成附件 来自完成动作的留痕,不是待办的全部历史评论。存在多条历史完成动作时,取最后一条完成动作的留痕。
完成附件格式
完成附件 保存 JSON 数组文本,元素包含 type 和 url。以下地址仅为结构示例:
[
{ "type": "图片", "url": "https://example.com/completion-photo.jpg" },
{ "type": "文件", "url": "https://example.com/completion-report.pdf" }
]
类型为中文:图片、签名、文件、音频、视频。没有完成附件时可能为空字符串,不一定是 []。同步的是附件链接,不是文件二进制。
注意:
base_todo.完成附件的类型使用中文“图片”等;record_review_data.附件使用英文image等。两者应分别解析。
删除、隐藏与还原
| 情况 | 目标库表现 |
|---|---|
| 待办处于当前可见状态 | 保留该行,并同步最新信息 |
| 用户删除待办 | 删除对应待办行 |
| 已完成待办被新一轮待办替代,转为隐藏历史 | 删除旧待办对应行 |
| 来源记录删除,待办随之隐藏 | 删除对应待办行 |
| 来源记录还原,关联待办恢复 | 随同步重新写入对应数据 |
| 源待办已不存在 | 删除对应待办行 |
后续缩小同步范围,不会统一自动清理目标库中所有不再属于新范围的旧行。 调整范围后,不能假定数据库里的旧数据已经全部符合新筛选条件。
建表、补列与全量同步
第一次实际写入待办时,如果目标表不存在,同步程序会按需创建 base_todo;写入时发现所需列缺失,也会自动补列。无需先手工执行建表 SQL,但仅启用同步、还没有待办实际写入时,不一定能看到这张表。
自建 MySQL 需要保证连接正常,且同步账号具有写入以及必要的建表、改表权限。
全量同步包含当前待办回填,排在记录等数据同步之后,可能需要等待前面的步骤完成。回填范围是仍然有效、可见且属于同步范围的待办,不会恢复已删除或隐藏的历史待办。存量账号是否已完成补同步,需要核对实际同步结果。
这与处理进度历史留痕不同:待办全量回填不代表本次进度留痕改进会自动补齐全部历史内容。
待办当前态同步事件不计入数据 API 推送条数配额;这一规则不代表数据库服务免费,也不代表其他数据同步没有限制。查看推送数量说明。
如何确认同步结果
选择一条属于同步范围的待办,按 todo_id 核对 编号、状态 和来源 record_id。完成待办后,等待同步,再核对同一行的完成信息和 sync_time。如果采用填写表单完成,进一步拆分 完成记录ID 并核对对应记录。
如未查到数据,依次检查同步目的地是否启用、来源是否属于同步范围、待办是否已隐藏或删除,以及全量同步是否仍在处理前面的记录数据。自建 MySQL 还需检查连接和写入、建表、改表权限。
事件推送说明
1. 活码
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 单码新建 | 推送 | base_codeinfo | base_codeinfo新增一条二维码数据 |
| 单码新建-有状态关联 | 推送 | base_codeinfo、 code_state、 code_state_log、 table_d[x]、 table_relation、 base_table_data | 数据表新增一条数据 |
| 单码修改 | 推送 | base_codeinfo | base_codeinfo修改了调整的数据,会覆盖原数据 |
| 单码删除 | 推送 | base_codeinfo | base_codeinfo删除一条二维码数据 |
| 单码删除-有表单数据 | 推送 | base_codeinfo、 table_d[x]、 base_table_data | 数据表删除一条数据 |
| 单码删除-有状态关联 | 推送 | base_codeinfo、 code_state、 table_d[x]、 code_state_log、 base_table_data | 数据表删除一条数据 |
2. 批量模板
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 新建批量模板 | 不推送 | - | - |
| 新建批量模板-有状态关联 | 推送 | code_state、 code_state_log | code_state新增一条码模板的状态数据,code_state_log新增初始化状态下的码模板状态变更记录 |
| 修改批量模板标题 | 不推送 | - | - |
| 修改批量模板可变内容-无子码 | 不推送 | - | - |
| 修改批量模板可变内容-有子码 | 不推送 | - | - |
| 删除批量模板-有子码 | 推送 | base_codeinfo、 template_codeinfo_[x] | 数据表删除对应的数据 |
| 删除批量模板-有子码/表单数据 | 推送 | base_codeinfo、 template_codeinfo_[x]、 base_table_data、 table_d[x] | 数据表删除对应的数据 |
| 删除批量模板-有子码/关联状态 | 推送 | base_codeinfo、 template_codeinfo_[x]、 code_state、 code_state_log | 数据表删除对应的数据 |
| 新建子码 | 推送 | base_codeinfo、 template_codeinfo_[x] | 数据表新增对应的数据 |
| 新建子码-有状态关联 | 推送 | base_codeinfo、 template_codeinfo_[x]、 code_state、 code_state_log | 数据表新增对应的数据 |
| 删除子码 | 推送 | base_codeinfo、 template_codeinfo_[x] | 数据表删除对应的数据 |
| 删除子码-有状态关联 | 推送 | base_codeinfo、 template_codeinfo_[x]、 code_state、 code_state_log | 数据表删除对应的数据 |
| 删除子码-有表单数据 | 推送 | base_codeinfo、 template_codeinfo_[x]、 base_table_data、 table_d[x] | 数据表删除对应的数据 |
| 修改子码 | 推送 | base_codeinfo、 template_codeinfo_[x] | 如果是修改子码名称,变更base_codeinfo对应的记录,如果是修改子码可变内容对应的值,变更template_codeinfo_[x]对应的子码记录 |
3. 表单
以下事件都为有表单数据时的情况说明,无表单数据时都不推送
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 删除表单 | 推送 | table_d[x]、 base_table_data | 对应的table_d[x]删除所有记录,表结构保留,base_table_data删除对应表单的记录 |
| 新增表单组件 | 推送 | table_d[x] | table_d[x]新增一个组件字段,值为空 |
| 编辑表单组件 | 推送 | table_d[x] | table_d[x]中原来的组件字段保留,值为空,并新增编辑后的组件字段 |
| 删除表单组件 | 推送 | table_d[x] | table_d[x]中原来的组件字段保留,值为空 |
| 修改表单名称 | 推送 | table_d[x]、 table_relation | table_d[x]中修改表单的名称,table_relation修改对应表单的名称 |
| 表单数据提交 | 推送 | base_table_data、 table_d[x]、 table_relation、 base_auth_msg | 数据表新增对应的数据 |
| 表单数据待审核 | 推送 | base_table_data、 table_d[x]、 table_relation、 base_auth_msg | 数据表新增对应的数据,与单个记录添加的区别是:base_table_data、table_d[x]的字段中多一个审核状态 |
| 表单数据审核通过或者拒绝 | 推送 | table_d[x]、 base_table_data | table_d[x]、base_table_data中审核状态字段对应的值变更 |
| 表单数据修改 | 推送 | table_d[x]、 base_table_data | table_d[x]、base_table_data中修改指定的数据内容,覆盖原数据 |
| 表单数据删除 | 推送 | table_d[x]、 base_table_data | table_d[x]、base_table_data中删除指定的数据内容,表结构保留 |
4. 状态
状态相关数据的同步会延迟60s
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 新增状态组 | 不推送 | - | - |
| 修改状态组名称 | 不推送 | - | - |
| 修改状态项名称 | 不推送 | - | - |
| 新增/删除状态项 | 不推送 | - | - |
| 删除状态组 | 不推送 | - | - |
| 删除状态组 | 推送 | table_d[x]、 table_relation、 base_table_data、 code_state、 code_state_log、 base_auth_msg | code_state 如果有对应码的数据存在,则覆盖原数据,否则新增 |
| 删除状态组 | 推送 | table_d[x]、 table_relation、 base_table_data、 code_state、 code_state_log | code_state 如果有对应码的数据存在,修改前的状态组字段保留,值为空,新增修改后的状态组字段和对应的值 |
| 状态项修改后,二维码状态变更 | 推送 | table_d[x]、 table_relation、 base_table_data、 code_state、 code_state_log、 base_auth_msg | code_state 更新对应状态项字段的值code_state_log 新增状态变更数据 |
5. 计划管理
计划新增/修改后需要开始执行才会推送数据
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 计划新增 | 不推送 | - | - |
| 计划开始 | 推送 | base_task、code_task_log | 数据表新增对应的数据 |
| 计划超时 | 推送 | code_task_log | code_task_log 状态字段的值变更,执行时间字段自动填充状态变更时的时间 |
| 计划删除 | 推送 | base_task、code_task_log | 数据表删除对应的数据 |
| 计划删除 | 推送 | base_task、code_task_log | 如果计划名称修改,base_task对应的数据更新,覆盖原数据 |
6. 后续动态
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 后续动态功能开启 | 不推送 | - | - |
| 后续动态功能关闭 | 不推送 | - | - |
| 后续动态填写 | 推送 | record_review_data | record_review_data新增对应记录的数据 |
| 后续动态【表单】填写 | 推送 | record_review_data、 base_table_data、 table_d[x]、 table_relation、 base_auth_msg | record_review_data新增对应记录的数据,同时再走一遍表单数据提交的逻辑,其中table_d[x]数据中的来源编号字段为被关联表单记录的记录编号 |
| 后续动态填写后的记录删除 | 推送 | record_review_data | record_review_data对应的数据保留,状态字段变更为删除 |
| 标记处理进度 | 推送 | record_review_data | 按 review_id 新增或更新本次动态,包含变更后的进度名称、本次备注与附件 |
7. 目录
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 目录重命名 | 不推送 | - | - |
| 二维码移动目录 | 推送 | base_codeinfo | base_codeinfo 更新目录字段的值 |
| 目录删除 | 推送 | base_codeinfo、 template_codeinfo_[x]、 table_d[x]、 base_table_data、 code_state_log、 code_state、 code_task_log | 根据目录下的码删除所有的表数据,表字段保留,值为空 |
8. 成员
| 事件 | 是否推送 | 影响的数据表 | 数据表现 |
|---|---|---|---|
| 添加普通成员 | 不推送 | - | - |
| 添加高级成员 | 推送 | base_members | base_members新增对应的成员数据 |
| 高级成员姓名修改 | 推送 | base_members | base_members修改对应的成员数据 |
| 删除高级成员 | 不推送 | - | - |
9. 待办
待办创建、完成及信息变化按 todo_id 更新 base_todo;删除、隐藏及还原按待办同步规则处理。
常见问题
1. 二维码名称变更后,为什么表单数据表中的二维码没有更新
现在表单中的二维码名称是不更新的,如果你需要取出最新的二维码名称,可以左关联一下 base_codeinfo 这张表,关联的字段为 code_id。
2. 表单中的组件名称修改后,数据表中有两个组件,分别是修改前和修改后的。
这是正常的,修改组件后,会保留原组件字段。
3. 计划中已设置了过滤掉异常状态值码,但在数据表中还存。
数据表中会有所有的计划任务数据,是通过 【是否过滤】这个字段来判识该条计划是否有过滤。(另外,在状态变更后在下个周期过滤才生效)
4. 为什么开通后,连接数据库,推送的数据不全
先检查数据是否属于同步范围,以及该数据类型是否支持对应历史数据同步。全量同步需要逐步处理;待办回填在记录等数据之后,可能仍在等待。若同步未正常推进,可以联系在线客服排查。
5. 为什么我修改表单字段后,数据库中的字段没有更新
修改表单后不会触发数据库更新,只有当有新增或修改表单数据时,才会触发更新该数据表。所以只需提交一条新记录可以了。
6. Power BI如何链接我们的数据库
我们的数据库为Mysql,连接时数据库类型选择为Mysql,查看操作详情
7. 为什么没有动态数据表
动态数据是多类数据的汇总,包含表单数据,状态变更数据,在推送的数据表中没有动态数据表,您可以按需选择表单数据或者状态变更数据表进行推送
8. 是否能同时推送到多个平台
推送平台没有数量限制,可以用多个平台接受您账号下的官方数据库,并且多平台不会额外计算推送次数
9. 图片组件中多个图片地址是拼在一起的,如何可以获取到单张图片地址。
图片组件的数据格式为 urls_1,urls_2,...。并且图片的链接数量是不定的。
提供你一套函数来获取单张图片地址,这里的 照片_233233换成你自己的数据字段名称。
urls_1: SUBSTRING_INDEX(照片_233233, ',', 1)
urls_2: if( LENGTH(照片_233233) - LENGTH(REPLACE(照片_233233, ',', '')) >= 1, SUBSTRING_INDEX(SUBSTRING_INDEX(照片_233233, ',', 2), ',', -1) ,'')
urls_3: if( LENGTH(照片_233233) - LENGTH(REPLACE(照片_233233, ',', '')) >= 2, SUBSTRING_INDEX(SUBSTRING_INDEX(照片_233233, ',', 3), ',', -1) ,'')
urls_3: if( LENGTH(照片_233233) - LENGTH(REPLACE(照片_233233, ',', '')) >= 3, SUBSTRING_INDEX(SUBSTRING_INDEX(照片_233233, ',', 4), ',', -1) ,'')
后面依次类推。
10. 备注和附件同步需要单独开启吗?
不需要。先配置并启用官方数据库同步,属于同步范围的处理进度动态会携带本次备注和附件一起同步。
11. 处理进度同步到哪张表?怎样查询变更后的进度?
查看 record_review_data,筛选 来源 为“变更处理状态”的动态,读取 关键内容。状态 列表示动态的数据状态,不是业务处理进度。
12. 附件列保存文件还是链接?
保存链接和类型组成的 JSON 数组文本,不保存文件二进制。没有附件时可能为空字符串。后续动态附件的类型为英文,待办完成附件的类型为中文,解析时要区分。
13. 历史进度留痕会自动补齐吗?
不会。本次改进没有自动历史补齐;新动态或实际重新同步的旧动态才会按新规则生成内容。
14. 待办同步支持哪些数据库?base_todo 只保存待完成待办吗?
支持官方数据库和自建 MySQL。base_todo 同时保存当前可见的待完成、已完成待办,不保存完整操作历史。
15. 为什么数据库里没有“处理人”列?
当前 base_todo 未同步处理人和处理组。完成人 表示执行完成操作的人,不能代替处理人。
16. 来源记录 ID 和完成记录 ID 有什么区别?
record_id 指产生待办的来源记录;完成记录ID 指完成待办时填写或关联的记录。后者可能包含多个逗号分隔的 ID,应拆分后逐个查询。
17. 删除待办后,数据库对应行会怎样?
随同步删除。待办被新一轮待办替代而隐藏、随来源记录删除而隐藏,或源待办已不存在时,也会删除对应行;来源记录还原且待办恢复后,随同步重新写入。
18. 缩小同步范围后,旧数据会自动清掉吗?
不会统一自动清理。缩小范围与删除源待办是两种情况,查询时需留意目标库中可能保留的旧行。

