从一个小小的导入功能看产品经理功力

简道云 2024-04-04 12:59:32

众所周知,做B端产品会经常涉及到导入功能,TO B(business),即面向企业的产品。企业的核心是提高效率,降低成本。相比较单个的添加数据,批量导入功能恰恰能几十倍地提高操作者的工作效率。

导入功能

哪些场景涉及到批量导入?HRM系统员工信息的批量增加、商城系统会员数据批量创建、商品系统商品信息的批量创建、客户关系系统的线索批量创建等等。

那么谨以此文总结下导入功能的设计要素。

导入的几个步骤

一般来说,B端产品的Excel的导入处理逻辑,可以拆解出这么几个步骤:

上传Excel模板,解析模板文件;

校验模板文件中的字段,确认数据合法合规;

执行业务逻辑,一系列逻辑处理;

插入数据库表中,导入完成;

针对以上导入的4大核心点我们一一说明。

上传并解析模板

模板文件格式不对,例如只支持.xlsx格式文件,.csv文件,但是上传了.pdf,就会报错; 

模板文件体积太大,例如仅支持上传5MB以内的文件,但是上传了一个10MB的文件就会报错;

模板无法解析,由于一些Excel会加密,空白或者是已损坏无法打开,导致文件解析失败; 

模板数据量太大,例如只支持一次导入2000行数据,如果超过就会报错或者只取前2000条; 

模板格式错误,例如修改了模板的一些表头或者是列,导致无法解析匹配也会报错;

校验字段逻辑以及长度

1、比如批量导入员工表,需要字段有员工姓名、年龄、生日、身份证号码、手机号、性别等。

2、员工姓名的数据类型肯定是字符型vachar(50),你写一个2323肯定不行。

3、年龄肯定是整数型(int),你写一个张三也不行。

4、生日格式肯定是YYYY-MM-DD,你写一个0908肯定不行。

5、浮点数类型的数据小数点具体保留到几位也需要考虑。

6、最后检验长度即,规定只能输入字符串长度为50个汉字的名字,你输入51个汉字肯定不行。

校验业务逻辑

1、业务逻辑哪些字段是必填字段,哪些字段是选填字段。如果必填字段没写,就会报错

2 、用导入的数据去执行一些业务逻辑失败,例如批量更新单据的状态,但是单据是不可更新的状态,就会报错

3、系统查询不到该数据,例如批量导入商品的库存数据,但是系统没有该商品的sku,也会报错

数据效验

先说背景:应对多次导入维护的这一份完整的数据,我们需要解决以下几个可能出现的问题:

  • 同一份excel,用户没有修改任何记录,总记录条数不变
  • 同一份excel,用户修改了某条记录的某值,总记录条数不变
  • 同一份excel,用户新增多条记录,总记录条数增加
  • 同一份excel,用户删除了多条记录,总记录条数减少
  • 同一份excel,用户删除了多条记录,并新增了多条记录,总记录条数对应变化

1、重复数据导入的2种方式

覆盖导入

这个是属于业务层的判断了,一般“覆盖”导入(即导入的数据会覆盖系统原有数据)导入覆盖直接简单粗暴。简单粗暴必然有缺陷,例如批量导入达人列表,以身份证作为唯一编码值

比如根据身份证判断,分二次导入员工信息,每一次导入的数据系统又会自动生成一条唯一ID,如果2条数据身份证号码完全一致,按照覆盖导入,如果是第二次导入excel,系统会取第二次导入的数据生成一个新的唯一ID。第一次导入的数据被删除了,那么如果根据第一次生成的唯一ID去查询相关的一些业务数据,如订单,就会发现查找不到订单记录,因为系统数据是删除状态。所以覆盖导入适合没有和其他业务有过多交集的情况。那么针对这种问题,我们可以用导入更新解决。

导入更新

导入更新则是每条导入的数据都要和已有的历史数据进行比较,根据某一个字段判断,如果有相同的就更新,没有就插入。

基于此,我们来整理一下实现思路,

导入的excel中,某条记录的唯一编码值和数据库的某条是一致的,此时执行update操作 导入的excel中,某条记录的唯一编码值在数据库中不存在,此时执行insert操作 导入的excel中,某条记录的唯一编码值在数据库中存在,但是excel中不存在,此时执行delete操作(其实是update操作,将其置为"删除")

具体自己看业务场景来取舍,一般来说导入更新的场景比较多,直接覆盖的比较少。

更新导入我们要求给一个唯一值,我们根据唯一值字段去检验,那么如果业务里面并没有唯一字段呢?那只能辛苦开发一个一个字段去进行校验,把所有表头字段一一校验一遍,非常影响性能。

最后针对导入结果返回值

导入必然有成功或者失败两种结果。面对导入失败,我们肯定需要返回给用户导入失败的数据并且需给出原因。在导出的文件中对于字段不合法导致的问题,直接标红数据所在单元格,客户查找修改也比较方便;也可以直接当前页面反馈失败数据。

其他问题

导入进度提示

同步导入还是异步导入(异步导入可离开当前页面操作其他页面)

导入操作日志是否需要

更多案例请访问简道云查阅,简道云是零代码的应用搭建平台,可以帮助各行业人员在不使用代码的情况下搭建个性化的CRM、ERP、OA、项目管理、进销存等系统,产品包含自定义表单、自定义报表、自定义流程引擎、知识库、团队协作等功能,适用于各种业务场景。

声明:以上内容(如有图片或视频亦包括在内)为“简道云”用户上传并发布,墨思产品经理平台仅提供信息存储服务。

Notice: The above content (including the pictures and videos if any) is uploaded and published by the user, and this platform only provides information storage services.

相关推荐: