大型ERP系統(tǒng)必不可少的通用性功能:自定義單據(jù)
「自定義單據(jù)」功能相對(duì)比較獨(dú)立,應(yīng)用場(chǎng)景也很廣泛,可以在ERP、電商平臺(tái)、內(nèi)容管理、表單收集等多種類型的軟件系統(tǒng)中通用。本文重點(diǎn)介紹了「自定義單據(jù)」功能的設(shè)計(jì),與大家分享!
B端企業(yè)客戶的管理模式大都極具個(gè)性化,尤其是報(bào)表和單據(jù)的格式最為復(fù)雜多樣。因此,大多數(shù)ERP軟件廠商都會(huì)選擇開發(fā)「自定義單據(jù)」和「自定義報(bào)表」服務(wù)程序,來應(yīng)對(duì)客戶多變的業(yè)務(wù)需求。
一、為什么要做「自定義單據(jù)」功能
- 從業(yè)務(wù)屬性上劃分,單據(jù)的種類有財(cái)務(wù)單據(jù)、物流單據(jù)等等;
- 從業(yè)務(wù)功能上劃分,財(cái)務(wù)單據(jù)又包括報(bào)銷單、借款單、還款單等;
- 報(bào)銷單根據(jù)報(bào)銷類型,又可以細(xì)化到差旅費(fèi)報(bào)銷單、辦公費(fèi)報(bào)銷單等;
- 同樣地,差旅費(fèi)報(bào)銷單又有市內(nèi)交通費(fèi)、外埠交通費(fèi)之分;
- 外埠交通費(fèi)還可以細(xì)分到飛機(jī)票、火車票、汽車票……
總之,B端客戶的需求只有你想不到的,沒有業(yè)務(wù)方做不出來的。
這些分類與劃分代表一家企業(yè)對(duì)于自身業(yè)務(wù)的管理細(xì)度。以財(cái)務(wù)管理為例,有的企業(yè)只細(xì)化到報(bào)銷單,留給員工很靈活的費(fèi)用報(bào)銷空間,這樣可以賦予下級(jí)單位自主性,快速響應(yīng)突發(fā)事件。
有的企業(yè)可能會(huì)細(xì)分到費(fèi)用類型,按照?qǐng)?bào)銷人的級(jí)別控制可報(bào)銷的金額,這樣可以大幅減少管理費(fèi)用的浪費(fèi)。
但作為乙方的軟件企業(yè),不可能為每一家客戶都單獨(dú)做一個(gè)定制版本,這樣不僅不利于后期維護(hù)升級(jí),還容易造成自身版本管理的混亂。
因此,「自定義單據(jù)」與系統(tǒng)的公共數(shù)據(jù)管理和系統(tǒng)安全一樣,作為一項(xiàng)使用頻率較高的基礎(chǔ)管理模塊,需要納入產(chǎn)品升級(jí)規(guī)劃中。
二、「自定義單據(jù)」具體要實(shí)現(xiàn)什么
- 實(shí)現(xiàn)用戶自定義單據(jù)界面:如單據(jù)頁面中內(nèi)容的格式與顯示方式。
- 實(shí)現(xiàn)對(duì)各類單據(jù)的操作功能,如增、刪、改、查、導(dǎo)出打印等。
- 實(shí)現(xiàn)各業(yè)務(wù)部門之間的數(shù)據(jù)共享:如填寫報(bào)銷單時(shí),實(shí)時(shí)反饋是否超出當(dāng)期可用預(yù)算;在填寫還款單時(shí),能夠選擇前置借款單;同時(shí)也包含對(duì)于信息的提?。ㄈ绨l(fā)票的OCR識(shí)別、掃碼識(shí)別;系統(tǒng)初始化時(shí)對(duì)歷史單據(jù)臺(tái)賬的批量導(dǎo)入)。
- 實(shí)現(xiàn)根據(jù)員工權(quán)限限制功能操作和數(shù)據(jù)訪問:某些單據(jù)頁面、操作功能對(duì)沒有權(quán)限的用戶屏蔽,如倉管部門只能設(shè)計(jì)出庫單、入庫單,不能設(shè)計(jì)合同和物流單據(jù)。
三、「自定義單據(jù)」的業(yè)務(wù)流程
如圖所示:
(1)管理員
管理員或軟件實(shí)施人員根據(jù)企業(yè)需求,配置某項(xiàng)業(yè)務(wù)流程中所需的業(yè)務(wù)單據(jù)(如報(bào)銷單、借款單、還款單等),以及單據(jù)包含的信息(單據(jù)屬性、流程定義、入口定義、字段信息、功能鍵按鈕等);
(2)開發(fā)人員
- 開發(fā)人員根據(jù)業(yè)務(wù)需求,在數(shù)據(jù)庫中定義存儲(chǔ)單據(jù)頁面數(shù)據(jù)字段的表結(jié)構(gòu);
- 當(dāng)管理員使用「自定義單據(jù)應(yīng)用程序」對(duì)單據(jù)頁面進(jìn)行增刪改查等操作時(shí),實(shí)際上是對(duì)字段信息(頁面標(biāo)識(shí)、文本框、單選框、附件上傳、功能鍵按鈕等)進(jìn)行相應(yīng)的操作。
(3)普通用戶
- 系統(tǒng)應(yīng)用程序和「自定義單據(jù)應(yīng)用程序」會(huì)同時(shí)部署在同一臺(tái)服務(wù)器上;
- 當(dāng)普通用戶登錄系統(tǒng)后,系統(tǒng)會(huì)通過識(shí)別用戶角色和擁有權(quán)限來限制對(duì)單據(jù)頁面的操作和數(shù)據(jù)訪問;「自定義單據(jù)應(yīng)用程序」也會(huì)實(shí)時(shí)監(jiān)控用戶通過瀏覽器發(fā)送的請(qǐng)求;
- 當(dāng)服務(wù)器接收到用戶請(qǐng)求后,服務(wù)器會(huì)向數(shù)據(jù)庫轉(zhuǎn)達(dá)這一請(qǐng)求,從而讀取并將數(shù)據(jù)庫中相關(guān)單據(jù)及頁面信息實(shí)時(shí)反饋到瀏覽器(用戶終端);
- 此外,系統(tǒng)應(yīng)用程序還可以內(nèi)置一系列有效性校驗(yàn)規(guī)則,當(dāng)用戶輸入信息與數(shù)據(jù)類型不符,或輸入信息不滿足預(yù)設(shè)條件時(shí),能夠彈出錯(cuò)誤提示幫助用戶改正。
四、「自定義單據(jù)」的功能框架與界面草圖
1. 權(quán)限管理和系統(tǒng)管理
- 權(quán)限管理主要指:根據(jù)用戶權(quán)限對(duì)功能操作和數(shù)據(jù)訪問進(jìn)行限制,常見的方式有隱藏菜單、隱藏按鈕、字段屏蔽等;
- 系統(tǒng)管理主要指:對(duì)系統(tǒng)的日常維護(hù)。如數(shù)據(jù)的導(dǎo)入導(dǎo)出接口、日志更新、數(shù)據(jù)庫同步等;
以上兩部分一般都沿用系統(tǒng)原有設(shè)計(jì),此處不再展開介紹。
2. 提示信息管理
- 用戶在進(jìn)行實(shí)際操作時(shí)可能會(huì)違反系統(tǒng)操作規(guī)范,也可能遇到系統(tǒng)本身出錯(cuò)的情況,因此需要為用戶提供錯(cuò)誤信息提示,以便幫助用戶更正操作;
- 該部分設(shè)計(jì)工作因產(chǎn)品而異,大型ERP產(chǎn)品會(huì)以接口的形式,把錯(cuò)誤信息提示的編輯功能放在前端,管理員可以自定義信息提示;小型ERP一般都是寫死在系統(tǒng);
- 不過是哪種情況,產(chǎn)品經(jīng)理都需要把給予提示的內(nèi)容整理出來,說明何種情況下需要提示,提示什么內(nèi)容,給予何種引導(dǎo)(最好以表格的形式來整理,看起來比較清晰)。
3. 單據(jù)模板設(shè)計(jì)
單據(jù)模板設(shè)計(jì)是「自定義單據(jù)」功能最重要的部分,決定了用戶在前端會(huì)看到什么,如何操作。如下圖所示:
「單據(jù)模板設(shè)計(jì)」一共分為三部分,也可以說是由三個(gè)頁面(或彈窗)組成:
1)列表頁
首先是列表頁,通過該頁面,用戶可以查詢并看到已設(shè)計(jì)的單據(jù)模板;同時(shí)該頁面還為用戶提供了「新增」「編輯」「刪除」等操作按鈕。
需要注意:
- 雖然提供刪除按鈕,但是已經(jīng)生效過的單據(jù)模板是不可以刪除的,可以通過取消對(duì)所有用戶的授權(quán)來達(dá)到廢棄單據(jù)的目的;
- 在編輯已生效單據(jù)時(shí),只可以增加字段,不可以刪除字段;可通過字段維護(hù)頁面的“隱藏字段”來達(dá)到“刪除”的目的。
2)單據(jù)模板設(shè)計(jì)頁面
單據(jù)模板設(shè)計(jì)頁面可以直接放在菜單欄,也可以做成彈窗的樣式隱藏在「列表頁」之后。該頁面主要包含五個(gè)部分:
- 模板定義:模板屬性(單據(jù)名稱、單據(jù)類別、單據(jù)首位、頁面地址等);流程定義(單據(jù)的審批流程);入口定義(通過哪個(gè)菜單或按鈕可以訪問單據(jù)頁面)。
- 字段維護(hù):即單據(jù)內(nèi)包含的字段名稱(含控件類型、占位規(guī)格、校驗(yàn)規(guī)則等);提供增、刪、改、排序等操作;點(diǎn)擊“編輯”,跳轉(zhuǎn)至字段維護(hù)的詳情頁。
- 組件維護(hù):即包含多個(gè)字段的組件維護(hù),提供“新增”“展開”等交互按鈕;例如一張報(bào)銷單可能包含多筆費(fèi)用,而管理員并不知道每個(gè)報(bào)銷人會(huì)報(bào)幾筆,因此需要提供一個(gè)“新增”的按鈕,報(bào)銷人可以自行選擇新增幾筆費(fèi)用(一筆費(fèi)用由多個(gè)字段組成)。
- 字段查詢:一張單據(jù)可能包含很多字段,因此需要提供一個(gè)簡(jiǎn)單的查詢功能。
- 單據(jù)預(yù)覽:可以放置在操作界面的右側(cè),也可以提供“預(yù)覽”按鈕,方便用戶隨時(shí)查看自己設(shè)計(jì)的單據(jù)外觀。
3)字段/組件/功能按鈕維護(hù)頁面
該頁面包含的信息相對(duì)比較瑣碎,因?yàn)樯婕暗綌?shù)據(jù)庫設(shè)計(jì),非技術(shù)出身的產(chǎn)品可能搞不定。建議提前跟開發(fā)溝通設(shè)計(jì)思路,待數(shù)據(jù)庫設(shè)計(jì)初步完成后再進(jìn)行具體的界面設(shè)計(jì)。
關(guān)于界面草圖中具體名詞的解釋,本文不再贅述。大概可以理解設(shè)計(jì)思路即可,具體情況要視業(yè)務(wù)需求而定。
字段維護(hù)
組件維護(hù)
功能按鈕維護(hù)
作者:產(chǎn)品路漫漫;微信公眾號(hào):產(chǎn)品路漫漫
本文由 @產(chǎn)品路漫漫 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
您好,請(qǐng)問原型文件能分享一下嗎,有償。
請(qǐng)問下:自定義表單,是一個(gè)表單對(duì)應(yīng)一個(gè)數(shù)據(jù)庫表,還是所有的表單都是一個(gè)數(shù)據(jù)庫表?
其實(shí)我沒太明白你定義的“數(shù)據(jù)庫表”是啥意思,是單張表,還是有父子關(guān)系的組表(實(shí)體表?)……跑題的話再接著討論哈~
1、文章說的自定義表單,其實(shí)應(yīng)該是“自定義表單模板”,一般只能由管理員來設(shè)置,所以應(yīng)該有兩個(gè)概念“表單”和“表單模板”;
2、如果把表單模板的設(shè)計(jì)看做“數(shù)據(jù)庫設(shè)計(jì)”,那么這張“表”應(yīng)當(dāng)由多張“子表”組成,比如定義單據(jù)類別的表、定義數(shù)據(jù)處理類別的表、定義功能按鈕的表、定義字段的表等等,這些“子表”共同組成一張大表,可以給它命名為“頁面表”;
3、經(jīng)過管理員編輯的“頁面表”及其“子表”,就是前端所說的“單據(jù)模板”;
4、普通用戶在填單據(jù)時(shí),選中一張“單據(jù)模板”填寫信息,數(shù)據(jù)庫會(huì)分別將該用戶填寫的信息記錄在“頁面表”和它下面的“子表”中(不是只記錄在單張表里)。
5、最后就是為單據(jù)列表或查詢按鈕賦值,分別返回所需的數(shù)據(jù)。
我就是在想,最后填寫完表單后數(shù)據(jù)是怎么存儲(chǔ)的。之前看過一個(gè)比較老的方案。每涉及一個(gè)自定義的表單,就會(huì)在數(shù)據(jù)庫中創(chuàng)建一張表來記錄別人提交的數(shù)據(jù)。但是我又感覺這種方案會(huì)不停在數(shù)據(jù)庫中建表,感覺不優(yōu)雅。所以有此一問