# 3.3.1回写规则

回写规则支持配置多个，主要包括选择数据库表、规则配置和提交方式几部分需要配置。

![](/uploads/projects/report/202605/18b0d412afcccd99.png)

图3.3.1.1 回写规则配置

#### （1）选择数据表

配置回写规则需要选择数据库表，数据库表从下拉列表分别选择库、模式和表。需要先在云研发中心的公共设置 - 数据源管理下配置了数据源，回写规则这里才能选到对应的数据库。

![](/uploads/projects/report/202605/18b0d412b0abede1.png)

图3.3.1.2 数据源管理

数据源管理下成功配置数据源并测试连接通过后，在回写规则中数据库下拉列表会显示出来，选择自己要用的库即可。

![](/uploads/projects/report/202605/18b0d412b250aa78.png)

图3.3.1.3 回写规则选择数据库

选择数据库后，模式会自动加载出来，同样从下拉列表选择，MySQL数据库默认模式为DEFAULT，仅有这一个模式可以选择，Oracle数据库和Postgre数据库选择表所在的模式即可。

选择模式后，表会自动加载下拉列表，从下拉列表中选择数据要保存的表，支持通过搜索快速找到表。

![](/uploads/projects/report/202605/18b0d412b33f0b64.png)

图3.3.1.4 回写规则选择模式和表

#### （2）配置规则

选择表后，点击“批量添加字段”，会弹框显示当前表中所有可用的字段，可批量勾选全部添加，也可以仅添加需要用到的字段。

![](/uploads/projects/report/202605/18b0d412b410d24c.png)

图3.3.1.5 批量添加字段

添加“批量添加单元格”，会关闭回写规则配置界面并弹出一个批量添加单元格的界面，通过点击界面上的单元格，可以快速完成单元格和字段的绑定。

![](/uploads/projects/report/202605/18b0d412b4d2d225.png)

图3.3.1.6 批量添加单元格

批量添加单元格后效果如下：

![](/uploads/projects/report/202605/18b0d412b5c149f1.png)

图3.3.1.7 批量添加单元格效果

批量添加完成后，点击确定，会关闭批量添加单元格弹出框，重新打开回写规则配置界面，此时回写规则的字段和单元格是完成了绑定的。

![](/uploads/projects/report/202605/18b0d412b69c35e8.png)

图3.3.1.8 回写规则字段和单元格绑定成功

移除字段可以移除已经添加的不需要使用的字段，勾选后点击移除字段即可。

![](/uploads/projects/report/202605/18b0d412b796a3dd.png)

图3.3.1.9 移除字段

添加临时字段可创建一个临时字段，此字段不会写入数据库，仅临时生成，一般用于做校验等。

![](/uploads/projects/report/202605/18b0d412b8719747.png)

图3.3.1.10 添加临时字段

回写规则需要为字段设置主键，主键用于更新和删除的情况，需要根据设置的主键对数据做更新或删除。回写规则中设置的主键和数据库的主键不是一个概念，回写规则设置的主键仅在提交做数据更新和删除时使用。回写规则的主键可以是一个字段或多个字段，在主键列勾选即可。

![](/uploads/projects/report/202605/18b0d412b947f64e.png)

图3.3.1.11 设置主键

双击值的位置可以打开值编辑器配置界面，“批量添加单元格”是默认将字段和单元格绑定，但也支持字段绑定其它内容，比如：字符串、自增编号或参数。

![](/uploads/projects/report/202605/18b0d412ba35aade.png)

图3.3.1.12 值编辑器

字段绑定字符串需要在输入框的位置输入文本内容，数据提交时，会将此处输入的文本内容绑定到对应的字段上。

![](/uploads/projects/report/202605/18b0d412baef8964.png)

图3.3.1.13 字段绑定字符串

字段绑定单元格则是将页面上对应配置的单元格的内容进行提交。

![](/uploads/projects/report/202605/18b0d412bbc0497e.png)

图3.3.1.14 字段绑定单元格

自增编号可以按照一定的规则自己生成有规律的编号，自增编号需要关联对应的单元格，比如针对编号做自增，关联单元格需要配置编号所在的位置即B3单元格，用于修改更新。

![](/uploads/projects/report/202605/18b0d412bc8395e9.png)

图3.3.1.15 字段绑定自增编号

最小位数、连字符、编号前置规则和编号后置规则决定了自增编号以怎样的规则进行自增，比如想要生成“TEST-01、TEST-02 …… TEST-N”这样一串编号，可以按照下面的规则进行配置。

![](/uploads/projects/report/202605/18b0d412bd47357c.png)

图3.3.1.16 自增编号配置

需要对编号加后缀时，在后置规则配置即可。前置规则和后置规则除支持固定值外，还支持获取当前年、当前年月和当前年月日。

![](/uploads/projects/report/202605/18b0d412be24d4a7.png)

图3.3.1.17 自增编号规则支持配置

自增批次编号和自增编号相似，都是为了自动生成编号，自增编号是每条数据生成一个编号，而自增批次编号则是每次提交生成一批编号，这一批的编号是一样的。自增批次编号的配置方式和自增编号一致。

![](/uploads/projects/report/202605/18b0d412bef11838.png)

图3.3.1.18 自增批次编号

值除了绑定字符串、单元格和自增编号外，还支持绑定参数。参数分为数据集参数、公共参数和模板参数，数据集参数是当前添加到左侧的数据源列表的数据集所带的参数，因此通过下拉列表选择即可。配置公共参数可通过资源树选择公共参数下的所有参数，配置模板参数则是当前工作表自己的模板参数，也是通过下拉列表选择。

字段绑定参数是将参数的值绑定到每一条回写入库的数据上，不修改参数时会提交默认值入库，修改后则按照修改的值提交入库。

![](/uploads/projects/report/202605/18b0d412bfc333bb.png)

图3.3.1.19 字段绑定参数

结合云报表填报中的审核标识可实现直接在填报报表中进行该流程的审核。配置入口需点击配置规则页面的设置按钮，如下图3.3.1.20所示。

![](/uploads/projects/report/202605/18b0d412c0a1c09e.png)

图3.3.1.20 选项配置

使用该标识需要先了解标识含义。下文将详细介绍标识含义

1.  标识无：适配以前的逻辑；
2.  标识审核：可以配置不同的值进行相关的流程审核操作，最多可以配置四个，操作不可重复；如下图3.3.1.21所示

![](/uploads/projects/report/202605/18b0d412c192af11.png)

图3.3.1.21 审核标识操作

1.  下一节点操作人：当流程中审核节点指定下一节点操作人，并且审核节点绑定的报表配置了审核 标识，这时审核报表可以配置下一节点操作人标识一起使用
2.  前置ID：获取该流程的前置ID

字段标识审核和字段下一节点操作人用于审核节点，一般在填报中设置审核标识后建议勾选该节点的隐藏工具栏。下文将举例具体讲解功能和效果。

首先，需要构建一个流程，流程如下图3.3.1.22所示。其中审核1节点指定审核2节点操作人。

![](/uploads/projects/report/202605/18b0d412c3599738.png)

图3.3.1.22 新建流程

新建审核1节点云报表资源，如图3.3.1.23所示。绑定的报表中字段 opinion1 为文本控件，绑定审核标识，字段 Nextuser2 为下拉复选控件（真实值需填写用户 id），绑定下一节点操作人标识，审核1节点的填报详情如图3.3.1.24所示。

![](/uploads/projects/report/202605/18b0d412c5290d46.png)

图3.3.1.23 新建审核1节点报表资源

![](/uploads/projects/report/202605/18b0d412c7c1bfdc.png)

图3.3.1.24 新建审核1节点填报属性

保存流程后，点击该流程的填报发布。触发流程后，当进行到审核1节点时，我们只需要在opinion1字段填写：“同意”且在 Nextuser2字段选择下一节点操作人，点击提交后即可进行到审核2节点，如图3.3.1.25所示。

![](/uploads/projects/report/202605/18b0d412ca7af8be.png)

图3.3.1.25 审核1节点操作

在使用标识时需注意一下几点：

-   填报节点绑定的报表不支持使用下一节点操作人标识；
-   当流程中节点设置了指定下一节点操作人，那其绑定的报表必须配置下一节点操作人标识，且人员必 须为流程中指定的下一节点操作人，不然点击提交时会抛出提示：未找到指定操作人员；如图3.3.1.26所示

![](/uploads/projects/report/202605/18b0d412cb69095e.png)

图3.3.1.26未指定人员抛错

-   当审核报表配置了审核标识，填报的值不对应任何操作时，点击提交时会抛出提示 ：未知流程操作，如图3.3.1.27所示。

![](/uploads/projects/report/202605/18b0d412ccf0c71a.png)

图3.3.1.27未知流程抛错

需先说明一下前置ID 标识的使用场景，在下述流程中，填报人配置了 A、B、C、D 共 4 个用户，审核人是同一个用户，填报节点中任何一个用户填报都会触发审核任务，且需要4个填报人都填写。这种情况下审核人会收到 4 个审核任务，但内容是一样的（因审核节点没有对数据做区分）。为了方便用户操作，理想情况应该是只做一次审批就能将4个填报人上报数据进行审核。但是流程中只能做到用户在审核节点对其中 1 个审核任务处理后还剩余 3 个任务的状态是未处理，故审核人需要重复操作 4 遍才能完成该节点所有人员审批操作。因此增加了自动保存节点任务id 和前置任务 id功能，希望在某一个任务中实现批量审核，达到上述理想情况。

实现上述场景需要在填报节点绑定的报表回写规则中勾选上“自动保存节点任务 ID”， 这样填报任务在上报时会生成一个 auto\_fillmyptaskid字段存储当前任务的id。后续的审核节点绑定的报表在回写规则中需将auto\_fillmyptaskid的值设置为“前置任务 ID”，这样勾选数据审核的时候会根据前置任务 id 将对应的流程都往下进行处理。

详情请看下列步骤：

1.  新建填报报表，页面展示和填报都使用 lj 员工表，拖入字段编号和姓名进行展示和填报。因为后续审核节点需要批量审批，则必须在填报节点的填报属性页面勾选自动保存节 点 ID。新建报表页面和填报属性页面如下图3.3.1.28和3.3.1.29所示。

![](/uploads/projects/report/202605/18b0d412ce5b5246.png)

图3.3.1.28新建填报报表

![](/uploads/projects/report/202605/18b0d412cf5cd95f.png)

图3.3.1.29设置填报报表回写规则

1.  新建审核报表，将 lj 员工表中的编号、姓名、审核意见和 auto\_fillmyptaskid 字段拖 入工作表中，如下图所示。需注意，auto\_fillmyptaskid 是提交后才会生成的，首次使用可能 没有此字段，可自行创建或在视图页面提交一次生成此字段。审核报表填报页面如图3.3.1.30所示。

![](/uploads/projects/report/202605/18b0d412d045220f.png)

图3.3.1.30新建审核报表

1.  在审核报表回写规则中分别配置审核标识和前置任务 id。此示例中将备注配置设为审核标识，详细讲解上文所示。设置页面如图3.3.1.31所示。

![](/uploads/projects/report/202605/18b0d412d191e99c.png)

图3.3.1.31回写规则设置审核标识

1.  因 auto 类型的字段都无法添加到回写规则中，故派生一个临时字段用来获取 auto\_fillmyptaskid 的值，此示例中派生“节点 02”这个临时字段，从 E2 单元格取值，并将其设置为“前置任务 ID”。回写规则配置页面如图3.3.1.32所示。

![](/uploads/projects/report/202605/18b0d412d29c73ed.png)

图3.3.1.32回写规则设置前置ID标识

1.  配置完报表后，新建一个流程，简单流程即可。如图3.3.1.33所示

![](/uploads/projects/report/202605/18b0d412d36e1352.png)

图3.3.1.33新建流程

1.  按照前文所述的场景，填报节点需要配置至少两个操作人，且需要去掉默认勾选的“该节点所有人员完成后流转”勾选框。如图3.3.1.34所示。

![](/uploads/projects/report/202605/18b0d412d4874ca0.png)

图3.3.1.34设置流程中填报节点

1.  审核节点默认配置即可，因为要批量审核，只配置一个操作人。如图3.3.1.35所示。

![](/uploads/projects/report/202605/18b0d412d57b087e.png)

图3.3.1.35设置流程中审核节点

1.  保存流程后发布流程，填报节点配置的账号 lj1001 和鲁娟账号分别收到填报任务， 两个账号正常上报。
2.  登录审核节点的操作人 lj1001 账号，在其任务列表存在两条审核任务。如图3.3.1.36所示。

![](/uploads/projects/report/202605/18b0d412d77ef41c.png)

图3.3.1.35登陆lj1001查看我的任务审核数据

1.  之前的操作是，需要对两个任务分别进行审核，即使两个审核任务的内容完全一样。增加前置任务 id 标识后，点击第1个审核任务，进入审核页面，勾选两个填报任务填报来的数据（可以看到其 auto\_fillmyptaskid 不一致，分别来自于两个填报节点），选择审核意见，点击提交。页面显示如图3.3.1.36所示。

![](/uploads/projects/report/202605/18b0d412d864076f.png)

图3.3.1.36批量审核

1.  提交成功后，两个任务的状态均从未处理变为“审核通过”，实现了通过一个任务进行批量审核。如图3.3.1.37所示

![](/uploads/projects/report/202605/18b0d412d96e6730.png)

图3.3.1.36批量审批成功

使用前置ID功能时需要注意以下几点:

1.  此功能仅限于独立型任务，联合型任务不支持，即需要去掉“所有人员完成后流转”；
2.  需要操作批量审核的节点，其上一节点使用的报表必须勾选自动保存节点任务 ID， 不能跨节点使用；
3.  当前节点如果使用了批量审核，其下一节点就不能再继续使用，至少要跨一个节点， 因为批量审核会导致任务无法取到原本属于自己的 auto\_fillmyptaskid。

#### （3）配合提交方式

字段绑定完后需要配置提交类型，目前支持4种提交类型：自动、删除、插入、更新。

![](/uploads/projects/report/202605/18b0d412da3f62db.png)

图3.3.1.20 提交类型

自动是判断是否配置了主键，若存在则做更新提交，若不存在则做插入提交。

删除是根据配置的主键对要提交的数据进行删除处理。

插入是对要提交的数据做插入处理，如果主键存在，则页面会提示插入-主键已存在，如图3.3.1.21所示。如果主键不存在，则插入一条新的数据。

![](/uploads/projects/report/202605/18b0d412db3ec2b4.png)

图3.3.1.21 插入-主键已存在

更新是判断主键是否存在，如果主键存在，则更新这条数据，如果主键不存在，则忽略这条数据。

自动保存操作用户和操作时间会在回写表中自动生成4个字段：auto\_filluser、auto\_fillalias、auto\_filltime、auto\_fillprocessid，分别存放填报的用户名、用户别名、填报时间和关联流程ID，用于追溯填报相关记录。不勾选自动保存操作用户和操作时间则不会生成这4个字段，即使已经生成过字段，不勾选也不会保存这些信息。

![](/uploads/projects/report/202605/18b0d412dbf5e147.png)

图3.3.1.22 自动保存操作用户和操作时间

日期字段作为主键，填报的数据格式必须跟填报字段的类型一致，填报字段是datetime，填报的数据也该是datetime的格式；不然就用字符类型。