当今时代,大数据、云计算、人工智能、物联网、流程自动化等新兴技术迅猛发展,使社会经济的发展产生了变动,对各行各业产生了颠覆性的影响。
会计行业同样面临前所未有的挑战,会计的工作方式在变革、职能在扩大,基础会计工作被替代性的问题,引起了会计从业人员的高度关注。
近日上海国家会计学院对外发布了《2021年影响中国会计人的十大信息技术》报告,机器人流程自动化技术(RPA)再度登上榜单。

01为什么会计需要RPA?
行业数智化趋势
近两年,连续多所985大学纷纷取消会计学本科或研究生独立招生,一石激起千层浪。
清华大学招生办公室主任余潇潇表示认为,计算机与金融的深度融合已经非常显见地为社会发展带来了更加强劲的动力,通过对招生专业的调整,更好地加速会计与科技的交叉融合,为国家培养更多高端复合型的研究人才和管理人才。
财务的未来是信息化、自动化、数字化和智能化,未来需要的是智能会计、数智财务、大数据智能审计等方向的人才。
RPA是会计人员成为复合型人才的重要工具,会计人员会通过对RPA的实践和应用实现思维的拓展和能力的提升。
业务属性契合
会计行业汇聚着大量重复、规则固定的工作。以核算流水为例,会计人员需要在不同系统之间获取信息、进行核对,最痛苦的点莫过于账单对不上,反复检查对于会计人员来说,是非常消耗精力和时间的。
而RPA的出现,能够将会计工作中费时费力的数据任务自动化。RPA能够协助财务人员高效高质地完成费用报销、采购到付款、订单至收款、固定资产核算、存货到成本、总账到报表、资金结算等常见的财务流程。
会计人员将基础数据工作全部交给机器人,自己则可以从事更有价值的工作。对于会计行业来说,更高级别的工作是参与到企业的管理决策,以及着眼于企业的价值创造、投资管理、证券分析等。
RPA是一种创新工具,帮助会计行业提高工作效率、优化工作流程、减少出错率,为企业节省更多成本,实现降本增效。
02 RPA能为会计做什么?
PRA财务机器人,以自动化替代手工操作,辅助会计人员完成交易量大、重复性高、易于标准化的基础业务,从而优化工作流程,提高业务处理效率和质量。

(一)费用报销
费用报销流程是财务共享服务中心实施最为普遍的流程,也是财务机器人使用最广泛的流程,具体流程如图:

1.报销单据接收:财务机器人对多渠道采集而来的各类发票和单据进行自动识别、分类汇总和分发传递,自动生成报销单并发起审批申请。
2.费用报销智能审核:人工设定费用报销审核规则,将其内嵌至费用报销系统。财务机器人按照设定的逻辑执行审核操作,如对发票查重验真、进行预算控制和报销标准审查、记录检查结果并反馈等。
3.自动付款:报销单通过审核后自动生成付款单;付款单进入待付款中心,财务机器人依据付款计划执行付款操作。
4.账务处理及报告:付款单依据记账规则自动生成凭证,自动提交、过账,并生成账务报告、汇报至管理层。
(二)采购到付款
实现从供应商管理、供应商对账,到发票处理及付款整个过程的无缝衔接是采购到付款流程的重点,其中财务机器人适用的子流程见图2:

1.请款单处理:通过OCR扫描请款单并识别相关信息,财务机器人将请款单信息录入ERP系统,对订单信息、发票信息、入库单信息进行匹配校验。
2.采购付款:财务机器人自动提取付款申请系统的付款信息(付款账号、户名等),并提交网银等资金付款系统进行付款操作。
3.供应商对账:人工设置好对账触发时间,机器人登录财务模块向供应商发送对账提醒邮件,并自动完成订单状态和发货状态查询。
(三)总账到报表
总账到报表流程中关账、标准记账分录处理、关联交易处理、对账、财务报表的出具等工作可借助财务机器人完成,具体子流程如下:
1.关账:在期末,财务机器人自动进行各项关账工作,例如现金盘点、银行对账、销售收入确认、应收账款对账、关联方对账、应付款项对账、存货的确认和暂估等。如发现异常,发送预警报告;如对账无误,则自动进行账务处理。期末关账具体流程如图3所示。

2.标准记账分录处理:财务机器人周期性对账务分录进行记录和结转。
3.关联交易处理:财务机器人根据相关子公司的交易信息,实现自动关联交易处理。
4.出具单体报表:财务机器人自行完成数据汇总、合并抵销、邮件数据催收、系统数据导出及处理等工作,自动出具模板化的单体报表。
5.出具合并报表:财务机器人从系统中导出并根据规则完成汇率数据和当月境内外合并数据的处理和计算,计算出期末余额并对结果进行检查;再对子公司报送数据进行催收和汇总,根据抵销规则生成合并抵销分录;最后,根据生成的数据,形成当月合并报表。合并报表出具流程具体如图4所示。

(四)资金管理
资金管理流程中适合财务机器人的具体子流程如下:
1.银企对账:机器人取得银行流水、银行财务数据,并进行银行账和财务账的核对,自动出具银行余额调节表。
2.现金管理:财务机器人根据设定的现金上划线执行现金归集、现金计划信息的采集与处理等;引入智能算法,按照预设的规则,根据支付方式、支付策略、支付金额等多因素,计算最优化组合,完成资金安排;同时动态监控资金收支,帮助集团企业实时掌控集团资金状况。
3.收付款处理:财务机器人根据订单信息和供应商信息,自动完成收款与付款。
4.支付指令查询:资金支付指令发出后,财务机器人可自动查询银行返回的支付结果,并邮件反馈查询结果。
(五)税务管理
税务管理是目前财务机器人运用较为成熟的领域,包括自动纳税申报、涉税信息校验、增值税发票验真等子流程(见图6):

1.纳税申报准备:期末财务机器人自动登录账务系统,按照税务主体批量导出财务数据、增值税认证数据等税务申报的业务数据基础。
2.税务数据获取并维护:财务机器人获取事先维护好的企业基础信息用以生成纳税申报表底稿。
3.涉税数据核对校验:财务机器人通过设定好的规则调整税务差异项;借助预置的校验公式进行报表的校验。
4.纳税申报:根据特定逻辑由工作底稿自动生成申报表并在税务局端系统自动填写纳税申报表。
5.涉税账务处理及提醒:财务机器人根据纳税、缴税信息完成系统内税务分录的编制,自动进行递延所得、资产或负债的计算,完成系统内的入账,并邮件提醒相关责任人。
6.增值税发票开具:基于现有待开票信息,财务机器人操作专用开票软件开具增值税普通发票和增值税专用发票。
7.发票验真:财务机器人可基于发票票面信息自动校验发票真伪,并且可将增值税发票提交到国税总局查验平台进行验证和认证,并反馈和记录结果。
对于纳税主体较多的集团型企业,由于纳税申报的数据来源不同、申报的数据量较大,员工手工申报耗时长、效率低,且数据准确性无法保障。而纳税申报过程整体RPA适配度较高,相当多的步骤可以借助机器人进行自动化。
除以上流程外,在订单到收款、固定资产管理、存货到成本、档案管理等重复性较高、业务量较大的流程上,RPA机器人的运用也很常见。
03 弘玑RPA,让数智化财务工作成为标配
弘玑Cyclone,拥有全栈自研的企业级RPA产品,AI+BI共同赋能产品,让RPA更加智能、敏捷。
弘玑RPA赋能人与企业的数字化,荣获2021年金融信创生态实验室的权威认证,持续推动会计从业者以及财务部门升级。
在中国邮储银行上海分行的数字化建设过程中,弘玑Cyclone RPA智能自动化平台通过与“邮储大脑”紧密结合,加快AI技术的落地,实现在银行前、中、后台各个部门的场景应用,加快业务转型,达到提质、降本、增效的目的。

在邮储银行上海分行自动化一期项目中,弘玑完成了对邮储银行个金部、零售信贷部、三农金融部中的3个业务流程的自动化。
二期也对30多个业务流程完成了需求调研,涉及到了关键业务系统和业务类型,每月就可节省448个小时人力成本,大大降低了银行的总体运营成本。
通过弘玑RPA的支持,会计人员能够从事更加具有创造性的、能够帮助企业提升经营能力、洞察商机并预测未来的工作。
RPA与人将共同组成“会计人员”的主体。
未来,精通会计、擅长管理、熟知信息技术、洞察业务,并且具备战略远见的会计人员会成为企业青睐之选。
他们能够参与到商业模式创新的规划和实施,能够为企业提供更有见地的数据分析、推动企业新业务的布局和数字技术应用。
关于弘玑Cyclone
弘玑Cyclone是全球领先的RPA公司,也是超自动化(Hyperautomation)行业的领导者,仅发展3年平均年增长率超400%,持续受到一线资本青睐,2021年11月,完成1.5亿美元C轮融资,创行业单笔融资额最大记录。是同时进入 Gartner魔力象限且入选 Forrester Wave的RPA厂商。吸引了全球顶尖高校和各行业的专家级人才,为全行业提供端到端的软件自动化平台、云原生平台及数字化转型解决方案。
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth
我遇到了这个奇怪的错误.../Users/gideon/Documents/ca_ruby/rubytactoe/lib/player.rb:13:in`gets':Isadirectory-spec(Errno::EISDIR)player_spec.rb:require_relative'../spec_helper'#theuniverseisvastandinfinite...itcontainsagame....butnoplayersdescribe"tictactoegame"docontext"theplayerclass"doit"musthaveahumanplay
我有两个文本文件,master.txt和926.txt。如果926.txt中有一行不在master.txt中,我想写入一个新文件notinbook.txt。我写了我能想到的最好的东西,但考虑到我是一个糟糕的/新手程序员,它失败了。这是我的东西g=File.new("notinbook.txt","w")File.open("926.txt","r")do|f|while(line=f.gets)x=line.chompifFile.open("master.txt","w")do|h|endwhile(line=h.gets)ifline.chomp!=xputslineendende
我使用raise(ConfigurationError.new(msg))引发错误我试着用rspec测试一下:expect{Base.configuration.username}.toraise_error(ConfigurationError,message)但这行不通。我该如何测试呢?目标是匹配message。 最佳答案 您可以使用正则表达式匹配错误消息:it{expect{Foo.bar}.toraise_error(NoMethodError,/private/)}这将检查NoMethodError是否由privateme
我最近一直在查看一些gem的源代码。我经常看到的一个习惯用法是使用嵌套模块,其中包含连接到版本字符串中的版本常量,即围绕此类事物的变体:moduleChunkyBaconmoduleVersionMAJOR=0MINOR=6TINY=2endVERSION=[Version::MAJOR,Version::MINOR,Version::TINY].compact*'.'end以这种方式存储库版本信息有什么好处(如果有的话)?为什么不这样做:moduleChunkyBaconVERSION='0.6.2'.freezeend 最佳答案
如何使用如下两个数组构建一个数组:名称=[a,b,c]how_many_of_each[3,5,2]得到my_array=[a,a,a,b,b,b,b,b,c,c] 最佳答案 使用zip、flat_map和数组乘法:irb(main):001:0>value=[:a,:b,:c]=>[:a,:b,:c]irb(main):002:0>times=[3,5,2]=>[3,5,2]irb(main):003:0>value.zip(times).flat_map{|v,t|[v]*t}=>[:a,:a,:a,:b,:b,:b,:b,:b