楊玉燕 廣東煙草梅州市有限公司
RPA,通過(guò)計(jì)算機(jī)對(duì)業(yè)務(wù)過(guò)程的模擬操作,實(shí)現(xiàn)自動(dòng)化處理。財(cái)務(wù)是企業(yè)的數(shù)據(jù)集成中心,接收業(yè)務(wù)數(shù)據(jù)并將數(shù)據(jù)加工生成所需要的信息,集合了采購(gòu)、銷售、各部門報(bào)銷等業(yè)務(wù)的數(shù)據(jù),而這個(gè)過(guò)程有些是重復(fù)操作的工作,可以使用RPA實(shí)現(xiàn)自動(dòng)化處理。python是一門易上手的計(jì)算機(jī)語(yǔ)言,它提供了各種庫(kù)的支持,包括pyautogui,selenium等庫(kù)都可以用于模擬工作流程,pandas和一些可視化庫(kù)是數(shù)據(jù)分析的一個(gè)利器。在處理財(cái)務(wù)工作中利用python設(shè)計(jì)財(cái)務(wù)RPA,通過(guò)程序?qū)ω?cái)務(wù)工作的模擬,實(shí)現(xiàn)財(cái)務(wù)的自動(dòng)化,提高財(cái)務(wù)工作效率和準(zhǔn)確性。
設(shè)計(jì)財(cái)務(wù)RPA,讓計(jì)算機(jī)模擬操作,利用python編寫代碼,需要先了解可能用到的python庫(kù)或工具,之后按照步驟確定目標(biāo)、設(shè)計(jì)流程編寫代碼、準(zhǔn)備數(shù)據(jù)、進(jìn)行模擬操作測(cè)試,后續(xù)如果相關(guān)數(shù)據(jù)格式有變動(dòng),及時(shí)更新程序。
python可以看成是圖書館,圖書館里收藏很多的書籍,而python的庫(kù)就像圖書館里的一本本藏書,需要什么知識(shí),就查找相應(yīng)的庫(kù)。
1. pandas
對(duì)于財(cái)務(wù)RPA,pandas是必須用到的庫(kù),對(duì)表格熟悉的話,pandas就很容易理解。pandas是python數(shù)據(jù)處理的利器,數(shù)據(jù)處理是財(cái)務(wù)RPA中最重要的一個(gè)環(huán)節(jié),pandas提供了高級(jí)數(shù)據(jù)結(jié)構(gòu)和函數(shù),這些數(shù)據(jù)結(jié)構(gòu)和函數(shù)的設(shè)計(jì)使得利用結(jié)構(gòu)化、表格化數(shù)據(jù)的工作快速、簡(jiǎn)單。[1]財(cái)務(wù)RPA中用到的功能主要有:①讀取數(shù)據(jù):通過(guò)pandas的DataFrame對(duì)象,將讀取的數(shù)據(jù)應(yīng)用于操作界面。②數(shù)據(jù)處理:pandas提供各種函數(shù)對(duì)數(shù)據(jù)高效處理,對(duì)獲取的數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)分析等。
2. selenium
selenium是用于Web應(yīng)用程序測(cè)試的工具,利用相應(yīng)的瀏覽器驅(qū)動(dòng)器,驅(qū)動(dòng)瀏覽器運(yùn)行,就像真實(shí)用戶操作的一樣。主要功能是模仿用戶操作網(wǎng)頁(yè),財(cái)務(wù)RPA可以利用輸入數(shù)據(jù)、查詢、下載或抓取頁(yè)面中一些關(guān)鍵的要素。
3.pyautogui
pyautogui是模擬鍵盤、鼠標(biāo)在相應(yīng)的頁(yè)面位置進(jìn)行操作,比如輸入、移動(dòng)、單擊、雙擊等。將整個(gè)屏幕作為一個(gè)坐標(biāo)系,原點(diǎn)位于屏幕的左上角,坐標(biāo)(x,y)中x是從左上角往右延伸的距離,y是從左上角往下延伸的距離,利用pyautogui的函數(shù)對(duì)屏幕中的坐標(biāo)(x,y)進(jìn)行相應(yīng)的指令操作。pyautogui對(duì)于數(shù)據(jù)量大、操作固定的流程,是一個(gè)高效處理的辦法,而且其函數(shù)簡(jiǎn)單易懂。pyautogui的使用就是基礎(chǔ)的RPA,解放雙手。
4. tkinter
tkinter提供程序窗口主界面的設(shè)計(jì),主界面可以包含標(biāo)簽、按鈕及彈出框等組件,通過(guò)這些組件將多個(gè)需求操作顯示在RPA窗口主界面上,或者接收需要輸入的關(guān)鍵數(shù)據(jù),讓RPA更容易操作。
5.圖像文字識(shí)別OCR
圖像文字識(shí)別OCR,用于提取圖像上的文字信息。OCR的原理可以簡(jiǎn)單理解為圖像上顏色值的計(jì)算結(jié)果與實(shí)際文字的映射。如果是小程序RPA,可以利用Tesseract-OCR,它是開源的OCR引擎,提供大量的映射集合,對(duì)于清晰度高、印刷字體的圖像,準(zhǔn)確率很高。
1.確定目標(biāo)
從日常財(cái)務(wù)工作入手,哪些業(yè)務(wù)模塊是屬于比較機(jī)械式的操作,是否可以將其流程標(biāo)準(zhǔn)化,運(yùn)用程序操作。在分析其采用程序操作的可行性過(guò)程中,要查看分別有哪些python庫(kù)可以解決操作中遇到的問(wèn)題,直到確定所有問(wèn)題都能解決。確定目標(biāo),主要是對(duì)其流程運(yùn)用RPA的可行性分析。
2.設(shè)計(jì)流程
針對(duì)要實(shí)現(xiàn)的目標(biāo),列出平時(shí)的工作流程,如果采用RPA,相應(yīng)的流程是否和人工操作一模一樣,哪些環(huán)節(jié)的操作是否需要一些額外的判斷、條件,或者需要做流程上的改進(jìn)。把流程中每個(gè)步驟里的工作細(xì)化羅列出來(lái),要用到python的哪些庫(kù),哪些函數(shù)可以實(shí)現(xiàn)相應(yīng)的需求,在相應(yīng)的庫(kù)官方文檔都能找到函數(shù)應(yīng)用的方式。理好全部邏輯關(guān)系,把框架定下來(lái),再把羅列的細(xì)化過(guò)程用python代碼表達(dá)出來(lái)。
3.準(zhǔn)備前期數(shù)據(jù)
財(cái)務(wù)工作是接收業(yè)務(wù)數(shù)據(jù)并將數(shù)據(jù)加工生成所需要的信息,從接收的數(shù)據(jù)中提取出前期數(shù)據(jù),比如采購(gòu)入庫(kù)單的采購(gòu)單據(jù)號(hào),銷售開票的客戶名稱。RPA每次運(yùn)行時(shí),需要保持這些數(shù)據(jù)的格式統(tǒng)一,確保pandas每次讀取數(shù)據(jù)都是準(zhǔn)確的。
4.進(jìn)行模擬測(cè)試
測(cè)試時(shí)需要查看python代碼運(yùn)行結(jié)果的準(zhǔn)確性。接著把各種可能遇到的情況都讓程序再跑一遍,根據(jù)結(jié)果的準(zhǔn)確性確定是否對(duì)需要對(duì)前面設(shè)計(jì)流程做相應(yīng)的修改,邏輯關(guān)系有沒(méi)有不符的地方,完善程序,主要為了以防后面遇到出現(xiàn)處理數(shù)據(jù)不完善或遺漏的情況。盡量把迄今為止遇到的情況及未來(lái)能預(yù)測(cè)到的情況都能包容在內(nèi),也可以避免對(duì)程序做多次修改。所有測(cè)試能順利運(yùn)行后,那么這個(gè)RPA便完成了。
5.更新程序
程序完成后,如果與RPA相關(guān)的數(shù)據(jù)或系統(tǒng)更新了,那么后續(xù)需要對(duì)代碼進(jìn)行相應(yīng)的更新,當(dāng)然,選擇設(shè)計(jì)RPA是因?yàn)槠淞鞒滔鄬?duì)固定,如果經(jīng)常變動(dòng),那么設(shè)計(jì)這個(gè)RPA就沒(méi)有意義了。所以后續(xù)的更新也是因?yàn)閮?nèi)部系統(tǒng)更新,或外部系統(tǒng)獲取的數(shù)據(jù)格式的變動(dòng)等系統(tǒng)性原因引起的,變動(dòng)次數(shù)是比較低的。
以下通過(guò)財(cái)務(wù)工作中的采購(gòu)入庫(kù)、銷售對(duì)賬、銷售開票及費(fèi)用報(bào)銷等環(huán)節(jié)的案例,介紹如何將財(cái)務(wù)流程與計(jì)算機(jī)語(yǔ)言python結(jié)合,設(shè)計(jì)相應(yīng)的RPA,實(shí)現(xiàn)財(cái)務(wù)自動(dòng)化。
采購(gòu)流程中,入庫(kù)單的處理都是重復(fù)的工作,目標(biāo):實(shí)現(xiàn)采購(gòu)入庫(kù)自動(dòng)化;采購(gòu)入庫(kù)處理的流程相對(duì)固定,先在入庫(kù)初始頁(yè)面輸入相關(guān)信息,輸入的信息可以運(yùn)用pandas讀取,其他操作主要都是在系統(tǒng)固定幾個(gè)頁(yè)面,根據(jù)步驟使用鍵盤鼠標(biāo)的操作,pyautogui就派上用場(chǎng)了。目標(biāo)和流程都確定了。需要準(zhǔn)備的數(shù)據(jù):入庫(kù)單的單據(jù)號(hào)碼或者發(fā)票號(hào)碼等。這個(gè)RPA比較簡(jiǎn)單,只需按部就班,采用pyautogui的函數(shù)一步步編寫指令。測(cè)試時(shí)運(yùn)行過(guò)程流暢,能完整操作完入庫(kù)的整個(gè)流程,RPA就完成了。后續(xù)除更換財(cái)務(wù)系統(tǒng)外,采購(gòu)入庫(kù)RPA基本不變。
1.目標(biāo)
實(shí)現(xiàn)客戶銷售數(shù)據(jù)與收款數(shù)據(jù)核對(duì)。
2.設(shè)計(jì)流程
主要為三大塊,(1)輸入數(shù)據(jù)塊,包括外部獲取數(shù)據(jù)和內(nèi)部獲取數(shù)據(jù),其中內(nèi)部數(shù)據(jù)包含應(yīng)收款和銷售系統(tǒng)數(shù)據(jù)。應(yīng)收款項(xiàng)是輸入的數(shù)據(jù)之一,也是輸出的結(jié)果之一,每天的對(duì)賬處理會(huì)讀取前一天的往來(lái)款項(xiàng)。銷售系統(tǒng)數(shù)據(jù)可以利用selenium從銷售系統(tǒng)自動(dòng)下載下來(lái)。包括銷售明細(xì)表,統(tǒng)計(jì)表,客戶明細(xì)表,多個(gè)表格為后續(xù)驗(yàn)證數(shù)據(jù)的準(zhǔn)確性準(zhǔn)備。(2)對(duì)賬過(guò)程即數(shù)據(jù)處理塊,需要先把對(duì)賬規(guī)則梳理出來(lái),利用訂單編號(hào)、客戶信息、交易時(shí)間等作為對(duì)賬的依據(jù),讓外部數(shù)據(jù)和內(nèi)部數(shù)據(jù)進(jìn)行對(duì)碰。主要用到pandas。(3)對(duì)賬的分析結(jié)果即輸出塊。輸出結(jié)果包含核對(duì)結(jié)果清單及應(yīng)收款賬。應(yīng)收款項(xiàng)也作為第二天輸入數(shù)據(jù)塊中一部分。對(duì)于核對(duì)不一致的結(jié)果清單,要設(shè)計(jì)成能一目了然看清問(wèn)題在哪。這塊主要利用pandas。
3.準(zhǔn)備前期數(shù)據(jù)
需要準(zhǔn)備外部獲取的數(shù)據(jù)如銀行對(duì)賬單,微信或者支付寶收款明細(xì)等。
4.進(jìn)行模擬測(cè)試
對(duì)賬RPA中要注意的是日期對(duì)其影響比較大,測(cè)試的期間要以一段時(shí)間為準(zhǔn),最好能把包含節(jié)假日的前后一段期間、月底到月初跨月期間、年底到年初跨年的這幾天都做個(gè)測(cè)試。若對(duì)賬的結(jié)果與人工對(duì)賬結(jié)果吻合,說(shuō)明對(duì)賬RPA完成。
5.更新程序
如果銀行等外部數(shù)據(jù)格式有變動(dòng)或者銷售系統(tǒng)導(dǎo)出的數(shù)據(jù)格式有變動(dòng),需要更新相應(yīng)的代碼。
運(yùn)用銷售對(duì)賬RPA對(duì)賬,整個(gè)流程人工只需準(zhǔn)備銀行對(duì)賬單等外部對(duì)賬數(shù)據(jù),以及對(duì)后續(xù)結(jié)果的分析。人工操作中最慢的就是如果不一致,怎么去找出不一致的部分。程序?qū)@塊處理的速度會(huì)快很多。節(jié)省了查找不一致部分的時(shí)間,有更多的時(shí)間去分析結(jié)果解決問(wèn)題,提升了工作效率。
1.目標(biāo)
批量處理銷售數(shù)據(jù)并生成符合稅務(wù)開票軟件要求的數(shù)據(jù)。
2.設(shè)計(jì)流程
銷售開票流程主要有兩塊,(1)導(dǎo)出數(shù)據(jù),批量導(dǎo)出所有開票客戶的數(shù)據(jù),利用pandas讀取數(shù)據(jù)到銷售系統(tǒng)頁(yè)面上,利用selenium網(wǎng)頁(yè)操作下載數(shù)據(jù)。(2)處理數(shù)據(jù)。處理數(shù)據(jù)時(shí)需要解決3個(gè)問(wèn)題:對(duì)銷售系統(tǒng)客戶名稱和它的開票信息不一致的情況,進(jìn)行修改;根據(jù)客戶的要求整理銷售表格,比如總分公司、總分店是否合并開票;生成格式符合稅務(wù)開票系統(tǒng)要求的文件。利用pandas解決上述3個(gè)問(wèn)題。
3.準(zhǔn)備前期數(shù)據(jù)
準(zhǔn)備好需開票客戶的表格,比如客戶的編號(hào),客戶的名稱。根據(jù)企業(yè)的銷售系統(tǒng)確定。
核對(duì)客戶開票信息,查看是否需要有銷售系統(tǒng)與客戶開票信息名稱不一致的情況,整理客戶開票要求。這些都是偶爾變動(dòng),只需進(jìn)行核對(duì)和增減變動(dòng),有變動(dòng)修改一下。相關(guān)表格可類似于表1和表2。
表1 修正客戶名稱表
表2 總分公司、總分店客戶開票要求統(tǒng)計(jì)表
以后新增的客戶有類似的要求,或者原來(lái)的客戶變更不同的要求,修改相應(yīng)的表格。
4.程序測(cè)試
讀取前期準(zhǔn)備的表格,運(yùn)行程序后查看最后的生成的數(shù)據(jù):數(shù)據(jù)結(jié)果處理是否準(zhǔn)確性,客戶開票名稱修正是否完整,總分機(jī)構(gòu)的開票是否符合要求,生成的數(shù)據(jù)導(dǎo)入稅局系統(tǒng)是否完全接收。這些結(jié)果都需要檢查。全都符合才算完成對(duì)賬RPA。
5.更新程序
如果銷售系統(tǒng)有升級(jí)導(dǎo)致導(dǎo)出的數(shù)據(jù)格式有變動(dòng),需要更新相應(yīng)的代碼。
人工處理這個(gè)業(yè)務(wù)至少都要半天的時(shí)間,利用銷售開票RPA,十幾分鐘就能做完數(shù)據(jù)處理,只需把前期相關(guān)的客戶表格整理工作做好,提升了工作效率,提高了數(shù)據(jù)處理的準(zhǔn)確率。
報(bào)銷業(yè)務(wù)中,選擇通行費(fèi)發(fā)票處理做案例。通行費(fèi)的發(fā)票處理是個(gè)耗時(shí)的操作。通行費(fèi)現(xiàn)在大部分是電子發(fā)票,在票根網(wǎng)上開票、下載,然后電子歸檔。后續(xù)對(duì)于通行費(fèi)進(jìn)項(xiàng)發(fā)票的抵扣,也需要用到發(fā)票的相關(guān)信息,手工一個(gè)個(gè)輸入這些發(fā)票號(hào)碼,相當(dāng)煩瑣。但其處理都是比較機(jī)械式的操作,流程很容易標(biāo)準(zhǔn)化。
1.目標(biāo)
實(shí)現(xiàn)通行費(fèi)發(fā)票的自動(dòng)化處理。
2.設(shè)計(jì)流程
主要是三大塊,一是開具發(fā)票,二是下載發(fā)票,三是進(jìn)行發(fā)票識(shí)別、核對(duì)數(shù)據(jù),錄入發(fā)票信息。其中開具發(fā)票和下載發(fā)票操作是大同小異的,可以利用pandas讀取數(shù)據(jù)到票根網(wǎng)相應(yīng)的頁(yè)面上,然后用selenium進(jìn)行網(wǎng)頁(yè)模擬操作,因?yàn)殚_具發(fā)票和下載發(fā)票是先后的關(guān)系,開具發(fā)票24小時(shí)后再來(lái)下載發(fā)票才能確保所有發(fā)票都已開具。因此可以利用tkinter設(shè)置程序主界面,在RPA運(yùn)行前進(jìn)行需求選擇。發(fā)票識(shí)別運(yùn)用tesseract-OCR,獲取發(fā)票上的相關(guān)信息并儲(chǔ)存。等發(fā)票全部識(shí)別完利用pandas匯總,核對(duì)結(jié)果。
3.準(zhǔn)備數(shù)據(jù)
需要準(zhǔn)備的表格有兩個(gè),包括每月運(yùn)行清單表格和車輛車牌號(hào)與其對(duì)應(yīng)的扣款卡號(hào)表格。
通行費(fèi)發(fā)票處理RPA對(duì)后續(xù)工作將帶來(lái)很大的方便,有了發(fā)票相關(guān)信息的收集,抵扣操作相當(dāng)簡(jiǎn)單,批量導(dǎo)入抵扣平臺(tái)就可。利用通行費(fèi)發(fā)票RPA,前期下載通行費(fèi)清單表格和準(zhǔn)備車牌號(hào)表格,之后交由程序模擬人工操作,查看分析結(jié)果即可。
財(cái)務(wù)RPA是將平時(shí)的工作流程標(biāo)準(zhǔn)化,讓程序模擬用戶進(jìn)行操作,是財(cái)務(wù)與技術(shù)的結(jié)合應(yīng)用,由程序代替初級(jí)的重復(fù)的勞動(dòng),高效處理數(shù)據(jù),高效完成任務(wù)。
自動(dòng)化之后便是智能化,數(shù)字化,利用自動(dòng)化后我們會(huì)獲得更大量、更全面的數(shù)據(jù),它包含了業(yè)務(wù)數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)等,這些都是財(cái)務(wù)數(shù)字化發(fā)展的基礎(chǔ)。像對(duì)賬RPA,銷售開票RPA后續(xù)提供了很多數(shù)據(jù),可以利用這些銷售數(shù)據(jù)來(lái)進(jìn)行下一步的分析,分析商品的盈利能力、受歡迎程度以及客戶的需求、客戶貨款回收的情況及應(yīng)收賬款的賬齡分析。并將結(jié)果數(shù)據(jù)可視化,做進(jìn)一步的分析、預(yù)測(cè)活動(dòng)。而財(cái)務(wù)人員也因?yàn)橛辛素?cái)務(wù)RPA后解放雙手,投入更深層次的分析、決策的工作中。
信息技術(shù)就是讓數(shù)據(jù)坐上新時(shí)代的高鐵,財(cái)務(wù)部門對(duì)數(shù)據(jù)進(jìn)行采集、加工、處理,通過(guò)將信息技術(shù)運(yùn)用到財(cái)務(wù)工作上,提高財(cái)務(wù)工作效率和準(zhǔn)確率。