B端产品小功能设计1:批量导入

20 评论 19562 浏览 126 收藏 8 分钟

在B端产品设计中,我们经常会用到批量导入这个功能,用好它就能大大提高工作效率。本文将从四个方面,对批量导入展开介绍分析,希望对你有帮助。

今天分享一个B端产品设计中经常或者说必须用到的功能:批量导入。

相信很多小伙伴都对这个功能有接触和了解,觉得不过就是个简单的把Excel表的数据导入到系统而已。

道理是这么个道理,但小功能也有它的奥妙之处,况且批量导入是个很不一般的非常重要的功能,特别在B端产品设计中。

一个做得好的批量导入功能,可以大大提高使用者的工作效率。

那么我们在设计这个功能时,需要考虑什么呢?我罗列了几点:

  • 如何才能让用户在批量导入过程中尽可能地减少出错的概率。
  • 若真的出现导入错误应该怎么处理,如何提示用户修改,用什么方式更好。
  • 批量导入的数据量大概有多大。
  • 导入的数据,如果与原有数据冲突时,该怎么处理。

一、设计批量导入的模板

众所周知,在做导入功能时,我们都会用到Excel表。由于用户在Excel中的输入编写是很自由的,如果不把Excel定好格式模板,告诉用户我们的填写规则,那么用户填写完的信息导入系统时,很大概率是不符合规范的,所以第一步必须要定好Excel的模板。

首先,要在Excel中把填写规则表述清楚。

例如这个报表的填写功能的批量导入的说明,我们可根据各自的业务规则需求,制定适合自己的规则。

而且,在一些需要与系统数据库进行匹配校验的数据,要控制好输入格式,可以让用户选择,就不要让用户编辑输入。

例如:省市区这类型,例如广东省,如果用户输入,很可能有的用户输入“广东”,这样在和数据库进行匹配或者校验时就会匹配不到数据。所以我们要尽可能避免这种情况。

二、使用步骤引导用户

尽可能把入口放在易见的位置,例如列表页top。在用户首次进行导入操作时,肯定是需要先下载一个模板的,所以我们可以在按钮旁边加一个说明指引:“第一步:下载模板;第二步,编写内容,批量导入。”

三、提示用户现在的状态,如何进行下一步

用户按照模板填写完后,就可以点击【批量导入】按钮把数据导入。

此时,我们需要两种情况:数据正确无误成功导入;导入的数据存在错误。

导入数据后,先校验数据是否有错误,如果正确无误,那么就可以直接在数据库创建数据,也可以把数据先进行页面化显示,让用户对数据进行再次确认再进行手动提交入库。

在这里,我们是建议使用先页面化显示这种方式,一是可以让用户知道自己导入了哪些数据,二是当有错误的时候,可在页面中直观的让用户看到哪几行出了错(当然这种方式要考虑数据量的问题,如果数据量非常大就不适用这种方式)。

而对于导入后某些数据有错的情况,我们一般又可以分为两种方式进行处理:

1.允许用户在线直接修改,导入后提示用户有几条错误,可以在线进行编辑修改,修改后进行保存。

进行调整也有两种调整方式:直接在列表中实现可编辑的;点击列表,弹窗页进行编辑。

一般都更推荐第二种方式,实现起来更灵活,可直接使用前端的组件

2.不允许用户在线修改,需要重新上传。我们需要提示用户Excel中,哪几行的数据错误,错误原因是什么?

至于用哪种方式,一般根据实际情况考虑,特别是数据量,如果错误的数据量大还是建议不允许用户在线修改,提供一个让用户自己下载“错误报告”的功能(用户上传的Excel附加一个错误说明),让用户对着错误说明在Excel上进行修改,重新上传(毕竟在Excel中批量修改会比在线修改效率要高很多)。

四、如何处理有冲突的数据

在最后,还有一个需要考虑的问题,就是导入的数据存在冲突时该如何处理。我们这个导入是增量导入还是支持覆盖导入?

如果是要支持如果要支持覆盖导入,那么这个导入列表就需要加一个在系统中的唯一标识。

以通讯录为例,导入的列表要加一个员工编号,当导入的时候,检测这个员工编号在原来系统中是否存在,如果存在,那么就是对原来那条记录的修改,并且提示用户,是否对该记录进行修改,可展示前后对比给用户看。如果不存在,那么就是新增。

还有一种情况是数据备案导入,那么就要保留原有的历史数据,同时存储新导入的数据。

以上是在设计批量导入功能时需要考虑的几个点,基本可以满足各种常规的需求,如果还有更好的优化方法,记得给我提建议哦~

 

作者:叫我阿逸,公众号:人云逸云;产品道路上不断前行的产品小白

本文由 @叫我阿逸 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 批量导入其实是非常不值得提倡的功能,但由于系统许多方面基建跟不上,导致只能用导入做提高效能的替代功能。

    来自上海 回复
  2. 1、导入如你所赘述如此简单? 批量传入?
    2、导入涉及外部数据与其他系统之间数据交换和数据库字段,逻辑运算匹配复杂关系,涉及操作层面必填字段,非必填字段,为何必填?字段与字段关系,前台接收数据后展现,存储方式,状态?后台数据关系,权限,字段属性限制等,是整表导入,还是行或列部分导入,背后设计,验证,优化,升级大了去啦。
    3、导入是一个复杂功能,属于软件部分,而不是工具。

    来自四川 回复
    1. 我也会对您说的这几个方面加深研究学习,看看有没有更好的分享

      来自广东 回复
    2. 我所说的只是简单的功能设计,数据层面没有描述到。但您的语气好像很不满意是因为什么原因…

      回复
    3. 功能设计?不涉及数据层面,(做一个功能标签摆设),好好学习,不要太在意,学到内容才是主要的,,

      来自四川 回复
    4. 我说的是数据层面没有描述道,不是不涉及。。。你说的我都懂,我也是技术出身,只是我在这篇文章不是着重在这方面的描述。希望你理解

      来自广东 回复
    5. 我也觉得,咄咄逼人

      来自广东 回复
  3. 批量导入对性能的要求还是挺高的,除了上限外也要考虑高并发多人同时操作的情况,一般来说可以通过异步任务队列或者模板配置等方式实现

    来自湖北 回复
    1. 来自广东 回复
  4. 其实一下子导入几千条都是很正常的,我们支持在线批量修改或者下载错误内容修改

    来自广东 回复
    1. 嗯嗯挺好的

      来自广东 回复
  5. 受益匪浅

    回复
    1. 😄

      回复
  6. 一个小功能写的很详细

    回复
    1. 😄

      回复
  7. 导入上限建议用条数限制还是文件大小限制呢

    回复
    1. 文件大小限制不好操作,还是数量限制把。超过100条或者200条,在线预览也很不方便

      来自广东 回复
    2. 条数限制不好限制,文件大小限制可能会更可行,要考虑你的实际数据量需求来看

      回复
    3. 导入量挺大,几万条都有可能。

      回复
    4. 几万条可能要考虑性能问题了,在限制方面可以做好提示和限制

      来自广东 回复