B端【数据批量导入功能】避坑指南

Wait 5 sec.

数据批量导入功能,是许多B端产品的“刚需模块”,也是产品设计中的“高风险地带”。本篇文章将结合真实项目经验,拆解导入功能的常见坑点与设计要点,帮助产品人构建更稳定、易用、可控的导入机制。在B端后台产品中,批量导入是非常常见的功能,一个好的数据导入功能可以大大的提高用户的工作效率和满意度,反之则让用户觉得平台不好用。因此,批量导入乍看简单,但如果你只是觉得放一个上传按钮,让用户选择文件导入就行的话,就等着被开发吐槽吧!只要做过批量导入,你就会发现实际做起来里面的坑着实不少。例如:导入数据的唯一标识是什么?重复数据应该如何处理?存在错误数据时,忽略错误数据允许正常数据导入,还是全部打回重新导入?我们可以将数据导入流程拆解为三个核心环节:导入指引、导入文件和结果反馈。接下来,我们将围绕这三个环节,逐一解析各环节的关键注意点。一、导入指引导入指引就是让用户知道要导入的内容是哪些,规则是什么,并给出一份导入模板文件。1.1 导入说明也就是对导入的内容进行说明,明确导入的规则、文件类型、文件大小等。一般分为直接导入和分步骤导入。如果导入过程并不复杂,直接导入即可;如果流程比较长,需要给出一条明确的步骤指引,可以分步骤导入。直接导入示例(左) 分步骤导入示例(右)1.2 模板说明模板最重要的就是写清楚填写规则。对一些重要的、不易察觉的系统要求,做进一步解释,引导用户正确填写数据。可以用以下6种方式进行模板填写规则的设计,可以混合使用,比如我们可以在模板前几行写上文字说明,也会给用户提供填写示例。1.用单独一个sheet进行说明。2.在模板前几行写清楚规则,方便用户在填写表格前阅读。此外这里的说明支不支持用户删除,要说明清楚。3.在字段后面直接写上文字说明。4.在字段后面用插入批注的方式。5.对模板的字段做好格式限制。明确字段是否必填。比如必填字段可以用*号在字段后面进行标注。明确字段格式,尽可能让用选择代替输入。比如:选择项就提供标准的选择项,供用户直接选择;数量限制只能输入数字,可限制数量输入范围;日期限制只能输入日期,可限制日期输入范围;如果有经纬度,可以设置经纬度的正常范围等。必要情况下可使用有效性检测约定模板输入内容6.给用户提供填写示例,比如新增加一行或几行示例数据,让用户知道怎么填写。1.3 导入方式系统中已有数据的情况下,本次导入方式是“全部覆盖”还是“部分覆盖”,也就是完全覆盖系统已有的数据,还是在其后添加数据。具体选择哪种要依据实际业务场景,部分情况下也可以让用户自己定义。全部覆盖:指最新一次导入的内容会现将已有内容清空再导入。部分覆盖:指最新一次导入内容已经存在在系统中时,数据以最新导入为准或者直接跳过;系统中有但是最新导入内容里没有的数据,继续保留在系统不会被清空掉;而系统中没有但最新导入内容里有的数据,则增量加入系统。这里还要注意重复数据的问题,视具体情况来定,可以分为以下3种情况:重复数据以最后一条为准。重复明细的数量相加。重复数据导入失败。二、导入文件在用户导入文件后,系统就会开始进行校验,主要分成两步,第一步是校验文件格式,第二步是校验数据内容合法性。由于数据合法性校验会比较慢,为了降低服务器侧的压力,我们在文件格式校验不通过后会直接返回错误信息,没必要再进行后续合法性的校验。2.1 文件格式校验在写入数据前,首先会校验文件的基本格式是否符合规范,如果不符合则需提示用户检查上传的文件并重新上传。一般会有如下规则:1.格式:常见的表格格式是xls、xlsx和csv,其中csv是纯文本格式,上传更快,当上传文件需要支持大量数据时可以使用csv格式。这个在本地选择和拖拽上传的时候就可以过滤掉,比如本地选择只展示excel文件,其他格式的文件自动过滤。2.大小:为了节省服务器的空间和提高文件传输的速度,需要限制上传文件的大小。尽量不要超过10M,不过这一点可以提前跟研发同事商量对齐。3.名称:当上传与要求的文件名称不一致时则报错。如果文件名称没有特殊作用,不建议对名称进行校验。4.表头名称和字段顺序:当字段列名称、顺序和模板不一样的时候,则提示模板不对。5.行数:对用户上传的行数是都有限制,比如最多上传2000条记录,超过2000条就要报错。尽量支持最大值,让用户可以一次性导入成功,而不是让用户多次导入。2.2 数据内容合法性校验1.数据是否为空:如果数据为空这个时候不需要处理,直接提示:文件数据为空,请补充数据后再上传。2.基本要求不满足:导入模版中有要求值的字符类型、字符长度、业务规则限制,但导入文件就中的值不满足。字符类型:如数字格式、日期格式、时间格式、字符串格式。如果这列字段和数据库表字段的格式对不上,也导不进去。字符长度:比如手机号码规定是11位,但是用户输入了12位,此时针对这个数据就会显示报错。常见的类型还有身份证号、税号等基础格式的校验。字符是否必填:如果表格字段必填值是空的,导入excel的时候,需要进行报错提示。字符固定值校验:比如性别只有男和女,用户输入了其他数据就会报错,不过这个可以在导入模板内设置下拉框,让用户选择,从而规避掉这个情况。3.找不到匹配的值:导入文件中的部分字段的值,要求在已有数据表中存在,如果找不到,会导致该数据找不到对应的归属主体。如导入文件中“项目ID”的值,在项目表中找不到。4.与其他字段的关联关系错误:某几个字段的值之间有联动关系,但导入文件中的值联动关系错误。如项目所在地,分省、市、区3列,若省的值为浙江,则该条数据中,市的值必须是浙江省的地级市,不允许出现了其他省的市。三、结果反馈3.1 失败数据处理方式这里有两种情况:有一条导入失败,整个导不进去。有一条导入失败,只有这一条导不进去,其他都导入成功。如果导入内容相互独立,我们都选择2,否则会导致绝大部分完全正确的数据无法快速录入系统,之前校验的结果都无用,造成资源浪费;如果导入内容有某种关联或者是敏感数据,比如顺序不能变,那就得选1。3.2 报错提示时机发现错误立即报错:适用于文件格式校验出错时,比如文件大小不符合规则时直接给出提示。发现错误,记录错误,最后统一报错:这种情景主要针对用户导入excel表格后,这时系统会对填写的每个字段数据进行校验,这种时候出现的问题,可以先记录下来,最后统一报错。3.3 报错处理方式1.错误信息在平台上直接修改。适用于数据量不是很多,不存在敏感信息的情况。2.提供错误清单,修改后再重新上传。适用于数据量比较大或者存在敏感信息的情况。也就是在导入表格后面增加一列“导入失败原因”。3.提供导入历史记录,从记录中导出失败文件,修改后再重新上传。出于安全考虑,可以提供导入导出记录,方便问题跟踪,比如一些敏感的财务类数据,用户可能会对系统的准确性产生质疑,通过保存导入的记录和源文件,可以帮助我们对比是客户提供的数据的问题还是系统的问题。四、总结需要记住:批量导入功能最基础也是最重要的要求就是一个数据也不能错。除了上面说的之外,还需要考虑以下几个方面:提供有效反馈,导入失败的提示要准确,方便用户定位修改。文案提示尽量正着说,如请输入必填项客户名称;少反着说,如客户名称不能为空。B端系统内,一般在多处都有导入功能,因此导入页面、导入模板样式、失败原因描述等最好一致,保证系统的统一性。本文由 @树袋熊 原创发布于人人都是产品经理。未经作者许可,禁止转载题图来自Unsplash,基于CC0协议该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务