楠木軒

批次上傳:別讓一鍵高效工具成為“匯入失敗”的警報器

由 由振山 釋出於 科技

編輯導讀:批次匯入是在基礎資料錄入很常見的一個功能,即可以節省逐條新增的人力成本,又可以避免資料重複錄入的問題,一舉多得;但是模板處理不當,匯入過程中不同報錯匯入失敗,會讓使用者煩躁不安。本文作者帶我們躲避設計裡的那些坑。

一、明確的匯入操作指引,減輕使用者學習成本
  • 提供下載匯入模板和匯入模板的入口;
  • 下載和匯入的模板入口在一個頁面,避免出現點選“匯入”,還要花時間找匯入模板的情況。

常規設計如圖:

(提供下載和匯入的模板)

二、 欄位/字元詳細說明,將匯入失敗的風險扼殺在模板設計中1. 標註出必填和非必填欄位

標註方式不限,可以為單元格角標(圖二)、欄位前加 “ * ” 必填符號(圖三)、字型加粗或單元格顏色區別(圖四):

2. 明確字元的型別,儘量細化欄位的校驗顆粒度

匯入中常見的字元型別:

文字:對文字長度進行限制。

(若文字長度超出則報錯警示)

數字:整數(是否必須為整數)、正負數(是否允許負數)、小數(明確限制小數點後幾位),以上均需要進行提示說明。

特殊數字,如銀行卡號,確保單元格為文字格式,不會出現科學計數法,否則後臺校驗無法透過,且使用者錄入資料會很苦惱。

(提前處理好數字的儲存格式)

日期:規範時間格式,常見的有2020-07-24、2020/07/24、2020.07.24,但是使用者實際使用的格式可能會超乎你的想象,畢竟很多人是不按規則出牌的。

所以格式有明確限制的,需要在模板中標明:

(示例資料儘量列明模板允許的資料格式)

下拉框:可選範圍固定的欄位,設計下拉選擇,可以避免使用者手填錯誤資訊的情況。

下拉選擇的值確認是在系統的表結構中已經存在的,杜絕出現匯入模板有農業銀行,資料庫銀行表沒有農業銀行的情況。

也有可能出現使用者直接從自己的excel表格複製資料,貼上到模板中的情況,所以校驗欄位是否和表對應很重要。

(模板中設計好下拉欄位可選範圍)

特殊符號:模板中有限制中英文輸入法的特殊字元,需要作出明確指示。

後者告知後臺開發,對於中英文字元做相容識別處理。

3. 鎖定禁止刪除的欄位

以本模板為例:為了防止使用者誤操作,鎖定了表頭欄位資料和第二排的示範資料。

這裡需要和後臺開發說明,示範資料已鎖定,資料的匯入校驗從第三排開始。

(警示使用者列表已鎖定)

4. 附帶單位

資料有單位的,最好是在欄位後標註上,以免使用者對資料格式產生疑惑或者自己單獨在數字上加單位導致資料校驗不合格,無法透過。

(欄位標註單位)

模板中可能會存在空格的情況,需要開發對空格進行處理。

避免正確資料因為有空格而校驗不透過,匯入報錯而使用者無法定位資料誤差的原因發生。

小結:模板內欄位的設計與限制,更多的是產品對excel功能的熟悉程度靈活運用,以及如何和專案的實際業務結合起來,協助使用者在資訊的新增環節避錯。

三、報錯給予明確提示,提示匯入成功的機率和使用者體驗
  • 杜絕英文報錯提示使用者體驗非常糟糕,很容易讓使用者認為系統崩掉了。
  • 儘量明確的進行報錯提示,方便使用者對錯誤資料進行處理後再重新匯入。

常見的匯入失敗原因有:

  1. 字元格式校驗不透過;
  2. 資料重複報錯;
  3. 必填欄位缺失;
  4. 匯入模板錯誤;
  5. 資料量過大,系統卡死;
四、重複匯入如何處理1. 重複匯入的定義

根據業務情況,確認具體哪些欄位的重複屬於同一條資料,需要判定為重複資料。

一般會根據資料的主鍵來定義重複資料。

如下圖,員工個人資訊以姓名和身份證號碼合併為主鍵,構成唯一的員工ID。

如果後臺校驗到這兩個欄位一樣,就不會再對其他欄位進行校驗。

(姓名和身份證號形成ID,相同則報資料重複)

2. 是否允許重複匯入

1)對於重複的資料,需要根據實際使用情況,確認是否允許匯入。

2)不允許重複匯入,則需要明確報錯提示。

重複匯入的資料,處理方式可能有:使用者刪除重複資料後再次上傳,後臺報錯提示。

(明確指示重複的資料)

直接剔除掉模板中的重複資料,成功匯入正常資料,頁面無提示;這種方式明顯減少了使用者需要操作的步驟和內容,體驗更友好。

3)允許重複匯入,處理方式可能有:

覆蓋原有資料,並且標記出變動的欄位差異,甚至允許使用者直接在頁面上對重複欄位進行修改後儲存再次上傳。

這種方式開發成本比較高,且僅適用於匯入的資料量較小的情況。

(頁面修改重複欄位後上傳)

直接覆蓋原有資料,且頁面無標記;這種方式開發成本較低,也不需要使用者再做判斷,但是相應的可能會有一定的風險,比如使用者誤修改了個別欄位直接覆蓋了原有資料,導致其他環節出錯。特別是涉及到財務結算的模組,慎用!

五、大資料量非同步匯入,節省使用者時間

如果匯入的資料量很大,或者校驗的欄位需要呼叫的介面比較多,同步匯入會佔用很大的記憶體。

且同步匯入使用者需要一直盯著頁面,無法使用其他視窗;若網路發生故障或者其他原因,導致匯入失敗,需要再次重新匯入,使用者體驗會很差。

所以對資料量比較大或者介面複雜的資料,可以採取非同步匯入的方式。

非同步匯入在條件允許的情況下,可以用進度條展示當前資料的傳輸百分比,預計完成用時。這樣使用者離開視窗再次回來檢視的時候,明確估算回查上傳的資料情況。

以上基本歸納了筆者在專案中踩過的“批次匯入”坑,如有遺漏或者錯誤的地方,請大家指出。

本文由 @RaRa 原創釋出於人人都是產品經理,未經許可,禁止轉載。

題圖來自 Unsplash,基於CC0協議