B端【數(shù)據(jù)批量導(dǎo)入功能】避坑指南

0 評論 1373 瀏覽 20 收藏 13 分鐘

數(shù)據(jù)批量導(dǎo)入功能,是許多B端產(chǎn)品的“剛需模塊”,也是產(chǎn)品設(shè)計(jì)中的“高風(fēng)險(xiǎn)地帶”。本篇文章將結(jié)合真實(shí)項(xiàng)目經(jīng)驗(yàn),拆解導(dǎo)入功能的常見坑點(diǎn)與設(shè)計(jì)要點(diǎn),幫助產(chǎn)品人構(gòu)建更穩(wěn)定、易用、可控的導(dǎo)入機(jī)制。

在B端后臺產(chǎn)品中,批量導(dǎo)入是非常常見的功能,一個(gè)好的數(shù)據(jù)導(dǎo)入功能可以大大的提高用戶的工作效率和滿意度,反之則讓用戶覺得平臺不好用。

因此,批量導(dǎo)入乍看簡單,但如果你只是覺得放一個(gè)上傳按鈕,讓用戶選擇文件導(dǎo)入就行的話,就等著被開發(fā)吐槽吧!只要做過批量導(dǎo)入,你就會發(fā)現(xiàn)實(shí)際做起來里面的坑著實(shí)不少。例如:

  1. 導(dǎo)入數(shù)據(jù)的唯一標(biāo)識是什么?重復(fù)數(shù)據(jù)應(yīng)該如何處理?
  2. 存在錯(cuò)誤數(shù)據(jù)時(shí),忽略錯(cuò)誤數(shù)據(jù)允許正常數(shù)據(jù)導(dǎo)入,還是全部打回重新導(dǎo)入?

我們可以將數(shù)據(jù)導(dǎo)入流程拆解為三個(gè)核心環(huán)節(jié):導(dǎo)入指引、導(dǎo)入文件和結(jié)果反饋。接下來,我們將圍繞這三個(gè)環(huán)節(jié),逐一解析各環(huán)節(jié)的關(guān)鍵注意點(diǎn)。

一、導(dǎo)入指引

導(dǎo)入指引就是讓用戶知道要導(dǎo)入的內(nèi)容是哪些,規(guī)則是什么,并給出一份導(dǎo)入模板文件。

1.1 導(dǎo)入說明

也就是對導(dǎo)入的內(nèi)容進(jìn)行說明,明確導(dǎo)入的規(guī)則、文件類型、文件大小等。

一般分為直接導(dǎo)入和分步驟導(dǎo)入。如果導(dǎo)入過程并不復(fù)雜,直接導(dǎo)入即可;如果流程比較長,需要給出一條明確的步驟指引,可以分步驟導(dǎo)入。

直接導(dǎo)入示例(左) 分步驟導(dǎo)入示例(右)

1.2 模板說明

模板最重要的就是寫清楚填寫規(guī)則。對一些重要的、不易察覺的系統(tǒng)要求,做進(jìn)一步解釋,引導(dǎo)用戶正確填寫數(shù)據(jù)??梢杂靡韵?種方式進(jìn)行模板填寫規(guī)則的設(shè)計(jì),可以混合使用,比如我們可以在模板前幾行寫上文字說明,也會給用戶提供填寫示例。

1.用單獨(dú)一個(gè)sheet進(jìn)行說明。

2.在模板前幾行寫清楚規(guī)則,方便用戶在填寫表格前閱讀。此外這里的說明支不支持用戶刪除,要說明清楚。

3.在字段后面直接寫上文字說明。

4.在字段后面用插入批注的方式。

5.對模板的字段做好格式限制。

  • 明確字段是否必填。比如必填字段可以用*號在字段后面進(jìn)行標(biāo)注。
  • 明確字段格式,盡可能讓用選擇代替輸入。比如:選擇項(xiàng)就提供標(biāo)準(zhǔn)的選擇項(xiàng),供用戶直接選擇;數(shù)量限制只能輸入數(shù)字,可限制數(shù)量輸入范圍;日期限制只能輸入日期,可限制日期輸入范圍;如果有經(jīng)緯度,可以設(shè)置經(jīng)緯度的正常范圍等。
  • 必要情況下可使用有效性檢測約定模板輸入內(nèi)容

6.給用戶提供填寫示例,比如新增加一行或幾行示例數(shù)據(jù),讓用戶知道怎么填寫。

1.3 導(dǎo)入方式

系統(tǒng)中已有數(shù)據(jù)的情況下,本次導(dǎo)入方式是“全部覆蓋”還是“部分覆蓋”,也就是完全覆蓋系統(tǒng)已有的數(shù)據(jù),還是在其后添加數(shù)據(jù)。具體選擇哪種要依據(jù)實(shí)際業(yè)務(wù)場景,部分情況下也可以讓用戶自己定義。

全部覆蓋:指最新一次導(dǎo)入的內(nèi)容會現(xiàn)將已有內(nèi)容清空再導(dǎo)入。

部分覆蓋:指最新一次導(dǎo)入內(nèi)容已經(jīng)存在在系統(tǒng)中時(shí),數(shù)據(jù)以最新導(dǎo)入為準(zhǔn)或者直接跳過;系統(tǒng)中有但是最新導(dǎo)入內(nèi)容里沒有的數(shù)據(jù),繼續(xù)保留在系統(tǒng)不會被清空掉;而系統(tǒng)中沒有但最新導(dǎo)入內(nèi)容里有的數(shù)據(jù),則增量加入系統(tǒng)。

這里還要注意重復(fù)數(shù)據(jù)的問題,視具體情況來定,可以分為以下3種情況:

  1. 重復(fù)數(shù)據(jù)以最后一條為準(zhǔn)。
  2. 重復(fù)明細(xì)的數(shù)量相加。
  3. 重復(fù)數(shù)據(jù)導(dǎo)入失敗。

二、導(dǎo)入文件

在用戶導(dǎo)入文件后,系統(tǒng)就會開始進(jìn)行校驗(yàn),主要分成兩步,第一步是校驗(yàn)文件格式,第二步是校驗(yàn)數(shù)據(jù)內(nèi)容合法性。由于數(shù)據(jù)合法性校驗(yàn)會比較慢,為了降低服務(wù)器側(cè)的壓力,我們在文件格式校驗(yàn)不通過后會直接返回錯(cuò)誤信息,沒必要再進(jìn)行后續(xù)合法性的校驗(yàn)。

2.1 文件格式校驗(yàn)

在寫入數(shù)據(jù)前,首先會校驗(yàn)文件的基本格式是否符合規(guī)范,如果不符合則需提示用戶檢查上傳的文件并重新上傳。一般會有如下規(guī)則:

1.格式:常見的表格格式是xls、xlsx和csv,其中csv是純文本格式,上傳更快,當(dāng)上傳文件需要支持大量數(shù)據(jù)時(shí)可以使用csv格式。這個(gè)在本地選擇和拖拽上傳的時(shí)候就可以過濾掉,比如本地選擇只展示excel文件,其他格式的文件自動(dòng)過濾。

2.大?。簽榱斯?jié)省服務(wù)器的空間和提高文件傳輸?shù)乃俣?,需要限制上傳文件的大小。盡量不要超過10M,不過這一點(diǎn)可以提前跟研發(fā)同事商量對齊。

3.名稱:當(dāng)上傳與要求的文件名稱不一致時(shí)則報(bào)錯(cuò)。如果文件名稱沒有特殊作用,不建議對名稱進(jìn)行校驗(yàn)。

4.表頭名稱和字段順序:當(dāng)字段列名稱、順序和模板不一樣的時(shí)候,則提示模板不對。

5.行數(shù):對用戶上傳的行數(shù)是都有限制,比如最多上傳2000條記錄,超過2000條就要報(bào)錯(cuò)。盡量支持最大值,讓用戶可以一次性導(dǎo)入成功,而不是讓用戶多次導(dǎo)入。

2.2 數(shù)據(jù)內(nèi)容合法性校驗(yàn)

1.數(shù)據(jù)是否為空:如果數(shù)據(jù)為空這個(gè)時(shí)候不需要處理,直接提示:文件數(shù)據(jù)為空,請補(bǔ)充數(shù)據(jù)后再上傳。

2.基本要求不滿足:導(dǎo)入模版中有要求值的字符類型、字符長度、業(yè)務(wù)規(guī)則限制,但導(dǎo)入文件就中的值不滿足。

  • 字符類型:如數(shù)字格式、日期格式、時(shí)間格式、字符串格式。如果這列字段和數(shù)據(jù)庫表字段的格式對不上,也導(dǎo)不進(jìn)去。
  • 字符長度:比如手機(jī)號碼規(guī)定是11位,但是用戶輸入了12位,此時(shí)針對這個(gè)數(shù)據(jù)就會顯示報(bào)錯(cuò)。常見的類型還有身份證號、稅號等基礎(chǔ)格式的校驗(yàn)。
  • 字符是否必填:如果表格字段必填值是空的,導(dǎo)入excel的時(shí)候,需要進(jìn)行報(bào)錯(cuò)提示。
  • 字符固定值校驗(yàn):比如性別只有男和女,用戶輸入了其他數(shù)據(jù)就會報(bào)錯(cuò),不過這個(gè)可以在導(dǎo)入模板內(nèi)設(shè)置下拉框,讓用戶選擇,從而規(guī)避掉這個(gè)情況。

3.找不到匹配的值:導(dǎo)入文件中的部分字段的值,要求在已有數(shù)據(jù)表中存在,如果找不到,會導(dǎo)致該數(shù)據(jù)找不到對應(yīng)的歸屬主體。如導(dǎo)入文件中“項(xiàng)目ID”的值,在項(xiàng)目表中找不到。

4.與其他字段的關(guān)聯(lián)關(guān)系錯(cuò)誤:某幾個(gè)字段的值之間有聯(lián)動(dòng)關(guān)系,但導(dǎo)入文件中的值聯(lián)動(dòng)關(guān)系錯(cuò)誤。如項(xiàng)目所在地,分省、市、區(qū)3列,若省的值為浙江,則該條數(shù)據(jù)中,市的值必須是浙江省的地級市,不允許出現(xiàn)了其他省的市。

三、結(jié)果反饋

3.1 失敗數(shù)據(jù)處理方式

這里有兩種情況:

  1. 有一條導(dǎo)入失敗,整個(gè)導(dǎo)不進(jìn)去。
  2. 有一條導(dǎo)入失敗,只有這一條導(dǎo)不進(jìn)去,其他都導(dǎo)入成功。

如果導(dǎo)入內(nèi)容相互獨(dú)立,我們都選擇2,否則會導(dǎo)致絕大部分完全正確的數(shù)據(jù)無法快速錄入系統(tǒng),之前校驗(yàn)的結(jié)果都無用,造成資源浪費(fèi);如果導(dǎo)入內(nèi)容有某種關(guān)聯(lián)或者是敏感數(shù)據(jù),比如順序不能變,那就得選1。

3.2 報(bào)錯(cuò)提示時(shí)機(jī)

  1. 發(fā)現(xiàn)錯(cuò)誤立即報(bào)錯(cuò):適用于文件格式校驗(yàn)出錯(cuò)時(shí),比如文件大小不符合規(guī)則時(shí)直接給出提示。
  2. 發(fā)現(xiàn)錯(cuò)誤,記錄錯(cuò)誤,最后統(tǒng)一報(bào)錯(cuò):這種情景主要針對用戶導(dǎo)入excel表格后,這時(shí)系統(tǒng)會對填寫的每個(gè)字段數(shù)據(jù)進(jìn)行校驗(yàn),這種時(shí)候出現(xiàn)的問題,可以先記錄下來,最后統(tǒng)一報(bào)錯(cuò)。

3.3 報(bào)錯(cuò)處理方式

1.錯(cuò)誤信息在平臺上直接修改。適用于數(shù)據(jù)量不是很多,不存在敏感信息的情況。

2.提供錯(cuò)誤清單,修改后再重新上傳。適用于數(shù)據(jù)量比較大或者存在敏感信息的情況。也就是在導(dǎo)入表格后面增加一列“導(dǎo)入失敗原因”。

3.提供導(dǎo)入歷史記錄,從記錄中導(dǎo)出失敗文件,修改后再重新上傳。出于安全考慮,可以提供導(dǎo)入導(dǎo)出記錄,方便問題跟蹤,比如一些敏感的財(cái)務(wù)類數(shù)據(jù),用戶可能會對系統(tǒng)的準(zhǔn)確性產(chǎn)生質(zhì)疑,通過保存導(dǎo)入的記錄和源文件,可以幫助我們對比是客戶提供的數(shù)據(jù)的問題還是系統(tǒng)的問題。

四、總結(jié)

需要記住:批量導(dǎo)入功能最基礎(chǔ)也是最重要的要求就是一個(gè)數(shù)據(jù)也不能錯(cuò)。除了上面說的之外,還需要考慮以下幾個(gè)方面:

  1. 提供有效反饋,導(dǎo)入失敗的提示要準(zhǔn)確,方便用戶定位修改。文案提示盡量正著說,如請輸入必填項(xiàng)客戶名稱;少反著說,如客戶名稱不能為空。
  2. B端系統(tǒng)內(nèi),一般在多處都有導(dǎo)入功能,因此導(dǎo)入頁面、導(dǎo)入模板樣式、失敗原因描述等最好一致,保證系統(tǒng)的統(tǒng)一性。

本文由 @樹袋熊 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!