探索利用Python设计财务RPA

杨玉燕 广东烟草梅州市有限公司

RPA,通过计算机对业务过程的模拟操作,实现自动化处理。财务是企业的数据集成中心,接收业务数据并将数据加工生成所需要的信息,集合了采购、销售、各部门报销等业务的数据,而这个过程有些是重复操作的工作,可以使用RPA实现自动化处理。python是一门易上手的计算机语言,它提供了各种库的支持,包括pyautogui,selenium等库都可以用于模拟工作流程,pandas和一些可视化库是数据分析的一个利器。在处理财务工作中利用python设计财务RPA,通过程序对财务工作的模拟,实现财务的自动化,提高财务工作效率和准确性。

设计财务RPA,让计算机模拟操作,利用python编写代码,需要先了解可能用到的python库或工具,之后按照步骤确定目标、设计流程编写代码、准备数据、进行模拟操作测试,后续如果相关数据格式有变动,及时更新程序。

(一)了解财务RPA可能用到的python库或工具

python可以看成是图书馆,图书馆里收藏很多的书籍,而python的库就像图书馆里的一本本藏书,需要什么知识,就查找相应的库。

1. pandas

对于财务RPA,pandas是必须用到的库,对表格熟悉的话,pandas就很容易理解。pandas是python数据处理的利器,数据处理是财务RPA中最重要的一个环节,pandas提供了高级数据结构和函数,这些数据结构和函数的设计使得利用结构化、表格化数据的工作快速、简单。[1]财务RPA中用到的功能主要有:①读取数据:通过pandas的DataFrame对象,将读取的数据应用于操作界面。②数据处理:pandas提供各种函数对数据高效处理,对获取的数据进行数据清洗、数据分析等。

2. selenium

selenium是用于Web应用程序测试的工具,利用相应的浏览器驱动器,驱动浏览器运行,就像真实用户操作的一样。主要功能是模仿用户操作网页,财务RPA可以利用输入数据、查询、下载或抓取页面中一些关键的要素。

3.pyautogui

pyautogui是模拟键盘、鼠标在相应的页面位置进行操作,比如输入、移动、单击、双击等。将整个屏幕作为一个坐标系,原点位于屏幕的左上角,坐标(x,y)中x是从左上角往右延伸的距离,y是从左上角往下延伸的距离,利用pyautogui的函数对屏幕中的坐标(x,y)进行相应的指令操作。pyautogui对于数据量大、操作固定的流程,是一个高效处理的办法,而且其函数简单易懂。pyautogui的使用就是基础的RPA,解放双手。

4. tkinter

tkinter提供程序窗口主界面的设计,主界面可以包含标签、按钮及弹出框等组件,通过这些组件将多个需求操作显示在RPA窗口主界面上,或者接收需要输入的关键数据,让RPA更容易操作。

5.图像文字识别OCR

图像文字识别OCR,用于提取图像上的文字信息。OCR的原理可以简单理解为图像上颜色值的计算结果与实际文字的映射。如果是小程序RPA,可以利用Tesseract-OCR,它是开源的OCR引擎,提供大量的映射集合,对于清晰度高、印刷字体的图像,准确率很高。

(二)设计RPA步骤

1.确定目标

从日常财务工作入手,哪些业务模块是属于比较机械式的操作,是否可以将其流程标准化,运用程序操作。在分析其采用程序操作的可行性过程中,要查看分别有哪些python库可以解决操作中遇到的问题,直到确定所有问题都能解决。确定目标,主要是对其流程运用RPA的可行性分析。

2.设计流程

针对要实现的目标,列出平时的工作流程,如果采用RPA,相应的流程是否和人工操作一模一样,哪些环节的操作是否需要一些额外的判断、条件,或者需要做流程上的改进。把流程中每个步骤里的工作细化罗列出来,要用到python的哪些库,哪些函数可以实现相应的需求,在相应的库官方文档都能找到函数应用的方式。理好全部逻辑关系,把框架定下来,再把罗列的细化过程用python代码表达出来。

3.准备前期数据

财务工作是接收业务数据并将数据加工生成所需要的信息,从接收的数据中提取出前期数据,比如采购入库单的采购单据号,销售开票的客户名称。RPA每次运行时,需要保持这些数据的格式统一,确保pandas每次读取数据都是准确的。

4.进行模拟测试

测试时需要查看python代码运行结果的准确性。接着把各种可能遇到的情况都让程序再跑一遍,根据结果的准确性确定是否对需要对前面设计流程做相应的修改,逻辑关系有没有不符的地方,完善程序,主要为了以防后面遇到出现处理数据不完善或遗漏的情况。尽量把迄今为止遇到的情况及未来能预测到的情况都能包容在内,也可以避免对程序做多次修改。所有测试能顺利运行后,那么这个RPA便完成了。

5.更新程序

程序完成后,如果与RPA相关的数据或系统更新了,那么后续需要对代码进行相应的更新,当然,选择设计RPA是因为其流程相对固定,如果经常变动,那么设计这个RPA就没有意义了。所以后续的更新也是因为内部系统更新,或外部系统获取的数据格式的变动等系统性原因引起的,变动次数是比较低的。

以下通过财务工作中的采购入库、销售对账、销售开票及费用报销等环节的案例,介绍如何将财务流程与计算机语言python结合,设计相应的RPA,实现财务自动化。

(一)采购入库RPA

采购流程中,入库单的处理都是重复的工作,目标:实现采购入库自动化;
采购入库处理的流程相对固定,先在入库初始页面输入相关信息,输入的信息可以运用pandas读取,其他操作主要都是在系统固定几个页面,根据步骤使用键盘鼠标的操作,pyautogui就派上用场了。目标和流程都确定了。需要准备的数据:入库单的单据号码或者发票号码等。这个RPA比较简单,只需按部就班,采用pyautogui的函数一步步编写指令。测试时运行过程流畅,能完整操作完入库的整个流程,RPA就完成了。后续除更换财务系统外,采购入库RPA基本不变。

(二)销售对账RPA

1.目标

实现客户销售数据与收款数据核对。

2.设计流程

主要为三大块,(1)输入数据块,包括外部获取数据和内部获取数据,其中内部数据包含应收款和销售系统数据。应收款项是输入的数据之一,也是输出的结果之一,每天的对账处理会读取前一天的往来款项。销售系统数据可以利用selenium从销售系统自动下载下来。包括销售明细表,统计表,客户明细表,多个表格为后续验证数据的准确性准备。(2)对账过程即数据处理块,需要先把对账规则梳理出来,利用订单编号、客户信息、交易时间等作为对账的依据,让外部数据和内部数据进行对碰。主要用到pandas。(3)对账的分析结果即输出块。输出结果包含核对结果清单及应收款账。应收款项也作为第二天输入数据块中一部分。对于核对不一致的结果清单,要设计成能一目了然看清问题在哪。这块主要利用pandas。

3.准备前期数据

需要准备外部获取的数据如银行对账单,微信或者支付宝收款明细等。

4.进行模拟测试

对账RPA中要注意的是日期对其影响比较大,测试的期间要以一段时间为准,最好能把包含节假日的前后一段期间、月底到月初跨月期间、年底到年初跨年的这几天都做个测试。若对账的结果与人工对账结果吻合,说明对账RPA完成。

5.更新程序

如果银行等外部数据格式有变动或者销售系统导出的数据格式有变动,需要更新相应的代码。

运用销售对账RPA对账,整个流程人工只需准备银行对账单等外部对账数据,以及对后续结果的分析。人工操作中最慢的就是如果不一致,怎么去找出不一致的部分。程序对这块处理的速度会快很多。节省了查找不一致部分的时间,有更多的时间去分析结果解决问题,提升了工作效率。

(三)销售开票RPA

1.目标

批量处理销售数据并生成符合税务开票软件要求的数据。

2.设计流程

销售开票流程主要有两块,(1)导出数据,批量导出所有开票客户的数据,利用pandas读取数据到销售系统页面上,利用selenium网页操作下载数据。(2)处理数据。处理数据时需要解决3个问题:对销售系统客户名称和它的开票信息不一致的情况,进行修改;
根据客户的要求整理销售表格,比如总分公司、总分店是否合并开票;
生成格式符合税务开票系统要求的文件。利用pandas解决上述3个问题。

3.准备前期数据

准备好需开票客户的表格,比如客户的编号,客户的名称。根据企业的销售系统确定。

核对客户开票信息,查看是否需要有销售系统与客户开票信息名称不一致的情况,整理客户开票要求。这些都是偶尔变动,只需进行核对和增减变动,有变动修改一下。相关表格可类似于表1和表2。

表1 修正客户名称表

表2 总分公司、总分店客户开票要求统计表

以后新增的客户有类似的要求,或者原来的客户变更不同的要求,修改相应的表格。

4.程序测试

读取前期准备的表格,运行程序后查看最后的生成的数据:数据结果处理是否准确性,客户开票名称修正是否完整,总分机构的开票是否符合要求,生成的数据导入税局系统是否完全接收。这些结果都需要检查。全都符合才算完成对账RPA。

5.更新程序

如果销售系统有升级导致导出的数据格式有变动,需要更新相应的代码。

人工处理这个业务至少都要半天的时间,利用销售开票RPA,十几分钟就能做完数据处理,只需把前期相关的客户表格整理工作做好,提升了工作效率,提高了数据处理的准确率。

(四)通行费发票处理RPA

报销业务中,选择通行费发票处理做案例。通行费的发票处理是个耗时的操作。通行费现在大部分是电子发票,在票根网上开票、下载,然后电子归档。后续对于通行费进项发票的抵扣,也需要用到发票的相关信息,手工一个个输入这些发票号码,相当烦琐。但其处理都是比较机械式的操作,流程很容易标准化。

1.目标

实现通行费发票的自动化处理。

2.设计流程

主要是三大块,一是开具发票,二是下载发票,三是进行发票识别、核对数据,录入发票信息。其中开具发票和下载发票操作是大同小异的,可以利用pandas读取数据到票根网相应的页面上,然后用selenium进行网页模拟操作,因为开具发票和下载发票是先后的关系,开具发票24小时后再来下载发票才能确保所有发票都已开具。因此可以利用tkinter设置程序主界面,在RPA运行前进行需求选择。发票识别运用tesseract-OCR,获取发票上的相关信息并储存。等发票全部识别完利用pandas汇总,核对结果。

3.准备数据

需要准备的表格有两个,包括每月运行清单表格和车辆车牌号与其对应的扣款卡号表格。

通行费发票处理RPA对后续工作将带来很大的方便,有了发票相关信息的收集,抵扣操作相当简单,批量导入抵扣平台就可。利用通行费发票RPA,前期下载通行费清单表格和准备车牌号表格,之后交由程序模拟人工操作,查看分析结果即可。

财务RPA是将平时的工作流程标准化,让程序模拟用户进行操作,是财务与技术的结合应用,由程序代替初级的重复的劳动,高效处理数据,高效完成任务。

自动化之后便是智能化,数字化,利用自动化后我们会获得更大量、更全面的数据,它包含了业务数据、财务数据等,这些都是财务数字化发展的基础。像对账RPA,销售开票RPA后续提供了很多数据,可以利用这些销售数据来进行下一步的分析,分析商品的盈利能力、受欢迎程度以及客户的需求、客户货款回收的情况及应收账款的账龄分析。并将结果数据可视化,做进一步的分析、预测活动。而财务人员也因为有了财务RPA后解放双手,投入更深层次的分析、决策的工作中。

信息技术就是让数据坐上新时代的高铁,财务部门对数据进行采集、加工、处理,通过将信息技术运用到财务工作上,提高财务工作效率和准确率。

猜你喜欢 开票发票表格 《现代临床医学》来稿表格要求现代临床医学(2022年1期)2022-02-12统计表格的要求文化创新比较研究(2020年13期)2020-01-01湖南省庆祝“新中国成立70 周年”即开票手工艺品大赛评选结果出炉中国民政(2019年16期)2019-09-28关于发票显示额外费用的分歧中国外汇(2019年21期)2019-05-21采购发票系统:全流程电子化实现首席财务官(2018年8期)2018-04-26履历表格这样填高中时代(2017年7期)2018-02-24“开票接入”首发布,微信电子发票完成全流程闭环整合计算机世界(2017年50期)2018-01-09全国增值税发票查验平台启用中国总会计师(2017年1期)2017-03-10本刊表格的要求中国医药科学(2013年16期)2013-12-20